您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Oracle中exp和imp數據遷移注意事項有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
一,exp時,os語言環境和數據庫不同時會自動發生轉換.
如果操作系統的字符集小于數據庫字符集,就可能出現亂碼現象.imp時,同理,也是有可能出現亂碼的.如果源庫和目標庫字符集是
相同的話,防止exp,imp過程出現字符轉換,我們可以在exp,imp動作前,手動設置語音環境和數據庫語言環境一樣.如數據庫語言環境
為AMERICAN_AMERICA.AL32UTF8,os是windows,使用命令set NLS_LANG=AMERICAN_AMERICA.AL32UTF8;os是linux or unix,使用命令
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8.
二,在遷移schema時,即使不遷移數據,也易發生ORA-1659錯誤.
在上述錯誤發生后,select view,發現表的大小和源庫表大小是一樣的.而實際,我們只是遷移表結構,并沒有遷移數據(rows=n).
查詢表發現也是沒有遷移數據的,但它的存儲空間和源表是一樣的.也就是說它遷移了存儲空間.分析發現,是由于exp時,沒有設置參
數compress=n所致,由于此參數默認值為y,那么它會在exp時,將源表所有數據壓縮到一個extent,也就是initial extent,而imp時,會
預分配initial extent大小的.因此此種情況下,極易發生ORA-1659錯誤.
注:另在作有數據導出時,如果表大小較大的話,使用此參數的默認值也極易發生ORA-1659錯誤.因為假設你的源表大小為100m,在
imp時,需分配initial extent大小為100m,如果此時,用戶所在表空間沒有連續100m空間,那么就會報此錯誤了.
三,如果導出統計信息,在只導出部分數據,或不導出數據時,導出統計信息會報錯.另如果未導出統計信息,但導入時,需導入統計信息
,那此時,導入后,統計信息會被鎖住,而無法更新統計信息.
此時,我們可使用包dbms_stats.unlock_schema_stats來解鎖.最好的辦法是,在exp,imp時,加入參數statistics=none,不exp,imp
統計信息,在導入完成后,在重新收集統計信息.
四,在使用ftp跨系統cp dmp文件時,一定要注意使用bin模式,來防止imp時,不能open文件,而導入失敗.
五,在作imp數據操作時,特別是imp大表時,為了防止發生ORA-1555錯誤,應設置參數commit=y,buffer=10000000(根據實際情況設置),此時,當buffer空間滿時,會自動提交.默認是imp一個表提交一次.
詳例
遷移用戶,但無需遷移數據,且源庫,目標庫語言環境都為AMERICAN_AMERICA.AL32UTF8,可如下操作:
導出:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
exp user/pwd file=export.dmp log=export.log buffer=10000000 grants=n rows=n statistics=none compress=n
導入:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
imp user/pwd fromuser=user1 touser=user2 rows=n statistics=none file=export.dmp log=export.log
感謝各位的閱讀!關于“Oracle中exp和imp數據遷移注意事項有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。