ITPub博客

首页 > 数据库 > Oracle > Oracle 逻辑备份之EXPDP精讲

Oracle 逻辑备份之EXPDP精讲

原创 Oracle 作者:531968912 时间:2016-05-06 16:46:24 0 删除 编辑
Oracle 10g引入了最新的数据泵(data dump)技术,它使得dba或应用开发人员可以将数据库的元数据快速的移动到另一个Oracle数据库中。


数据泵导入导出的作用
***数据泵导出导入可以实现逻辑备份和逻辑恢复
***数据泵导出导入可以在数据库用户之间移动对象
***数据泵导出导入可以在数据库之间移动对象


***数据泵导出导入可以实现表空间搬迁
 
数据泵导出导入与传统的导出导入的区别:
***EXP和IMP是客户端的工具程序,它们既可以在客户端使用,也可以在服务器端使用。
***EXPDP和IMPDP是服务器端的工具程序,它们只能在ORACLE服务器端使用,而不能再Oracle客户端使用
***IMP只适用于EXP导出文件,而不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适合用于EXP导出文件。


数据泵是Oracle 10g新增加的功能,它是指利用实用工具EXPDP将数据库对象的元数据(对象结构)或数据导出到转储文件中。数据泵导出包括导出表、导出方案、导出表空间、导出数据库四种方式。


如何调用EXPDP:
EXPDP是服务器端工具,该工具只能在Oracle服务器端使用,而不能再Oracle客户端使用。包括导出表、导出方案、导出表空间、导出数据库四种模式。当使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象所对应的OS目录中,而不能指定转储文件所在的OS目录。因此,当使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予DIRECTORY对象的权限。示例如下:


SQL> conn /as sysdba
--已连接。
SQL> create DIRECTORY dump AS '/datas/logic';
--目录已创建。
SQL> grant read,write on directory dump to scott;
--授权成功。
Expdp导出的四种模式:
***导出表:
1
expdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp TABLES=dept,emp
***导出方案:
1
expdp system/manager DIRECTORY=dump DUMPFILE=schema.dmp SCHEMAS=system,scott
***导出表空间:
1
expdp system/manager DIRECTORY=dump DUMPFILE=tablespace.dmp TABLESPACES=user01,user02
***导出数据库:
注意:当导出数据库时,不会导出SYS,ORDSYS,ORDPLUGINS,CTXSYS,MDSYS,LBACSYS及XDB等方案的对象
1
expdp system/manager DIRECTORY=dump DUMPFILE=full.dmp FULL=Y
EXPDP命令行选项:
(1):ATTACH。该选项用于在客户与已存在导出作业之间建立关联。语法如下:
ATTACH = [schema_name.] job_name
如上所示:schema_name用于指定方案名,job_name用于指定导出作业名。注意,如果要使用ATTACH选项,那么在命令行除了连接字符串和ATTACH选项外,不能指定任何其他 选项。示例如下:
Expdp scott/tiger ATTACH=scott.export_job
(2)CONTENT。该选项用于指定要导出的内容,其默认值为ALL。语法如下:
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
如上所示,当设置为ALL时,会导出对象定义及其所有数据;当设置为DATA_ONLY时,只会导出对象数据;当设置为METADATA_ONLY时,只会导出对象定义。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp CONTENT=METADATA_ONLY
(3)DIRECTORY。该选项用于指定转储文件和日志文件所在的位置。语法如下:
DIRECTORY=directory_object
如上所示:directory_object用于指定目录对象名称。注意,目录对象是使用CREATE DIRECTORY语句所创建的对象,而不是OS目录。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp
(4)DUMPFILE。该选项用于指定转储文件的名称。
(5)ESTIMATE。用于指定估算被导出表所占用磁盘空间的方法,默认值为BLOCKS。语法如下:
ESTIMATE={BLOCKS | STATISTICS}
如上所示,当设置该选项为BLOCKS时,Oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间;当设置该选项为STATISTICS时,Oracle会根据最近的统计值估算对象占用的空间。示例如下;
expdp scott/tiger tables=emp estimate=statistics directory=dump dumpfile=scott.dmp
(6)ESTIMATE_ONLY。该选项用于指定是否只估算导出作业所占用的磁盘空间,默认值为N。语法如下:
ESTIMATE_ONLY={Y | N}
如上所示:当设置该选项为Y时,导出作业只会估算对象所占用的磁盘空间,而不会执行导出操作;当设置为N时,导出作业既会估算对象所占用的磁盘空间,又会执行导出操作。示例如下:
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
(7)EXCLUDE。用于指定当执行导出操作时要排除的对象类型或相关对象。语法如下:
EXCLUDE=object_type[:name_clause][,….]
如上所示,object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象。注意,EXCLUDE和INCLUDE不能同时使用。示例如下;
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp EXCLUDE
(8)FILESIZE。该选项用于指定导出文件的最大尺寸,其默认值为0(标识文件尺寸无限制)。语法如下:
FILESIZE=integet[B | K | M | G]
如上所示,B用于标识字节,K用于标识千字节,M用于标识兆字节,G用于标识亿字节。如果要将数据库对象及其数据导出到多个文件中,必须设置该选项。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott_3m.dmp FILESIZE=3M
(9)FLASHBACK_SCN。该选项用于指定特定SCN时刻的表数据。语法如下:
FLASHBACK_SCN=scn_value
如上所示,scn_value用于标识SCN值。当设置该选项时,Oracle会激活FlashBack特征。
注意:FLASHBACK_SCN和FLASHBACK_TIME不能同时使用。示例如下:
Expdp soctt/tiger DIRECTORY=dump DUMPFILE=scott.dmp FLASHBACK_SCN=385823
(10)FLASHBACK_TIME。该选项用于指定导出特定时间点的表数据。语法如下:
FLASHBACK_TIME=”TO_TIMESTAMP(time-value)”
如上所示,time_value用于制定日期时间值。当设置该选项时,Oracle会激活FlashBack特征。注意,FLASHBACK_TIME和FLASHBACK_SCN不能同时使用。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp FLASHBACK_TIME=”TO_TIMESTAMP(’07-12-2012 14:35:00’,’DD-MM-YYYY HH24:MT:SS’)”
(11)FULL。该选项用于指定数据库模式导出,其默认值为N。语法如下:
FULL={Y | N}
(12)HELP。该选项用于制定是否显示EXPDP命令行选项的帮助信息,其默认值为N。语法如下:
HELP={y | n}
如上所示,当设置该选项为Y时,会显示导出选项的帮助信息。示例如下:
Expdp help=y
(13)INCLUDE。该选项用于指定要导出的对象类型及相关对象。示例如下:
INCLUDE = object_type[:name_clause][,..]
如上所示,object_type用于指定要导出的对象类型,name_clause用于指定要导出的对象名。注意,INCLUDE和EXCLUDE选项不能同时使用。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp INCLUDE=table
(14)JOB_NAME。该选项用于指定导出作业的名称,默认名称为SYS_xxx。语法如下:
JOB_NAME=jobname_string
如上所示,jobname_string用于制定导出作业的名称。注意,作业名不能超过30个字符。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp JOB_NAME=scott_job
(15)LOGFILE。该选项用于指定导出日志文件的名称,默认名称为export.log。语法如下:
LOGFILE=[directory_object:]file_name
如上所示,directory_object用于指定目录对象名称,file_name用于指定导出日志文件名。
注意:如果不指定directory_object,那么导出作业会自动使用DIRECTORY的相应选项值。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp logfile=scott_exp.log
(16)NETWORK_LINK。用于指定数据库链名。如果要将数据库对象导出到本地例程的转储文件中,则必须设置该选项。语法如下:
NETWORK_LINK=source_database_link
如上所示,source_database_link用于制定数据库链名。注意,对象表不支持远程导出。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp NETWORK_LINK=orcl
(17)NOLOGFILE。该选项用于指定禁止生成导出日志文件,默认值为N。语法如下:
NOLOGFILE={y | n}
如上所示,当设置该选项为Y时,导出操作不会生成日志文件。示例如下:
Expdp scott/tiger DUMPFILE=dump:scott.dmp NOLOGFILE=Y
(18)PARALLEL。该选项用于制定执行导出操作的并行进程个数,默认值为1。语法如下:
PARALLEL = integer
如上所示,integer用于指定并行进程的个数。通过执行并行导出操作,可以加快导出速度。
注意:该选项只适用于Oracle Database 10g Enterprise Edition。示例如下:
Expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp PARALIEL=3
(19)PARFILE。该选项用于指定导出参数文件的名称。语法如下:
PARFILE=[directory_path]file_name
如上所示,directory_path用于指定参数文件所在目录,file_name用于指定参数文件名。参数文件示例如下:
TABLES=dept,emp
DIRECTORY=dump
DUMPFILE=tab.dmp
注意:在expdp参数文件中不能包含PARFILE选项。另外,如果在使用参数文件时不指定directory_path,那么导出工具会将当前目录作为参数文件得路径。使用参数文件的示例如下:
Expdp scott/tiger PARFILE=/datas/parm.txt
(20)QUERY。该选项用于指定过滤导出数据的WHERE条件。语法如下:
QUERY = [schema.][table_name;]query_clause
如上所示,schema用于指定方案名,table_name用于制定表明,query_clause用于制定条件限制子句。注意:QUERY选项不能与CONNECT=METADATA_ONLY、ESTIMATE_ONLY、TRANSPORT_TABLESPACES等选项同时使用。示例如下:
expdp scott/tiger DIRECTORY=dump DUMPFILE=scott.dmp TABLES=emp query=' "WHERE deptno=20" '
(21)SCHEMAS。该选项用于指定执行方案模式导出,默认为当前用户方案。语法如下:
SCHEMAS = schema_name[,....]
如上所示,schema_name用于指定方案名。用户可以导出自身方案,但如果要导出其他方案,则要求用户必须具有EXP_FULL_DATABASE角色或DBA角色。示例如下:
expdp system/manager DIRECTORY=dump DUMPFILE=st_sc.dmp SCHEMAS=scott,system
(22)STATUS。该选项用于指定显示导出作业进程的详细状态,其默认值为0.语法如下:
STATUS=integer
如上所示,integer用于指定显示导出作业状态的时间间隔(单位:秒)。当指定了该选项之后,每隔特定时间间隔就会显示作业完成的百分比。示例如下:
expdp system/manager DIRECTORY=dump DUMPFILE=system.dmp FULL=y status=30
(23)TABLES。该选项用于指定表模式导出。语法如下:
TABLES=[schema_name.]table_name[:partition_name][,...]
如上所示,schema_name用于指定方案名,table_name用于制定要导出的表明,partition_name用于指定要导出的分区名。注意,用户可以直接导出其自身方案的表,但如果要导出其他方案的表,则要求用户必须具有EXP_FULL_DATABASE角色或DBA角色。示例如下:
expdp system/manager directory=dump dumpfile=scott.dmp tables=scott.dept,scott.emp
(24)TABLESPACES。该选项用于指定要导出的表空间列表。语法如下:
TABLESPACES=tablespace_name[,...]
如上所示,tablespace_name用于指定要导出的表空间。当指定该选项时,会导出该表空间的所有表。示例如下:
expdp system/manager DIRECTORY=dump DUMPFILE=user01.dmp tablespaces=user01
(25)TRANSPORT_FULL_CHECK。该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,其默认值为N。语法如下:
TRANSPORT_FULL_CHECK={Y | N}
如上所示,当设置该选项为Y时,导出作业会检查表空间之间的完整关联关系,如果表所在表空间或其索引所在表空间只有一个表空间被搬移,则会显示错误信息;当设子该选项为N时,导出作业只会检查单端依赖,如果要搬移索引所在表空间,但是未搬移表所在表空间,那么会显示错误信息,如果要搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息。示例如下:
expdp system/manager DIRECTORY=dump DUMPFILE=system.dmp TRANSPORT_FULL_CHECK=user01 TRANSPORT_FULL_CHECK=Y
(26)VERSION。该选项用于指定被导出对象的数据库版本,其默认值为COMPATIBLE。语法如下:
VERSION={COMPATIBLE | LATEST | version_string}
如上所示,当设置为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;当设置该想想为LATEST时,会根据数据库的实际版本生成对象元数据;version_string用于指定数据库版本字符串(不能低于9.2)。示例如下:
expdp scott/tiger DIRECTORY=dump DUMPFILE=55linux.dmp VERSION=LATEST

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25462274/viewspace-2094985/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-09-24

  • 博文量
    576
  • 访问量
    1111387