집 >데이터 베이스 >MySQL 튜토리얼 >Oracle 11g数据泵详解
Oracle Database 10g引入了最新的数据泵(DataDump)技术,数据泵导出导入(EXPDP和IMPDP)的作用,Oracle数据泵,逻辑备份和恢复工具
Oracle Database 10g引入了最新的数据泵(DataDump)技术,数据泵导出导入(EXPDP和IMPDP)的作用
1,实现逻辑备份和逻辑恢复
2,,在数据库用户之间移动对象
3,在数据库之间移动对象
4,实现表空间搬移
数据泵使用EXPDP和IMPDP时应该注意的事项:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
一:可以通过dblink来使用数据泵,这样省掉了导出的步骤,操作简单了。如下所示的例子:
impdp system/manager123 network_link=dblink_to_myself remap_tablespace=DIC_DATA:DICTEST remap_schema=DICTEST_ZH_CN:DICTEST_ZH_CN tables=td_pay_bank, td_common_content TABLE_EXISTS_ACTION=replace;
二:导出的内容
1)按用户导
expdpscott/tiger@orclschemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log
2)并行进程parallel
expdpscott/tiger@orcldirectory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdpscott/tiger@orclTABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dir;
4)按查询条件导
expdpscott/tiger@orcldirectory=dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dir DUMPFILE=full.dmp FULL=y;
三:导出内容:
CONTENT该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
例子:只导出表结构
expdp system/"manager(*)0202" directory=bak dumpfile=TEST_NAV_ZH_CN20150506.dmp schemas=test_nav_zh_tw, test_nav_zh_cn test_nav_en_us, test_nav_ar_sa CONTENT=METADATA_ONLY
四:directory:
查看已经建好的目录;如果没有使用directory参数那么会使用目录DATA_PUMP_DIR
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- ---------------------- ----------------------------------------------------------
SYS SUBDIR /u01/app/oracle/product/11.2.0/db/demo/schema/order_entry//2002/Sep
SYS SS_OE_XMLDIR /u01/app/oracle/product/11.2.0/db/demo/schema/order_entry/
SYS LOG_FILE_DIR /u01/app/oracle/product/11.2.0/db/demo/schema/log/
SYS MEDIA_DIR /u01/app/oracle/product/11.2.0/db/demo/schema/product_media/
SYS XMLDIR /u01/app/oracle/product/11.2.0/db/rdbms/xml
SYS DATA_FILE_DIR /u01/app/oracle/product/11.2.0/db/demo/schema/sales_history/
SYS DATA_PUMP_DIR /u01/app/oracle/admin/tj01/dpdump/
SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/db/ccr/state
注意:通过查询我们看到,所有的目录都属于SYS用户,而不管是哪个用户创建的,在数据库里已经提前建好了这个目录对象DATA_PUMP_DIR。如果在使用expdp导出时,不指定目录对象参数,Oracle会使用数据库缺省的目录DATA_PUMP_DIR,不过如果想使用这个目录的话,用户需要具有exp_full_database的权限才行
五:不常用的一些参数;
1.EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
2.EXTIMATE_ONLY={Y | N}
设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Expdp scott/tiger ESTIMATE_ONLY=yNOLOGFILE=y
3.EXCLUDE
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:name_clause] [,….]
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dup EXCLUDE=VIEW
4.FILESIZE
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
5. FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用
Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dmp
FLASHBACK_SCN=358523
10)FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdp scott/tiger DIRECTORY=dumpDUMPFILE=a.dmp FLASHBACK_TIME=
“TO_TIMESTAMP(’25-08-200414:35:00’,’DD-MM-YYYYHH24:MI:SS’)”
六:当用一个schema去覆盖另一个schemas时,如下:
[oracle@rac1 ~]$ impdp system/manager123 network_link=dblink_to_myself remap_tablespace=users:users remap_schema=liuwenhe:liuhe schemas=liuwenhe;
如果liuhe这用户存在,那么该操作完成之后,liuhe这个用户权限,密码什么的不会变化。
如果liuhe这个用户不存在,那么该操作完成之后,就会创建一个liuhe的用户,并且没有任何权限,值得注意的是密码和liuwenhe的密码相同。
七:当导入schemas的时候,会把属于这个用户的所有对象,包括SEQUENCE,FUNCTION,PROCEDURE,主键,索引,都一并过去。
[oracle@rac1 ~]$ impdp system/manager123 network_link=dblink_to_myself remap_tablespace=users:users remap_schema=liuwenhe:liuhe tables=liuwenhe.liuwenhe table_exists_action=replace;
liuwenhe.liuwenhe这个表的主键和索引,也会过去。并且名字和liuwenhe.liuwenhe的对应名字一样。
八:该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP
TABBLE_EXISTS_ACTION={SKIP | APPEND |TRUNCATE | FRPLACE }