亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Oracle數(shù)據(jù)庫數(shù)據(jù)遷移完整解決步驟

 更新時間:2024年02月23日 16:50:04   作者:程序員儲物箱  
我們常常需要對數(shù)據(jù)進行遷移,遷移到更性能配置更高級的主機OS上、遷移到遠(yuǎn)程的機房、遷移到不同的平臺下,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫數(shù)據(jù)遷移的相關(guān)資料,需要的朋友可以參考下

問題描述:

oracle數(shù)據(jù)庫的所有表結(jié)構(gòu)、數(shù)據(jù)、索引等需要需從測試庫遷移到正式庫。

解決步驟:

oracle數(shù)據(jù)庫遷移,主要通過expdp從測試庫所在的源服務(wù)器將指定的數(shù)據(jù)表或數(shù)據(jù)源導(dǎo)出為一個或多個數(shù)據(jù)文件(.dmp文件),導(dǎo)出的數(shù)據(jù)可以在正式庫中通過impdp數(shù)據(jù)導(dǎo)入工具進行導(dǎo)入。

前提:服務(wù)器為linux系統(tǒng)。

1、源服務(wù)器操作

(1)創(chuàng)建目錄

在源服務(wù)器上創(chuàng)建一個目錄對象,用于指定導(dǎo)入數(shù)據(jù)文件的路徑??梢允褂靡韵旅顒?chuàng)建目錄對象:

# su - oracle
# sqlplus / as sysdba
SQL> create or replace directory tmpDir as '/tempFile'

tmpDir是目錄對象的名稱,/tempFile是導(dǎo)入數(shù)據(jù)文件的路徑。

(2)使用expdp導(dǎo)出數(shù)據(jù)表

# su - oracle
# expdp username/password@Ip:port/database schemas=dbTest directory=tmpDir dumpfile=export.dmp logfile=export.log
  • username/password@Ip:port/database:指定要導(dǎo)出的數(shù)據(jù)庫用戶及其密碼、數(shù)據(jù)庫ip、端口、數(shù)據(jù)庫名稱;如果執(zhí)行命令的服務(wù)器就是該數(shù)據(jù)庫的服務(wù)器,則ip地址和數(shù)據(jù)庫默認(rèn)端口可以省略。
  •  schemas=dbTest:指定要導(dǎo)出的數(shù)據(jù)庫用戶名稱;
  •  directory=tmpDir:指定導(dǎo)出的數(shù)據(jù)文件路徑,這里的tmpDir是預(yù)先定義的一個目錄對象;
  • dumpfile=export.dmp:指定導(dǎo)出的數(shù)據(jù)文件名稱,這里的export.dmp是數(shù)據(jù)導(dǎo)出時生成的數(shù)據(jù)文件;
  • logfile=export.log:指定導(dǎo)出日志文件名稱。

擴展:

導(dǎo)出單個表的語句:

# expdp username/password@Ip:port/database directory=tmpDir dumpfile=export.dmp tables=student,school,teacher 

其中,tables是要導(dǎo)入的數(shù)據(jù)表名稱,多個數(shù)據(jù)表之間使用逗號分隔

(3)復(fù)制dmp文件到目標(biāo)服務(wù)器

# scp -P 2222 /tempFile/export.dmp name@xxx.xxx.xxx.xxx:/home/tempFile

輸入目標(biāo)服務(wù)器密碼,按回車,文件就會自動傳輸?shù)侥繕?biāo)服務(wù)器中指定的文件夾中。

其中,name@xxx.xxx.xxx.xxx中name為目標(biāo)服務(wù)器登陸賬號,xxx.xxx.xxx.xxx為目標(biāo)服務(wù)器ip地址。2222是目標(biāo)服務(wù)器的端口號。

如果目標(biāo)服務(wù)器部署22端口或者目標(biāo)服務(wù)器與源服務(wù)器端口不一致,則需要用【-P 端口】指定目標(biāo)服務(wù)器端口。

2、目標(biāo)服務(wù)器操作

(1)創(chuàng)建目錄

在目標(biāo)服務(wù)器上創(chuàng)建一個目錄對象,用于指定導(dǎo)入數(shù)據(jù)文件的路徑??梢允褂靡韵旅顒?chuàng)建目錄對象:

# su - oracle
# sqlplus / as sysdba
SQL> create or replace directory tmpDir as '/tempFile'

tmpDir是目錄對象的名稱,/tempFile是導(dǎo)入數(shù)據(jù)文件的路徑。

(2)使用impdp導(dǎo)入數(shù)據(jù)表

# su - oracle
# impdp username/password@Ip:port/database schemas=dbTest directory=tmpDir dumpfile=export.dmp job_name=myjob
  • username/password@Ip:port/database:指定要導(dǎo)入的數(shù)據(jù)庫用戶及其密碼、數(shù)據(jù)庫ip、端口、數(shù)據(jù)庫名稱;
  • schemas=dbTest:指定要導(dǎo)入的數(shù)據(jù)庫用戶名稱;
  • directory=tmpDir:指定導(dǎo)入的數(shù)據(jù)文件路徑,這里的tmpDir是預(yù)先定義的一個目錄對象;
  • dumpfile=export.dmp:指定導(dǎo)入的數(shù)據(jù)文件名稱,這里的export.dmp是數(shù)據(jù)導(dǎo)出時生成的數(shù)據(jù)文件;
  • job_name=myjob:指定導(dǎo)入任務(wù)的名稱,這里的myjob是自定義的任務(wù)名稱。

如果源表對象和目標(biāo)表對象不一致則需要用remap_schema,重新對應(yīng)遷移原表對象和目標(biāo)表對象。

# impdp username/password@Ip:port/database remap_schema=dbTest:oprection directory=tmpDir dumpfile=export.dmp job_name=myjob

注意:

remap_schema=dbTest:oprection中格式為dmp文件所在的schema:目標(biāo)服務(wù)器數(shù)據(jù)庫的schema。

擴展

(1)單表導(dǎo)入:

# impdp username/password@Ip:port/database directory=tmpDir dumpfile=export.dmp tables=student,school,teacher

需要注意的是,在導(dǎo)入數(shù)據(jù)表時,如果目標(biāo)數(shù)據(jù)庫中已經(jīng)存在同名的數(shù)據(jù)表,需要使用REMAP_TABLE選項將數(shù)據(jù)表重新映射到新的表名或者新的表空間中,例如:

# impdp username/password@database_schema tables=table1,table2 directory=tmpDir dumpfile=export.dmp logfile=import.log REMAP_TABLE=table1:new_table1,table2:new_table2

替換已存在的表需加上:table_exists_action=replace

報錯處理:

1、權(quán)限問題

導(dǎo)入的dmp文件需要設(shè)置下權(quán)限,然后重新進行導(dǎo)入操作。

#  chmod 777 /home/tempFile/export.dmp

2、expdp命令導(dǎo)出報錯UDE-00010:multiple job modes requested, schema and tables

當(dāng)使用expdp命令導(dǎo)出單個數(shù)據(jù)表時,需要指定TABLES選項來指定要導(dǎo)出的表名,同時也需要指定SCHEMAS選項來指定要導(dǎo)出的數(shù)據(jù)庫用戶。如果同時指定了TABLES和SCHEMAS選項,可能會出現(xiàn)UDE-00010錯誤,提示“multiple job modes requested, schema and tables”。

解決這個問題,可以在導(dǎo)出命令中只指定TABLES選項,不指定SCHEMAS選項。例如:

#  expdp username/password@database_schema tables=table_name directory=data_pump_dir dumpfile=export.dmp

如果需要導(dǎo)出多個表,可以在TABLES選項中使用逗號分隔多個表名

3、主鍵插入失敗

導(dǎo)出測試庫的時候數(shù)據(jù)在更新,導(dǎo)致了dmp文件中設(shè)備主鍵的值有重復(fù)的,需要刪除數(shù)據(jù)后,手動新建主鍵。

總結(jié)

到此這篇關(guān)于Oracle數(shù)據(jù)庫數(shù)據(jù)遷移完整解決步驟的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論