您好,登錄后才能下訂單哦!
本篇內容介紹了“oracle數據庫的impdp,expdp有什么作用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
oracle數據庫在遷移的時候如果數據庫的數據量在100G以內,建議是用數據泵,如果數據庫的數據量大于100G,建議使用其它的數據同步工具。
如果用戶對停機的時間,沒有要求,可以考慮按用戶進行進行數據遷移,
impdp,expdp可以實現跨平臺,跨版本的數據遷移。
oracle數據庫使用數據泵導入導出的是相同的用戶名字,相同的表空間,想要看導出的情況可以加個參數logfile=日志的名字,查看導出導入的詳細過程,如果不是相同相同的用戶名字,相同的表空間,需要添加相關參數
建立目錄
create directory dump_dir as '/home/oracle/dump/'
grant read,write on directory dump_dir to public;
數據的導出
--1)按用戶導
expdp scott/tiger@192.168.0.110:1521/orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dump_dir;
--2)并行進程parallel
expdp scott/tiger@192.168.0.110:1521/orcl directory=dump_dir dumpfile=scott3.dmp parallel=40 job_name=scott3
--3)按表名導(多張表使用逗號隔開)
expdp scott/tiger@192.168.0.110:1521/orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dump_dir;
--4)按查詢條件導
expdp scott/tiger@192.168.0.110:1521/orcl directory=dump_dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
--5)按表空間導(多個表空間使用逗號隔開)
expdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
--6)導整個數據庫
expdp \'/ as sysdba\' DIRECTORY=dump_dir DUMPFILE=tablespace.dmp FULL=y;
------------------------------------------------------------------------------------------------------------
數據的導入
--1)導到指定用戶下
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=scott;
--2)導入表
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=expdp.dmp TABLES=scott.dept;
--3)導入表空間
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=example;
--4)導入數據庫
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
-------------------------------------------------------------------------------------------------------------
如果是不同版本數據庫,不同表空間,不同用戶需要使用version,remap_tablespace,remap_schema
其中
-------------------------------------------------------------------------------------------------------------
如果是從原庫的某個用戶只是導出用戶下的表結構,不導出數據,也就是我們常說的只導出某個用戶下的元數據(元數據被稱為管理數據的數據,比如表的結構就被成為元數據),在expdp的時候需要使用
content=metadata_only參數
-------------------------------------------------------------------------------------------------------------
多個表空間對象導入到一個表空間中
impdp yngtts/yngtts DIRECTORY=DATA_PUMP_DIR dumpfile=mydir:yngtts0514.dmp logfile=mydir:yngtts0514.log remap_schema=yngtts/yngtts remap_tablespace='(TS_YNGT:TS_YNGT,CWFTS:TS_YNGT,TS_EDIDB_DEFAULT:TS_YNGT)'
------------------------------------------------------------------------------------------------------------
TABLE_EXISTS_ACTION
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
SKIP按原樣離開表并移動到下一個對象。如果CONTENT參數設置為,則這不是有效選項DATA_ONLY。
APPEND 從源加載行并保持現有行不變。
TRUNCATE 刪除現有行,然后從源加載行。
REPLACE刪除現有表,然后從源創建并加載它。如果CONTENT參數設置為,則這不是有效選項DATA_ONLY。
使用這些選項時,以下注意事項適用:
使用TRUNCATE或時REPLACE,請確保受影響的表中的行不是任何引用約束的目標。
在源中使用SKIP,APPEND或者TRUNCATE現有的表依賴對象(如索引,授權,觸發器和約束)不會被修改。因為REPLACE,如果未明確或隱式排除(使用EXCLUDE)它們并且它們存在于源轉儲文件或系統中,則從源中刪除并重新創建從屬對象。
使用APPEND或時TRUNCATE,會執行檢查以確保源中的行與現有表兼容,然后再執行任何操作。
如果現有表具有活動約束和觸發器,則使用外部表訪問方法加載它。如果任何行違反了活動約束,則加載失敗并且不加載任何數據。您可以通過DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS在“導入”命令行上指定來覆蓋此行為。
如果您有必須加載的數據,但可能導致約束違規,請考慮禁用約束,加載數據,然后在重新啟用約束之前刪除問題行。
使用時APPEND,數據總是加載到新空間; 即使可用,現有空間也不會被重復使用。因此,您可能希望在加載后壓縮數據。
“oracle數據庫的impdp,expdp有什么作用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。