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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料泵匯出匯入
- Oracle資料泵的匯入和匯出Oracle
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- 資料泵匯出匯入物化檢視(ORA-39083)
- Oracle expdp資料泵遠端匯出Oracle
- phpMyAdmin匯入/匯出資料PHP
- Oracle資料匯入匯出Oracle
- sqoop資料匯入匯出OOP
- Oracle 資料匯入匯出Oracle
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- MySQL入門--匯出和匯入資料MySql
- Oracle 12c expdp和impdp匯出匯入表Oracle
- 百萬級別資料Excel匯出優化Excel優化
- oracle10g expdp資料泵的bug,按schema匯出,匯入impdp時無jobOracle
- Mysql 資料庫匯入與匯出MySql資料庫
- EasyPoi, Excel資料的匯入匯出Excel
- Mongodb資料的匯出與匯入MongoDB
- oracle資料匯出匯入(exp/imp)Oracle
- 匯入和匯出AWR的資料
- 匯出百萬級資料
- 【最佳實踐】MongoDB匯出匯入資料MongoDB
- 複雜「場景」資料匯入匯出
- ClickHouse 資料表匯出和匯入(qbit)
- SQL資料庫的匯入和匯出SQL資料庫
- 【資料泵】EXPDP匯出表結構(真實案例)
- [Docker核心之容器、資料庫檔案的匯入匯出、容器映象的匯入匯出]Docker資料庫
- MongoDB--Mongodb 中資料匯出與匯入MongoDB
- PHP大資料xlswriter匯入匯出(最優資料化)PHP大資料
- 如何匯出千萬級別資料?
- SQLServer匯出匯入資料到MySQLServerMySql
- mongodb使用自帶命令工具匯出匯入資料MongoDB
- 使用VUE+SpringBoot+EasyExcel 整合匯入匯出資料VueSpring BootExcel
- QZpython匯入匯出redis資料的實現deuPythonRedis
- 使用Dbeaver 進行資料的匯入和匯出
- sqoop用法之mysql與hive資料匯入匯出OOPMySqlHive
- 細緻入微:如何使用資料泵匯出表的部分列資料
- Activity 流程模型匯入匯出-activity流程模型匯入匯出模型