Rumah >pangkalan data >tutorial mysql >Oracle 11g数据泵详解

Oracle 11g数据泵详解

WBOY
WBOYasal
2016-06-07 15:53:231104semak imbas

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 }

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn