昨天需要将⼀个数据库的aaa⽤户下的数据导⼊到另⼀个数据库下的bbb⽤户下⾯,不知道如何实现,知道⼜⽤效率低下的exp/imp来做.今天再看了看impdp的说明,原来⽐exp/imp的更简单,再次在实验数据库实验了⼀下,成功了.具体命令如下:SQL>create directory exp_dump as 'd:\\exp';
SQL>grant read,write on directory exp_dump to aaa;
expdp aaa/aaa dumpfile=aaa%u.dmp directory=exp_dump logfile=aaaexpdp.log job_name=exp_aaa;
impdp aaa/aaa dumpfile=aaa%u.dmp directory=exp_dump remap_schema=aaa:bbb logfile=bbbimpdp.log job_name=imp_bbb; 不⽤建⽴bbb⽤户,会⾃动建,会将数据对象建⽴在和aaa⽤户相同的tablespace⾥,挺⽅便的,⽽且速度⾮常快!
EXPDP导⼊⼀:导⼊前期准备:1.创建⽬录对象:
CREATE DIRECTORY dump_dir AS ':\\dump';2.在操作系统创建相应的⽬录。3.将⽬录读写权限赋给⽤户
GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;⼆:导⼊的模型1.导⼊表
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM第⼀种⽅法表⽰将DEPT和EMP表导⼊到SCOTT⽅案中,第⼆种⽅法表⽰将DEPT和EMP表导⼊的SYSTEM⽅案中。注意:如果要将表导⼊到其他⽅案中,必须指定REMAP SCHEMA选项。2.导⼊⽅案(⽤户)
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scottImpdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmpSCHEMAS=scott REMAP_SCHEMA=scott:system3.导⼊表空间
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmpTABLESPACES=user014.导⼊数据库
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y三:IMPDP命令⾏选项:
IMPDP命令⾏选项与EXPDP有很多相同的,不同的有:1,REMAP_DATAFILE
该选项⽤于将源数据⽂件名转变为⽬标数据⽂件名,在不同平台之间搬移表空间时可能需要该选项.REMAP_DATAFIEL=source_datafie:target_datafile2,REMAP_SCHEMA
该选项⽤于将源⽅案的所有对象装载到⽬标⽅案中.REMAP_SCHEMA=source_schema:target_schema3,REMAP_TABLESPACE
将源表空间的所有对象导⼊到⽬标表空间中
REMAP_TABLESPACE=source_tablespace:target:tablespace4.REUSE_DATAFILES
该选项指定建⽴表空间时是否覆盖已存在的数据⽂件.默认为NREUSE_DATAFIELS={Y | N}5.SKIP_UNUSABLE_INDEXES
指定导⼊是是否跳过不可使⽤的索引,默认为N6,SQLFILE
指定将导⼊要指定的索引DDL操作写⼊到SQL脚本中SQLFILE=[directory_object:]file_name
Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql7.STREAMS_CONFIGURATION
指定是否导⼊流元数据(Stream Matadata),默认值为Y.8,TABLE_EXISTS_ACTION
该选项⽤于指定当表已经存在时导⼊作业要执⾏的操作,默认为SKIPTABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }
当设置该选项为SKIP时,导⼊作业会跳过已存在表处理下⼀个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导⼊作业会截断表,然后为其追加新数据;当设置为REPLACE时,导⼊作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适⽤与簇表和NETWORK_LINK选项9.TRANSFORM
该选项⽤于指定是否修改建⽴对象的DDL语句TRANSFORM=transform_name:value[:object_type]
Transform_name⽤于指定转换名,其中SEGMENT_ATTRIBUTES⽤于标识段属性(物理属性,存储属性,表空间,⽇志等信息),STORAGE⽤于标识段存储属性,VALUE⽤于指定是否包含段属性或段存储属性,object_type⽤于指定对象类型.Impdp scott/tiger directory=dump dumpfile=tab.dmpTransform=segment_attributes:n:table10.TRANSPORT_DATAFILES
该选项⽤于指定搬移空间时要被导⼊到⽬标数据库的数据⽂件TRANSPORT_DATAFILE=datafile_name
Datafile_name⽤于指定被复制到⽬标数据库的数据⽂件
Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmpTRANSPORT_DATAFILES=’/user01/data/tbs1.f’
因篇幅问题不能全部显示,请点此查看更多更全内容