oracle数据泵备份(Expdp命令)[转]

  Oracle备份方式主要分为数据泵导出备份、热备份与冷备份三种,今天首先来实践一下数据泵备份与还原。数据泵导出/导入属于逻辑备份,热备份与冷备份都属于物理备份。oracle10g开始推出了数据泵(expdp/impdp),可以使用并行参数选项,因此,相对于传统的exp命令来说,执行效率更高。

  一、知晓expdp命令

?




C:\>expdp -help

Export: Release 11.1.0.7.0 - Production on
星期六, 28 9月, 2013 10:21:52

Copyright (c) 2003, 2007, Oracle.  All
rights reserved.

数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。该实用程序可以使用以下命令进行调用:

示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制导出的运行方式。具体方法是: 在 ‘expdp‘
命令后输入各种参数。要指定各参数, 请使用关键字:

   格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

   示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scot

        或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字               说明 (默认)

---------------------------------------------------------------------------

ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。

COMPRESSION           减小转储文件内容的大小, 其中有效关键字  值为: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。

CONTENT              <SPAN style="COLOR: #ff0000"> 指定要卸载的数据, 其中有效关键字  值为: (ALL), DATA_ONLY 和 METADATA_ONLY。</SPAN>  --默认值为ALL                    

DATA_OPTIONS          数据层标记, 其中唯一有效的值为: 使用CLOB格式的 XML_CLOBS-write XML 数据类型

DIRECTORY             <SPAN style="COLOR: #ff0000">供转储文件和日志文件使用的目录对象</SPAN>。

DUMPFILE              <SPAN style="COLOR: #ff0000">目标转储文件 (expdat.dmp) 的列表,例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d

</SPAN>ENCRYPTION            <SPAN style="COLOR: #ff0000">加密部分或全部转储文件, 其中有效关键字值为: ALL, DATA_ONLY, METADATA_ONLY,ENCRYPTED_COLUMNS_ONLY 或 NONE。</SPAN>

ENCRYPTION_ALGORITHM  指定应如何完成加密, 其中有效关键字值为: (AES128), AES192 和 AES256。

ENCRYPTION_MODE       生成加密密钥的方法, 其中有效关键字值为: DUAL, PASSWORD
和 (TRANSPARENT)。

ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。

ESTIMATE              计算作业估计值, 其中有效关键字值为: (BLOCKS) 和 STATISTICS

ESTIMATE_ONLY         在不执行导出的情况下计算作业估计值。

EXCLUDE               <SPAN style="COLOR: #ff0000">排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。--EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause]<BR></SPAN>FILESIZE              以字节为单位指定每个转储文件的大小。

FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。 --指定导出特定SCN时刻的表数据<BR>FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。--指定导出特定时间点的表数据,注意FLASHBACK_SCN和FLASHBACK_TIME不能同时使用<BR>FULL                  <SPAN style="COLOR: #ff0000">导出整个数据库 (N)。</SPAN>

HELP                  显示帮助消息 (N)。

INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。

JOB_NAME              要创建的导出作业的名称。

LOGFILE               <SPAN style="COLOR: #ff0000">日志文件名 (export.log)。

</SPAN>NETWORK_LINK          链接到源系统的远程数据库的名称。

NOLOGFILE             不写入日志文件 (N)。

PARALLEL              <SPAN style="COLOR: #ff0000">更改当前作业的活动 worker 的数目。</SPAN>

PARFILE               <SPAN style="COLOR: #ff0000">指定参数文件</SPAN>。

QUERY                 <SPAN style="COLOR: #ff0000">用于导出表的子集的谓词子句。--</SPAN>QUERY = [schema.][table_name:] query_clause<BR>REMAP_DATA            <SPAN style="COLOR: #ff0000">指定数据转换函数,例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

</SPAN>REUSE_DUMPFILES       覆盖目标转储文件 (如果文件存在) (N)。

SAMPLE               <SPAN style="COLOR: #ff0000"> 要导出的数据的百分比;

</SPAN>SCHEMAS               <SPAN style="COLOR: #ff0000">要导出的方案的列表 (登录方案)。

</SPAN>STATUS                在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。

TABLES                <SPAN style="COLOR: #ff0000">标识要导出的表的列表 - 只有一个方案。--[schema_name.]table_name[:partition_name][,…]<BR></SPAN>TABLESPACES          <SPAN style="COLOR: #ff0000"> 标识要导出的表空间的列表。

</SPAN>TRANSPORTABLE         指定是否可以使用可传输方法, 其中有效关键字值为: ALWAYS, (NEVER)。

TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。

TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。

VERSION               <SPAN style="COLOR: #ff0000">要导出的对象的版本, 其中有效关键字为:(COMPATIBLE), LATEST 或任何有效的数据库版本。

</SPAN><BR>下列命令在交互模式下有效。

注: 允许使用缩写

命令               说明

---------------------------------------------------------------------------

ADD_FILE              向转储文件集中添加转储文件。

CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。

EXIT_CLIENT           退出客户机会话并使作业处于运行状态。

FILESIZE              后续 ADD_FILE 命令的默认文件大小 (字节)。

HELP                  总结交互命令。

KILL_JOB              分离和删除作业。

PARALLEL              更改当前作业的活动 worker 的数目。PARALLEL=<worker 的数目>。                     <BR>REUSE_DUMPFILES       覆盖目标转储文件 (如果文件存在) (N)。

START_JOB             启动/恢复当前作业。

STATUS                在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。STATUS[=interval]

STOP_JOB              顺序关闭执行的作业并退出客户机。STOP_JOB=IMMEDIATE 将立即关闭数据泵作业。

<BR><SPAN style="COLOR: #ff0000">备注:红颜色标记的字体,表示是expdp命令常用的命令选项,这个需要大家掌握理解并能灵活运用。()括号括起来的代表是expdp命令的默认选项</SPAN>

 二、准备工作

  1、查询路径信息

   查看已经创建的路径信息:

    SELECT * FROM dba_directories;

  2、创建路径

  创建路径需要sys权限,需要有create any
directory权限才可以创建路径。

  选项:DIRECTORY=directory_object

  Directory_object用于指定目录对象名称。需要注意,目录对象是使用CREATE
DIRECTORY语句建立的对象,而不是OS目录。

  eg: CREATE OR REPLACE directory backup_path
AS ‘D:\APP\ORADATA\db_backup‘; --创建路径名为dackup_path的路径,并指向硬盘的指定位置

  对新创建的路径进行授权操作:

  eg:grant read,write on directory backup_path
to orcldev; --将对路径的读写权限分配各orcldev用户。

 三、操作实例

  执行expdp和impdp命令需要拥有exp_full_database和imp_full_database权限,授权语句如下:

  eg:grant exp_full_database,imp_full_database
to orcldev;

   1、导出orcldev这个schema的所用对象[schemas or
full]

   eg:expdp orcldev/[email protected]
directory=backup_path dumpfile=orcldev_schema.dmp
logfile=orcldev_schema_2013.log schemas=orcldev

   2、导出orcldev这个用户下的某些表[tables]

   eg:C:\>expdp orcldev/oracle
directory=dackup_path dumpfile=orcldev_table.dmp logfile=orcldev_table_2013.log
tables=(‘TAB_TEST‘,‘TAB_A‘)

   3、只导出orcldev这个用户的元数据[content]

   eg:C:\>expdp orcldev/oracle
directory=dackup_path dumpfile=orcldev_meta.dmp logfile=orcldev_meta_2013.log
    

      SCHEMAS=orcldev
CONTENT=METADATA_ONLY

   
4、只导出orcldev这个用户50%的抽样数据[sample]

   eg:C:\>expdp orcldev/oracle
directory=dackup_path dumpfile=orcldev_samp.dmp logfile=orcldev_samp_2013.log
schemas=orcldev sample=50

   
5、采用并行方式备份整库[parallel]

    parallel参数只有在oracle10g之后的版本(包含10g)有效。

    oracle_online:you
can use the DUMPFILE parameter during export operations to specify multiple dump
files, by using a substitution variable (%U) in the filename. This is called a
dump file template. The new dump files are created as they are needed, beginning
with 01 for %U, then using 02,03,and so on.

   eg:C:\>expdp orcldev/oracle
directory=dackup_path dumpfile=orcldev_parallel_%U.dmp
logfile=orcldev_parallel_2013.log parallel=4

    "%U"表示自动生成递增的序列号。

  
6、导出orcldev这个方案对象,但不包含索引[exclude]

   eg:
--可以剔除的对象有:VIEW,PACKAGE,FUNCTION,index,constraints,table,schema,user等等

   
1) C:\>expdp orcldev/oracle directory=dackup_path
dumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log SCHEMAS=orcldev
EXCLUDE=index

    2)
C:\>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_exclude.dmp
logfile=orcldev_exclude.log SCHEMAS=orcldev EXCLUDE=INDEX:"LIKE
‘TEST%‘"   --导出这个orcldev方案,剔除以TEST开头的索引

   
3) C:\>expdp orcldev/oracle directory=dackup_path
dumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log
EXCLUDE=SCHEMA:"=‘SCOTT‘"

    C:\>expdp
orcldev/oracle directory=dackup_path dumpfile=orcldev_exclude.dmp
logfile=orcldev_exclude.log EXCLUDE=USER:"=‘SCOTT‘"

       
--备份整库但剔除SCOTT这个用户的对象。  

   注意:include与exclude不能同时使用。

  
7、PARFILE选项

    expdp命令可以调用parfile文件,在parfile里可以写备份脚本,可以使用query选项。

    Oracle
highly recommends that you place QUERY specifications in a parameter file;
otherwise, you might have to use operating system-specific escape characters on
the command line before each quotation mark.

   如expdp.txt
内容如下:

       
USERID=orcldev/oracle directory=dackup_path dumpfile=orcldev_parfile.dmp
logfile=orcldev_parfile.log TABLES=‘TAB_TEST‘ QUERY="WHERE
TRAN_DATE=TO_DATE(‘2013-08-31‘,‘YYYY-MM-DD‘)"

    执行方法:expdp
parfile=expdp.txt 即可执行备份

    使用parfile好处是使用query选项是不用使用转义字符,如果将query参数放到外边的话,需要将""进行转义。

    eg:

    UNIX写法:

    expdp
orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log
schemas=orcldev INCLUDE=TABLE:\"IN \(\‘TEST_A\‘,\‘TEST_B\‘\)\"
--在Unix系统执行是需要将单引号进行转义操作,否则会报错。

    WINDOWS写法:

    expdp
orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log
schemas=orcldev INCLUDE=TABLE:"IN \(‘TEST_A‘,‘TEST_B‘)"

   8、TABLESPACE导出表空间

    eg:expdp
orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log
tablespaces=user,orcldev

    
9、Version选项

    VERSION选项默认值是COMPATIBLE,即兼容模式。在我们备份的时候,可以指定版本号。

    eg:expdp
orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log full=Y
VERSION=10.2.0.4

   10、FLASHBACK_TIME选项

    指定导出特定时间点的表数据,可以联系一下FLASHBACK功能。

    eg:C:\>expdp
orcldev/oracle directory=dackup_path dumpfile=orcldev_flash.dmp
logfile=orcldev_flash.log SCHEMAS=orcldev  
FLASHBACK_TIME="TO_TIMESTAMP(‘2013-09-28 14:30:00‘,‘DD-MM-YYYY
HH24:MI:SS‘)"

  四、参考

      http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_export.htm#i1007829  

时间: 2024-11-10 01:02:20

oracle数据泵备份(Expdp命令)[转]的相关文章

ORACLE数据泵还原(IMPDP命令)【转】

Oracle数据库还原IMPDP命令是相对于EXPDP命令的,方向是反向的.即对于数据库备份进行还原操作.一.知晓IMPDP命令 ? C:\>impdp -help Import: Release 11.1.0.7.0 - Production on 星期六, 28 9月, 2013 15:37:03 Copyright (c) 2003, 2007, Oracle.  All rights reserved. 数据泵导入实用程序提供了一种用于在 Oracle 数据库之间传输 数据对象的机制.该

oracle数据泵导入导出命令

1.在PL/SQL的界面,找到Directories文件夹,找到目录文件的路径 2.通过SSH进入服务器 找到相应的路径 cd /u01/oracle/dpdir 输入指令 df -h   查看资源使用量 su – oracle   进入系统的oracle用户 3.导出数据库文件 expdp userid=hbcxjm/oracle  directory=dpdir dumpfile=hbcxjm.dmp job_name=hbcxjm logfile=hbcxjmlog parallel=2

oracle数据泵备份与还原

完整的常用的一套oracle备份以及还原方案 --在新库中新建数据目录,我没有特别说明在哪执行的语句都可在plsql中执行 CREATE OR REPLACE DIRECTORY dump_dir AS 'E:/oracleDataFile'; --将此目录的读写权限赋予所有用户,可以按照自己的具体情况单独赋予读或写给某个用户 GRANT read,write ON DIRECTORY dump_dir TO public; --创建表空间,初始大小1000M,自动增长,每次32M,没有最大值限

03.01 Oracle数据泵导出导出(expdp/impdp)命令举例(上)

Oracle数据泵导出导出(expdp/impdp)命令举例(上) ##实验目的: 使用数据泵迁移数据 ##实验环境: Oracle 11.2.0.4,利用数据库自带的scott示例用户进行试验测试 实验步骤概述: 1.首先需要创建Directory 2.使用expdp导出用户数据 2.1 只导出scott用户的元数据,且不包含统计信息: 2.2 只导出scott用户的数据: 2.3 只导出scott用户下的emp,dept表及数据: 2.4 只导出scott用户下的emp,dept表结构: 2

Linux环境下Oracle数据泵(expdp)备份报ORA-39006: internal error

问题描述: Oracle一直用数据泵备份,今天在终端备份时突然报ORA-39006: internal error错误. 数据泵导出日志文件为以下信息: ORA-39097: Data Pump job encountered unexpected error -31644 ORA-39065: unexpected master process exception in FILE ORA-31644: unable to position to block number 2 in dump f

oracle数据泵的备份和恢复

数据泵工具可以从命令好使用程序 expdp 和impdp中调用数据泵技术的特点导入/导出的所有工作都由数据库实例完成可以使用dbms_datapump pl/sql APL建立.检测和调用数据泵任务可以对IMPDP/ECPD导入导出任务进行重新启动,类似于网络下载的断点续传 expd的导出方式数据库方式,整个数据库被导出操作系统文件中用户模式,导出一个或多个用户下的所有数据和元数据表方式,导出的数据包括一组表中的所有数据和元素据表空间方式 导出时提取用于一个表空间的所有对像的数据. grant

Oracle数据泵expdp/impdp

Oracle11g以后的新特性使得默认条件下在分配表空间时忽略空表,以减少表空间的资源占用,这样使得在使用Oracle的exp导出用户数据时就会忽略空表,这样就会造成数据的不完整,当然在使用exp导出数据时也不是没有办法,这个以前有提到过,在此就不做过多的赘述了http://jim123.blog.51cto.com/4763600/1934205.使用这种方法是可以解决在使用exp导出用户数据时不会忽略空表,但是还有更为高效的办法就是使用expdp/impdp --Oracle数据泵,来对Or

浅谈oracle逻辑备份、数据泵备份及冷备份

逻辑备份(数据迁移):以逻辑结构为为单位进行的备份跨用户移动数据跨数据库移动数据库为测试保存原始的数据状态对数据库进行版本升级 逻辑导出的注意事项:exp程序在目录中发现同名文件时会直接覆盖,不提示!!exp无法备份无段的空表执行逻辑导出时一定要注意字符集!最好使用包含中文的小表做测试!!导入时的数据和导出时的数据一模一样,导出之后数据库中表的数据变化全都丢失!! 逻辑导出:所有版本都可用,服务器端和客户端都可用 mkdir -p /home/oracle/expbk SQL> create t

Oracle数据泵的使用

几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle  database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data Pump Export and Import)实用程序导出和导入数据. 以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性.例如,你可以中断导出/导入作业,然后恢复它们:可以重新启动已失败的