首页 > 编程知识 正文

oracle数据库自动备份脚本,oracle impdp导入命令

时间:2023-05-04 12:19:31 阅读:154849 作者:3490

Oracle备份方法主要有三种:数据泵导出备份、热备份和冷备份,今天我们先来实践一下数据泵备份和还原。 导出/导入数据泵是逻辑备份,而热备份和冷备份是物理备份。 oracle10g引入了数据泵(expdp/ymdhjdp ),该泵提供了并行参数选项。 因此,执行效率高于传统的exp命令。

一.知道expdp命令

c:(expdp-help

export : 11.1.0.7.0版- production on星期六,28月,2013 10:21:52

copyright(c ) 2003,2007,Oracle. All rights reserved。

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

示例: expdp Scott/tigerdirectory=dmpdirdumpfile=Scott.DMP

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

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

示例: expdp Scott/tiger dump file=Scott.DMP directory=dmpdirschemas=scot

或者tables=(T1:p1、T1:P2 ),在t1是分区表情况下

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

关键字说明(默认)

请参见----------------------------------------- -

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

COMPRESSION会减小转储文件内容的大小。 有效的关键字值为: ALL、METADATA_ONLY、DATA_ONLY和NONE。

CONTENT指定要卸载的数据。 其中有效关键字值为:(all )、DATA_ONLY和METADATA_ONLY。 -默认值为ALL

DATA_OPTIONS数据层标记。 有效值只有:clob格式的XML_CLOBS-write XML数据类型

要用于转储文件和日志文件的目录对象。

dump file=dump file的目标转储文件(如scott2.dmp、scott2.dmp、dmpdir:scott3.dENCRYPTION加密部分或所有转储文件) 有效的关键字值为:

ENCRYPTION_ALGORITHM指定加密的完成方法。 有效的关键字值为:(AES128 )、AES192和AES256。

ENCRYPTION_MODE如何生成加密密钥。 有效的键值为: DUAL、PASSWORD和(TRANSPARENT )。

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

ESTIMATE计算作业的估计值。 有效的关键字值为:(blocks )和STATISTICS。

ESTIMATE_ONLY计算作业估计,而不执行导出。

EXCLUDE排除特定的对象类型。 例如,EXCLUDE=TABLE:EMP。 - exclude=[ object _ type ] : [ name _ clause ],[ object _ type ] : [ name _ clause ] filesize调整每个转储文件的大小

FLASHBACK_SCN用于将会话快照恢复为以前状态的SCN。 -指定要导出特定SCN时间的表数据

FLASHBACK_TIME用于获取SCN上最接近指定时间的时间。 指定导出给定时间点的表数据,注意FLASHBACK_SCN和FLASHBACK_TIME不能同时使用

导出整个完整数据库(n )。

帮助显示帮助消息(n )。

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

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

日志文件日志文件名(export.log )。 NETWORK_LINK链接到源系统的远程数据库的名称。

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

PARALLEL更改当前作业的活动工作器的数量。

PARFILE指定参数文件。

QUERY用于导出表子集的谓词。 - query=[ schema.] [ table _ name : ] query _ clause

>

REMAP_DATA 指定数据转换函数,例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。REUSE_DUMPFILES 覆盖目标转储文件 (如果文件存在) (N)。

SAMPLE 要导出的数据的百分比;SCHEMAS 要导出的方案的列表 (登录方案)。STATUS 在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。

TABLES 标识要导出的表的列表 - 只有一个方案。--[schema_name.]table_name[:partition_name][,…]TABLESPACES 标识要导出的表空间的列表。TRANSPORTABLE 指定是否可以使用可传输方法, 其中有效关键字值为: ALWAYS, (NEVER)。

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

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

VERSION 要导出的对象的版本, 其中有效关键字为:(COMPATIBLE), LATEST 或任何有效的数据库版本。

下列命令在交互模式下有效。

注: 允许使用缩写

命令 说明

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

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

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

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

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

HELP 总结交互命令。

KILL_JOB 分离和删除作业。

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

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

START_JOB 启动/恢复当前作业。

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

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

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

二、准备工作

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:APPORADATAdb_backup'; --创建路径名为dackup_path的路径,并指向硬盘的指定位置

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

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

三、操作实例

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

eg:grant exp_full_database,ymdhj_full_database to orcldev;

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

eg:expdp orcldev/oracle@orcldev 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 placeQUERYspecifications 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')"

四、参考

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。