impdp 中的remap方式
impdp 中的remap方式
impdp 中要是沒有remap方式,那麼個人認為datapump 將是一個死板的工具。
remap_table方式
語法格式:REMAP_TABLE=[schema.]old_tablename[.partition]:new_tablename
在hr 模式中根據employees 建立如下一張表。
SQL>create table emp as select * from employees where 1=2;
執行匯入操作,tables 中指定了employees,因為dumpfile table.dmp
中除了employees 表中的資料以外,還有其他表的資料。關鍵是remap_table
引數的使用把employees 表中的資料從對映到emp 表,並且我們還使用了
conntent=data_only 引數,因為emp表已經存在,我們需要匯入的只是資料。
C:\Users\hello>impdp hr/hr tables=employees remap_table=employees:emp dumpfile=dmp_dir:table.dmp nologfile=yes content=data_only
Import: Release 11.2.0.1.0 - Production on Sun Jun 24 09:35:22 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "HR"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "HR"."SYS_IMPORT_TABLE_01": hr/******** tables=employees remap_table=employees:emp dumpfile=dmp_dir:table.dmp nologfile=yes content=data_only
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "HR"."EMP" 16.80 KB 107 rows
Job "HR"."SYS_IMPORT_TABLE_01" successfully completed at 09:35:26
匯入成功,下面確定資料是否存在於remap_table 引數指定的表中。
SQL>select count(*) from emp;
COUNT(*)
----------
107
remap_schema方式
語法格式:REMAP_SCHEMA=source_schema:target_schema
我們需要把使用schemas mode 匯出的資料,重新匯入到另外一個模式中,這時候我們
可以使用remap_schema 引數,為了能夠使用remap_schema 方式匯入資料,使用者應該
事先獲得datapump_imp_full_database 角色。下面指定資料的匯入。
C:\Users\hello>impdp hr/hr schemas=hr remap_schema=hr:test dumpfile=dmp_dir:hr_schema.dmp logfile=dmp_dir:remap_schema.log
Import: Release 11.2.0.1.0 - Production on Sun Jun 24 09:50:43 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "HR"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
Starting "HR"."SYS_IMPORT_SCHEMA_01": hr/******** schemas=hr remap_schema=hr:test dumpfile=dmp_dir:hr_schema.dmp logfile=dmp_dir:remap_schema.log
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "TEST"."COUNTRIES" 6.367 KB 25 rows
. . imported "TEST"."DEPARTMENTS" 7.007 KB 27 rows
. . imported "TEST"."EMPLOYEES" 16.80 KB 107 rows
. . imported "TEST"."JOBS" 6.984 KB 19 rows
. . imported "TEST"."JOB_HISTORY" 7.054 KB 10 rows
. . imported "TEST"."LOCATIONS" 8.273 KB 23 rows
. . imported "TEST"."REGIONS" 5.476 KB 4 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "HR"."SYS_IMPORT_SCHEMA_01" successfully completed at 09:50:53
匯入成功以後確定,test 模式中的資料。表中的資料,約束,索引等都是存在的。
SQL> select count(*) from employees;
COUNT(*)
----------
107
SQL> drop table employees;
drop table employees
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
SQL> select index_name from user_indexes
2 where table_name = 'EMPLOYEES';
INDEX_NAME
------------------------------------------------------------
EMP_EMP_ID_PK
EMP_EMAIL_UK
remap_tablespace 方式
在hr 模式中建立emp 表。
SQL> create table emp tablespace users as select * from employees;
Table created.
將emp 表匯出。
C:\Users\hello>expdp hr/hr tables=emp dumpfile=dmp_dir:emp_table.dmp nologfile=yes
建立 一個新的使用者並賦予相應的許可權,注意這裡的預設永久表空間是test而不是users.
SQL> create user testing
2 identified by testing
3 default tablespace test
4 temporary tablespace temp;
User created.
SQL> alter user testing default tablespace test quota 20m on test;
User altered.
SQL> grant connect to testing;
Grant succeeded.
SQL> grant create table to testing;
Grant succeeded.
執行匯入發現如下的錯誤。因為使用者沒有users 表空間的使用權,更不用說配額了。
C:\Users\hello>impdp hr/hr tables=emp remap_schema=hr:testing dumpfile=dmp_dir:emp_table.dmp nologfile=yes
ORA-39083: Object type TABLE:"TESTING"."EMP" failed to create with error:
ORA-01950: no privileges on tablespace 'USERS'
下面我們使用remap_tablespace 的方式來處理。將dumpfile 中對users 表空間的引用remap 到test 表空間。
C:\Users\hello>impdp hr/hr tables=emp remap_schema=hr:testing remap_tablespace=users:test dumpfile=dmp_dir:emp_table.dmp nologfile=yes
Import: Release 11.2.0.1.0 - Production on Sun Jun 24 10:59:25 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "HR"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "HR"."SYS_IMPORT_TABLE_01": hr/******** tables=emp remap_schema=hr:testing remap_tablespace=users:test dumpfile=dmp_dir:emp_table.dmp nologfile=yes
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "TESTING"."EMP" 16.79 KB 107 rows
Job "HR"."SYS_IMPORT_TABLE_01" successfully completed at 10:59:28
成功的匯入了,確定一下testing模式中的資料。
SQL> select count(*) from emp;
COUNT(*)
----------
107
除了上述演示的remap 方式以外還有一個remap_datafile,用來將dumpfile 中包含的資料檔案路徑,remap 到新的資料資料路徑。該引數只有當使用full 模式匯入的時候才可以使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-733694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- impdp中remap_datafile的測試。REM
- expdp / impdp 之 remap_schema remap_tablespaceREM
- expdp / impdp 之 remap_schema remap_tablespaceREM
- impdp的remap_schema引數REM
- Remap_table、remap_tablespace、tables在impdp關於只導特定表的注意事項REM
- impdp匯入時remap_*引數與table_exists_action的關係REM
- oracle10g_impdp工具測試學習_之三_remap相關OracleREM
- 【IMPDP】實現不同使用者之間的資料遷移——REMAP_SCHEMA引數REM
- ORACLE中impdp的總結Oracle
- 研究 - IMPDP [TRANSFORM=segment_attributes:n] [remap_tablespace] 2引數間影響關係ORMREM
- remap_tablespaceREM
- EXPDP/IMPDP 中的並行度PARALLEL引數並行Parallel
- 【impdp】使用impdp工具排除特定表的匯入
- ORACLE EXPDP IMPDP 中停止和啟動Oracle
- Oracle remap_schema需要注意的問題OracleREM
- 【impdp】IMPDP中的TRANSFORM引數--【資料泵】EXPDP匯出表結構(真實案例)後傳ORM
- impdp hangs,慎用impdp parallel引數Parallel
- 簡單粗暴有效的mmap與remap_pfn_rangeREM
- 您使用新引數 remap_data 遮蔽匯出轉儲檔案中的資料REM
- EXPDP/IMPDP工具的使用
- Expdp,impdp工具的使用
- oracle impdpOracle
- expdp/impdp中匯出/匯入任務的管理和監控
- impdp和expdp的總結
- impdp/expdp 示例
- oracle expdp and impdpOracle
- 【IMPDP】使用IMPDP自動建立使用者並完成資料的匯入
- oracle資料庫的impdp,expdpOracle資料庫
- expdp/impdp的原理及使用(轉)
- hive命令的3中呼叫方式Hive
- sqlplus中的提交方式SQL
- Java中鎖的實現方式Java
- VUE中v-for的4中使用方式Vue
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- 11gr2資料泵REMAP_TABLE功能REM
- Oracle IZ0-053 Q36(ASM ASMCMD REMAP)OracleASMREM
- Oracle OCP(57):IMPDPOracle
- Expdp Impdp詳解