12c 資料泵匯入匯出級別
資料泵匯入匯出十分靈活,可以分為以下級別:
- 全庫級別
- schema級別
- 表級別
- 表空間級別
一,全庫級別
全庫級別資料泵匯出也可以理解為邏輯全庫備份。生成的匯出檔案含有重建資料庫的所有必要資訊。並且在schema級別或者表級別等匯入操作時也可以使用全庫匯出檔案。在生產環境中體積較小的資料庫常常採用這種方法做備份。和rman相比才用資料泵全庫匯出不包含SYS schema下的表,這個做法是防止在資料遷移時修改了目標庫的SYS schema下的資料字典內部的表和試圖,導致資料庫不可用。還有一點就是不會匯出用於重建索引的DDL語句。
下面的例子執行了全庫匯出操作:
[root@snow ~]# su - oracle
[oracle@snow ~]$ export ORACLE_SID=ora12c
[oracle@snow ~]$ sqlplus / as sysdba
建立資料泵使用者dp
SYS@ora12c >grant dba to dp identified by dp;
建立資料泵目錄dp_dir
SYS@ora12c >create or replace directory dp_dir as '/home/oracle';
資料泵使用者dp在目錄dp_dir下有讀寫許可權
SYS@ora12c >grant read,write on directory dp_dir to dp;
SYS@ora12c >exit
執行全庫匯出操作
[oracle@snow ~]$ expdp dp/dp directory=dp_dir dumpfile=full.dmp logfile=full.log full=y
接下來做些破壞工作,刪除使用者hr,再使用impdp恢復該使用者
[oracle@snow ~]$ sqlplus / as sysdba
SYS@ora12c >drop user hr cascade;
SYS@ora12c >exit
[oracle@snow ~]$ imp dp/dp directory=dp_dir dumpfile=full.dmp logfile=full.log full=y
由於我們只是刪除了一個使用者hr,在執行全庫匯入時就不會跳過這些已經存在的物件,節省時間。但是這些已經存在的物件會出現各種抱錯資訊,例如ORA-39151: Table "SH"."COSTS" exists. 等等
二,schema級別
schemas引數可以設定一個或者多個要匯出的schema。
匯入時可以選擇從schema級別的匯出檔案中提取,也可以從全庫級別的匯出檔案提取。需要注意的是如果使用者已經存在系統會顯示錯誤提示,而匯入作業會繼續執行下一個任務。
[oracle@snow ~]$ expdp dp/dp directory=dp_dir dumpfile=shhr.dmp logfile=shhr.log schemas=hr,sh
[oracle@snow ~]$ impdp dp/dp directory=dp_dir dumpfile=shhr.dmp logfile=shhr.log schemas=sh,hr
[oracle@snow ~]$ impdp dp/dp directory=dp_dir dumpfile=full.dmp logfile=shhr.log schemas=sh,hr
三,表級別
使用tables引數可以選擇多個表。在生產環境中經常使用該方法,比如ogg表級別初始化。如果表的數量較多推薦使用parfile.
[oracle@snow ~]$ vi tables_exp.par
userid=dp/dp
directory=dp_dir
dumpfile=tables.dmp
logfile=tables.log
tables=
HR.REGIONS,
HR.LOCATIONS,
HR.DEPARTMENTS,
HR.JOBS,
HR.EMPLOYEES,
HR.JOB_HISTORY,
SH.TIMES,
SH.PRODUCTS,
SH.CHANNELS,
SH.PROMOTIONS,
SH.CUSTOMERS,
SH.COUNTRIES
[oracle@snow ~]$ expdp parfile=tables_exp.par
匯入時如果表已經存在可以使用TABLE_EXISTS_ACTION引數跳過(skip)、替換(replace)或者截斷(truncate)
[oracle@snow ~]$ vi tables_imp.par
userid=dp/dp
directory=dp_dir
dumpfile=tables.dmp
logfile=tables.log
tables=
HR.REGIONS,
HR.LOCATIONS,
HR.DEPARTMENTS,
HR.JOBS,
HR.EMPLOYEES,
HR.JOB_HISTORY,
SH.TIMES,
SH.PRODUCTS,
SH.CHANNELS,
SH.PROMOTIONS,
SH.CUSTOMERS,
SH.COUNTRIES
table_exists_action=replace
[oracle@snow ~]$ impdp parfile=tables_imp.par
四,表空間級別
表空間級別匯入操作會建立表空間中包含的所有表和索引,但是匯入操作不會重建表空間本身。和前面的例子一樣,impdp也可以使用全庫匯出的dmp檔案。
[oracle@snow ~]$ expdp dp/dp directory=dp_dir dumpfile=tbs.dmp logfile=tbs.log tablespaces=example
[oracle@snow ~]$ impdp dp/dp directory=dp_dir dumpfile=tbs.dmp logfile=tbs.log tablespaces=example
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29047826/viewspace-1441157/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料泵匯出匯入
- 資料泵的匯入匯出
- 資料泵匯出匯入表
- 12c pdb的資料泵匯入匯出簡單示例
- Oracle資料泵-schema匯入匯出Oracle
- Oracle資料泵的匯入和匯出Oracle
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- Oracle使用資料泵匯出匯入表Oracle
- 資料泵取匯出和匯入(一)
- 資料泵匯出匯入資料標準文件
- 資料庫泵(expdp/impdp)匯入匯出流程資料庫
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- Impdp資料泵匯入
- 12c 資料泵一致性匯出
- 資料泵匯出匯入物化檢視(ORA-39083)
- oracle10G新特性之資料泵匯出/匯入Oracle
- 【匯入匯出】資料泵 job_name引數的使用
- 資料泵避免個別表資料的匯出
- oracle監控資料泵匯入和匯出的sql語句OracleSQL
- Oracle使用資料泵在異機之間匯出匯入表Oracle
- 10g資料泵和匯入匯出效能對比(三)
- 10g資料泵和匯入匯出效能對比(二)
- 10g資料泵和匯入匯出效能對比(一)
- 10g資料泵和匯入匯出效能對比(四)
- 10g資料泵和匯入匯出效能對比(六)
- 10g資料泵和匯入匯出效能對比(五)
- 使用資料泵impdp匯入資料
- 資料泵避免個別表資料的匯出(二)
- 資料泵無法匯入JOB
- 資料泵引數彙總與各種匯出匯入規則
- Oracle 資料匯入匯出Oracle
- mysql資料匯入匯出MySql
- mysql資料匯出匯入MySql
- Oracle資料匯入匯出Oracle
- Oracle使用資料泵在異機之間匯出匯入多個 schemaOracle
- 限定filesize的資料泵匯入匯出操作案例
- 對比資料泵與原始匯入匯出工具(五)
- 對比資料泵與原始匯入匯出工具(四)