在Ubuntu上進行Oracle數據遷移的步驟如下:
創建目錄:
在源服務器上創建一個目錄對象,用于指定導入數據文件的路徑??梢允褂靡韵旅顒摻夸泴ο螅?/p>
[root@linux100 ~]# su - oracle
[oracle@linux100 ~]# sqlplus / as sysdba
SQL> create or replace directory tmpDir as '/tempFile'
tmpDir是目錄對象的名稱,/tempFile是導入數據文件的路徑。
使用expdp導出數據表:
使用expdp命令從測試庫所在的源服務器將指定的數據表或數據源導出為一個或多個數據文件(.dmp文件)。例如:
[oracle@linux100 ~]# expdp username/password@Ip:port/database schemas=dbTest directory=tmpDir dumpfile=export.dmp logfile=export.log
username/password@Ip:port/database:指定要導出的數據庫用戶及其密碼、數據庫ip、端口、數據庫名稱;
schemas=dbTest:指定要導出的數據庫用戶名稱;
directory=tmpDir:指定導出的數據文件路徑,這里的tmpDir是預先定義的一個目錄對象;
dumpfile=export.dmp:指定導出的數據文件名稱,這里的export.dmp是數據導出時生成的數據文件;
logfile=export.log:指定導出日志文件名稱。
如果需要導出單個表,可以使用以下命令:
```bash
[oracle@linux100 ~]# expdp username/password@Ip:port/database directory=tmpDir dumpfile=export.dmp tables=student,school,teacher
其中,tables是要導入的數據表名稱,多個數據表之間使用逗號分隔。
復制dmp文件到目標服務器:
使用scp命令將導出的dmp文件復制到目標服務器。例如:
[oracle@linux100 ~]# scp -P 2222 /tempFile/export.dmp name@xxx.xxx.xxx.xxx:/home/tempFile
輸入目標服務器密碼,按回車,文件就會自動傳輸到目標服務器中指定的文件夾中。
創建目錄:
在目標服務器上創建一個目錄對象,用于指定導入數據文件的路徑??梢允褂靡韵旅顒摻夸泴ο螅?/p>
[root@linux101 ~]# su - oracle
[oracle@linux101 ~]# sqlplus / as sysdba
SQL> create or replace directory tmpDir as '/tempFile'
tmpDir是目錄對象的名稱,/tempFile是導入數據文件的路徑。
使用impdp導入數據表:
使用impdp命令將數據文件導入到目標服務器。例如:
[oracle@linux101 ~]# su - oracle
[oracle@linux101 ~]# impdp username/password@Ip:port/database schemas=dbTest directory=tmpDir dumpfile=export.dmp job_name=myjob
username/password@Ip:port/database:指定要導入的數據庫用戶及其密碼、數據庫ip、端口、數據庫名稱;
schemas=dbTest:指定要導入的數據庫用戶名稱;
directory=tmpDir:指定導入的數據文件路徑,這里的tmpDir是預先定義的一個目錄對象;
dumpfile=export.dmp:指定導入的數據文件名稱,這里的export.dmp是數據導出時生成的數據文件;
job_name=myjob:指定導入作業的名稱。
請注意,上述步驟可能需要根據您的具體環境和需求進行調整。在執行數據遷移之前,請確保備份所有重要數據,并在非生產環境中進行充分測試。