問題描述:需要將140服務器中的tbomnew實體下的部分用戶匯入到118服務器下的tbompx實體中,本次匯入匯出的兩個資料庫均為19C
部分用戶名:CORE,MSTDATA,BOMMGMT,CFGMGMT,CHGMGMT,CUST,integration
1.匯入指定140服務器的實體名tbomnew,先查詢一下這個服務器上的實體名,可以用監聽查詢,因為這個庫中有很過實體名,所以要先匯入所需要的實體名,

[oracle@t-bomdb dpdump]$ export ORACLE_SID=tbomnew
[oracle@t-bomdb dpdump]$
[oracle@t-bomdb dpdump]$
[oracle@t-bomdb dpdump]$ echo $ORACLE_SID
tbomnew

2.首先查詢服務器有沒有創建用于備份的dumpfile之類的
SQL> select * from dba_directories; 查詢資料字典查看一下dumpfile的名稱,屬于sys用戶,名字,以及路徑,如果沒有可以創建一個目錄

3.開始匯出需要匯出的部分用戶,加上logfile可以看到運行日志,清晰的可以看到匯出的程序
[oracle@t-bomdb ~]$ expdp "'/ as sysdba'" directory=DATA_PUMP_DIR dumpfile=20200104USERS.DMP schemas=CORE,MSTDATA,BOMMGMT,CFGMGMT,CHGMGMT,CUST,integration logfile=20200104USERS.log


4.將匯出的dmp檔案傳輸到118目標服務器的檔案夾下
[oracle@t-bomdb ~]$ scp /oracle/admin/tbomnew/dpdump/20200114USERS.DMP [email protected]:/oracle/admin/tbompx/dpdump/

5.將scp傳輸過來的檔案進行imdpd匯入,下邊的紅色部分不用在意


6.但是值得注意的這里的檔案權限是root,需要手動授權dmp檔案屬主為 oracle:oinstall
[root@tldbompx03 dpdump]# chown -R oracle:oinstall 20200114USERS.DMP
[root@tldbompx03 dpdump]#
[root@tldbompx03 dpdump]#
[root@tldbompx03 dpdump]# ll
total 14720
-rw-r----- 1 oracle oinstall 15065088 Jan 14 10:41 20200114USERS.DMP
-rw-r--r-- 1 oracle oinstall 492 Jan 14 10:42 20200114USERS.log
-rw-r----- 1 oracle oinstall 151 Dec 20 16:14 dp.log
7.impdp匯入,可以看到匯入的一個程序
[oracle@tldbompx03 ~]$ impdp "'/ as sysdba'" directory=DATA_PUMP_DIR dumpfile=20200114USERS.DMP logfile=20200114USERS.log

8. select username from dba_users order by created; 查看到匯入過來的用戶

本次匯入匯出需要注意的地方是,使用的連接工具是xshell,在140服務器下打開一個sqlplus的視窗進行準備作業,匯入的實體是tbomnew,但是又新開了一個視窗,采用的是默認的實體名tbom,由于新開的視窗沒有確認實體名,所以導致傳輸的資料是另一個實體下的,
匯出錯誤資料的解決方法為洗掉已經匯入的用戶,一定要確認IP與實體名,
drop user CORE cascade;
drop user MSTDATA cascade;
drop user BOMMGMT cascade;
drop user CFGMGMT cascade;
drop user CHGMGMT cascade;
drop user CUST cascade;
drop user integration cascade;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18413.html
標籤:Oracle
