ORACLE数据库数据泵备份与恢复

  • Post author:
  • Post category:其他


EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。


目录


一、expdp和impdp的使用


二、expdp详细参数  可以通过 expdp help=y查看


三、impdp参数  大部分参数是和expdp一致的,下面主要介绍impdp特有的



一、expdp和impdp的使用


1.创建目录


create directory DBBAK as ‘/bak’;          #DBBAK名称可以随便命名   需要手工创建/bak,并且此目录oracle用户有读取写入权限


2.查看所有目录


select * from dba_directories;


3.给test用户赋予在指定目录的操作权限,最好用root用户赋予。


grant read,write on directory DBBAK to test;


4.导出数据


1)按用户导


expdp test/test@orcl schemas=test dumpfile=expdp.dmp DIRECTORY=DBBAK logfile=expdp.log


2)并行进程parallel


expdp test/test@orcl directory=DBBAK dumpfile=expdp1.dmp parallel=10 job_name=test1


3)按表名导


expdp test/test@orcl TABLES=table01,table02 dumpfile=expdp2.dmp DIRECTORY=DBBAK;


4)按查询条件导


expdp test/test@orcl directory=DBBAK dumpfile=expdp4.dmp Tables=table01 query=’WHERE id=001′;


5)按表空间导


expdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test,USERS;


6)导整个数据库


expdp system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;


5、创建表空间及用户


create tablespace test datafile ‘+data/test/datafile/data01.dbf’ size 32000M;


alter tablespace test add datafile  ‘+data2/test/datafile/users02.dbf’ size 32000M;


create user test identified by test  default tablespace TEST temporary tablespace TEMP;


grant connect,resource,dba to test;


grant read,write on directory DBBAK to test;


6、还原数据


1)导到指定用户下


impdp test1/test1@orcl DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=test logfile=impdp.log


2)改变表的owner


impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp2.dmp TABLES=test.table01 REMAP_SCHEMA=test1:table11;


3)导入表空间


impdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test;


4)导入数据库


impdb system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;


5)追加数据


impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION


7、查看数据是否一致


select OBJECT_TYPE,COUNT(*) from all_objects where OWNER=’TEST’ group by OBJECT_TYPE;


二、expdp详细参数  可以通过 expdp help=y查看


1.CONTENT 指定要导出的数据


其中有效关键字为:


(ALL),  (默认)导出结构和数据


DATA_ONLY:只导出数据


METADATA_ONLY:只导出结构


2.DIRECTORY 供转储文件和日志文件使用的目录对象


3.DUMPFILE 目标转储文件 (expdat.dmp) 的列表


例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d


4.INCLUDE   包括特定的对象类型


例如 INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:”=’EMP'”


5.EXCLUDE 排除特定的对象类型  与INCLUDE相反


6.TABLES 标识要导出的表的列表


7.SCHEMAS 要导出的方案的列表  可支持多个


schemas=(user01,user02,user03)


8.TABLESPACES 标识要导出的表空间的列表


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


10.COMPRESSION


ALL :对导出的元数据和表数据都进行压缩,得到的导出文件是最小的,耗时也是最长的。

DATA_ONLY :仅对表数据进行压缩,对于大数据量的导出效果明显,会比METADATA_ONLY方式得到更小的压缩文件。

METADATA_ONLY :仅对元数据进行压缩,而不会对表数据进行压缩,这种压缩执行后效果一般不是很明显,不过速度比较快。

NONE :不进行任何的压缩,导出后的文件也是最大的。

DEFAULT :默认方式,即不指定COMPRESSION参数,会采用默认的压缩方式METADATA_ONLY。


11.FULL  导出整个数据库 默认N


12.LOGFILE 日志文件名 (export.log)


13.NOLOGFILE    不写入日志文件 (N)   不常用


14.PARFILE 指定参数文件


15.PARALLEL 更改当前作业的活动 worker 的数目  默认1


一般配合dumpfile使用,dmp文件数不能超过worker数目,如果小于worker的数目,未分配到文件的worker一直处于等待状态。一般使用%U参数,他会根据worker数自动生成从1到n的数字名称的文件


例:dumpfile=test1.dmp,test2.dmp parallel=5。   只会工作2个worker,其他3个worker一直处于wait状态


dumpfile=test-%U.dmp parallel=5


16.JOB_NAME 要创建的导出作业的名称


17.QUERY 用于导出表的子集的谓词子句


18.其他参数


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


ESTIMATE 计算作业估计值, 其中有效关键字为:


(BLOCKS) 和 STATISTICS。


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

FILESIZE 以字节为单位指定每个转储文件的大小。


FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN。


FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间。

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


SAMPLE 要导出的数据的百分比;


STATUS 在默认值 (0) 将显示可用时的新状态的情况下,


要监视的频率 (以秒计) 作业状态。


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


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


VERSION 要导出的对象的版本, 其中有效关键字为:


(COMPATIBLE), LATEST 或任何有效的数据库版本


19.交互模式下命令


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


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


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


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


HELP 总结交互命令。


KILL_JOB 分离和删除作业。


PARALLEL 更改当前作业的活动 worker 的数目。


PARALLEL=<worker 的数目>。


START_JOB 启动/恢复当前作业。


STATUS 在默认值 (0) 将显示可用时的新状态的情况下,


要监视的频率 (以秒计) 作业状态。


STATUS[=interval]


STOP_JOB 顺序关闭执行的作业并退出客户机。


STOP_JOB=IMMEDIATE 将立即关闭


数据泵作业。


三、impdp参数  大部分参数是和expdp一致的,下面主要介绍impdp特有的


1.REMAP_SCHEMA 将一个方案中的对象加载到另一个方案


例 REMAP_SCHEMA=user01:user02


2.REMAP_TABLESPACE 将表空间对象重新映射到另一个表空间


REMAP_TABLESPACE=DATA01:DATA02    (如果需要多个空间映射,用逗号隔开)


3.REMAP_DATAFILE 在所有 DDL 语句中重新定义数据文件引用。






REUSE_DATAFILES 如果表空间已存在, 则将其初始化 (N)。


SKIP_UNUSABLE_INDEXES 跳过设置为无用索引状态的索引。


SQLFILE               将所有的 SQL DDL 写入指定的文件。


STREAMS_CONFIGURATION 启用流元数据的加载


TABLE_EXISTS_ACTION 导入对象已存在时执行的操作。


有效关键字: (SKIP), APPEND, REPLACE 和 TRUNCATE。


TRANSFORM 要应用于适用对象的元数据转换。


TRANSFORM = transform_name:value[:object_type]


有效的转换关键字: SEGMENT_ATTRIBUTES, STORAGE


OID 和 PCTSPACE。


transform_name


SEGMENT_ATTRIBUTES – If the value is specified as y, then segment attributes (physical attributes, storage attributes, tablespaces, and logging) are included, with appropriate DDL. The default is y.


如果将值指定为y,则包含段属性(物理属性,存储属性,表空间和日志记录)以及适当的DDL。 默认值为y。


STORAGE – If the value is specified as y, then the storage clauses are included, with appropriate DDL. The default is y. This parameter is ignored if SEGMENT_ATTRIBUTES=n.


如果将值指定为y,则包含存储子句,并使用适当的DDL。 默认值为y。 如果SEGMENT_ATTRIBUTES = n,则忽略此参数


OID – If the value is specified as n, then the assignment of the exported OID during the creation of object tables and types is inhibited. Instead, a new OID is assigned. This can be useful for cloning schemas, but does not affect referenced objects. The default value is y.


如果将值指定为n,则禁止在创建对象表和类型期间分配导出的OID。 而是分配新的OID。 这对于克隆模式很有用,但不会影响引用的对象。 默认值为y。


PCTSPACE – The value supplied for this transform must be a number greater than zero. It represents the percentage multiplier used to alter extent allocations and the size of data files.


为此转换提供的值必须是大于零的数字。 它表示用于更改范围分配和数据文件大小的百分比乘数。


value


The type of value specified depends on the transform used. Boolean values (y/n) are required for the SEGMENT_ATTRIBUTES, STORAGE, and OID transforms. Integer values are required for the PCTSPACE transform.


指定的值类型取决于使用的转换。 SEGMENT_ATTRIBUTES,STORAGE和OID转换需要布尔值(y / n)。 PCTSPACE转换需要整数值。


object_type


The object_type is optional. If supplied, it designates the object type to which the transform will be applied. If no object type is specified, then the transform applies to all valid object types. The valid object types are TABLE、INDEX、CLUSTER、TABLESPACE…


object_type是可选的。 如果提供,则指定将应用变换的对象类型。 如果未指定任何对象类型,则转换将应用于所有有效对象类型。 有效的对象类型是TABLE,INDEX,CLUSTER,TABLESPACE ……


TRANSPORT_DATAFILES 按可传输模式导入的数据文件的列表。


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


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


仅在 NETWORK_LINK 模式导入操作中有效。


与expdp相似参数


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


CONTENT 指定要加载的数据, 其中有效关键字为:


(ALL), DATA_ONLY 和 METADATA_ONLY。


DIRECTORY 供转储文件, 日志文件和 sql 文件使用的目录对象。


DUMPFILE 要从 (expdat.dmp) 中导入的转储文件的列表,


例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。


ENCRYPTION_PASSWORD 用于访问加密列数据的口令关键字。


此参数对网络导入作业无效。


ESTIMATE 计算作业估计值, 其中有效关键字为:


(BLOCKS) 和 STATISTICS。


EXCLUDE 排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。


FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN。


FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间。


FULL 从源导入全部对象 (Y)。


HELP 显示帮助消息 (N)。


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


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


LOGFILE 日志文件名 (import.log)。


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


NOLOGFILE 不写入日志文件。


PARALLEL 更改当前作业的活动 worker 的数目。


PARFILE 指定参数文件。


QUERY 用于导入表的子集的谓词子句。


SCHEMAS 要导入的方案的列表。


STATUS 在默认值 (0) 将显示可用时的新状态的情况下,


要监视的频率 (以秒计) 作业状态。


TABLES 标识要导入的表的列表。


TABLESPACES 标识要导入的表空间的列表。


VERSION 要导出的对象的版本, 其中有效关键字为:


(COMPATIBLE), LATEST 或任何有效的数据库版本。


仅对 NETWORK_LINK 和 SQLFILE 有效。