Oracle10G使用数据泵
来源:优易学  2010-1-22 15:40:43   【优易学:中国教育考试门户网】   资料下载   IT书店

  1.1.1 expdp使用

  使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.

  首先得建DIRECTORY:

  SQL> conn /as sysdba

  SQL> CREATE OR REPLACE DIRECTORY dir_dump  AS '/u01/backup/';

  SQL> GRANT read,write ON DIRECTORY dir_dump TO public;

  1) 导出scott整个schema

  --默认导出登陆账号的schema

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott_full.dmp

  LOGFILE=scott_full.log

  --其他账号登陆, 在参数中指定schemas

  $ expdp system/oracle@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott_full.dmp

  LOGFILE=scott_full.log

  SCHEMAS=SCOTT

  2) 导出scott下的dept,emp表

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  TABLES=DEPT,EMP

  3) 导出scott下除emp之外的表

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  EXCLUDE=TABLE:"='EMP'"

  4) 导出scott下的存储过程

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  INCLUDE=PROCEDURE

  5) 导出scott下以'E'开头的表

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  INCLUDE=TABLE:"LIKE 'E%'"   //可以改成NOT LIKE,就导出不以E开头的表

  6) 带QUERY导出

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  TABLES=EMP,DEPT

  QUERY=EMP:"where empno>=8000"

  QUERY=DEPT:"where deptno>=10 and deptno<=40"

  注: 处理这样带查询的多表导出, 如果多表之间有外健关联, 可能需要注意查询条件所筛选的数据是否符合这样的外健约束, 比如 EMP中有一栏位是 deptno, 是关联dept中的主键, 如果"where empno>=8000"中得出的deptno=50的话, 那么, 你的dept的条件"where deptno>=10 and deptno<=40"就不包含deptno=50的数据, 那么在导入的时候就会出现错误.

  1.1.2 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}

  当设置CONTENT为ALL 时,将导出对象定义及其所有数据; 为DATA_ONLY时,只导出对象数据; 为METADATA_ONLY时,只导出对象定义,示例如下:

  expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY

  3. DIRECTORY

  指定转储文件和日志文件所在的目录.语法如下:

  DIRECTORY=directory_object

  directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录,示例如下:

  expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

  建立目录:

  CREATE DIRECTORY dump as 'd:\dump';

  查询创建了那些子目录:

  SELECT * FROM dba_directories;

  4. DUMPFILE

  用于指定转储文件的名称,默认名称为expdat.dmp.语法如下:

  DUMPFILE=[directory_object:]file_name[,….]

  directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象,示例如下:

  expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

  5. ESTIMATE

  指定估算被导出表所占用磁盘空间的方法.默认值是BLOCKS.语法如下:

  EXTIMATE={BLOCKS | STATISTICS}

  设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间,示例如下:

  expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump

  一般情况下, 当用默认值(blocks)时, 日志中估计的文件大小会比实际expdp出来的文件大, 用statistics时会跟实际大小差不多.

  6. EXTIMATE_ONLY

  指定是否只估算导出作业所占用的磁盘空间,默认值为N.语法如下:

  EXTIMATE_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=a.dup EXCLUDE=VIEW

  在EXPDP的帮助文件中, 可以看到存在EXCLUDE和INCLUDE参数, 这两个参数文档中介绍的命令格式存在问题, 正确用法是:

  EXCLUDE=OBJECT_TYPE[:name_clause][,...]

  INCLUDE=OBJECT_TYPE[:name_clause][,...]

  示例:

  expdp  <other_parameters> schema=scott exclude=sequence,table:"in('EMP','DEPT')"

  impdp  <other_parameters> schema=scott include=function,package,procedure,table:"='EMP'"

  有了这些还不够, 由于命令中包含了多个特殊字符, 在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行,

[1] [2] [3] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训