工作內(nèi)容
- 將21地址下的oracle數(shù)據(jù)中的用戶全部遷移到35數(shù)據(jù)庫中。
- 保證jbpm和其余業(yè)務(wù)可以正常使用辨泳。
工作中使用到的技能
oracle
- expdp impdp的使用
- 用戶管理
- 表空間拓展設(shè)置
- 數(shù)據(jù)庫鏈接查詢與關(guān)閉
- 創(chuàng)建路徑并賦予權(quán)限
linux
- 用戶切換
- ftp命令
- 空間查看命令
java程序配置
- 數(shù)據(jù)庫文件配置
思路
- 根據(jù)實(shí)際業(yè)務(wù)程序,整理出需要遷移的數(shù)據(jù)庫用戶,并使用expdp命令全部導(dǎo)出(不僅僅是表违帆,包括其他所有object)
expdp test/123456@orcl schemas=test dumpfile=test20181110.dmp directory=dir_dp logfile=test20181110.log
- 第一個(gè)參數(shù)為數(shù)據(jù)庫用戶名/密碼@實(shí)例名,需要擁有管理員權(quán)限金蜀,因需多次使用刷后,最好是利用一個(gè)管理員賬號(hào),把多個(gè)用戶導(dǎo)出廉油。
- schemas 用戶名
- dumpfile 導(dǎo)出文件名
- direcotry 導(dǎo)出路徑惠险,這個(gè)路徑需要在數(shù)據(jù)庫中進(jìn)行配置并給導(dǎo)出操作的用戶賦予權(quán)限
create directory dir_dp as 'D:\oracle\dir_dp';
Grant read,write on directory dir_dp to test;
查看目錄和操作權(quán)限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
- logfile 日志文件
- 在35機(jī)器上,通過ftp獲取21上導(dǎo)出的數(shù)據(jù)文件
ftp 192.168.1.35
get /oradata/test20181110.dmp
- 在35的數(shù)據(jù)庫上進(jìn)行數(shù)據(jù)導(dǎo)入抒线,需要注意必須存在相應(yīng)的test用戶才能導(dǎo)入
impdp test/123456@orcl schemas=test dumpfile=test20181110.dmp directory=dir_dp logfile=test20181110.log
導(dǎo)入命令的參數(shù)與導(dǎo)出相同,注意應(yīng)先創(chuàng)建路徑渣慕。
因?yàn)橹暗耐伦鲞^一次遷移嘶炭,所以35的數(shù)據(jù)庫中存在數(shù)據(jù),因?yàn)椴淮_定impdp導(dǎo)入是否為全部覆蓋逊桦,故先刪除對應(yīng)的用戶在重新創(chuàng)建
create user lrt identified by test
grant connect, resource, dba to test
grant read, write on directory dir_dp to test
- 完成所有導(dǎo)入后眨猎,修改對應(yīng)程序中的配置文件即可(java程序中多為xml或properties(中文譯為屬性))
遇到的問題
- 導(dǎo)出時(shí)報(bào)告沒有權(quán)限錯(cuò)誤
在導(dǎo)出的時(shí)候,如果系統(tǒng)oracle用戶對創(chuàng)建的dir沒有寫權(quán)限强经,則會(huì)導(dǎo)致dmp文件無法寫入睡陪,需要手動(dòng)賦予權(quán)限。 - ftp獲取時(shí)提示沒有權(quán)限
錯(cuò)誤原因是在獲取是使用的oracle用戶,沒有home路徑權(quán)限兰迫,切換為root信殊,或轉(zhuǎn)移到對應(yīng)的目錄即可。 - 刪除用戶時(shí)提示用戶已連接
原因很明顯汁果,只需要查詢出對應(yīng)的連接關(guān)閉掉即可
SELECT s.Sid, s.Serial#,p.spid, s.USERNAME,s.OSUser,s.Program FROM V$Process p,V$session s WHERE p.addr=s.paddr(+) and s.username = 'test' ORDER BY s.Sid
alter system kill session 'spid,serial#'
如果實(shí)在無法關(guān)閉連接涡拘,可以強(qiáng)行重啟數(shù)據(jù)庫
sqlplu as / sysdba
SHUTDOWN IMMEDIATE
startup
- 11月1日登陸時(shí)發(fā)現(xiàn)某用戶被鎖定
原因暫時(shí)沒有找到,直接使用Toad工具据德,進(jìn)入用戶設(shè)置鳄乏,取消鎖定選項(xiàng)并重新設(shè)置密碼即可