Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11296212
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-05-21 09:22:18

作为我们工作中附加的一种安全保护措施,我们也执行了夜间数据泵导出,作为一个额外的优点,当我们需要恢复一到两个表时,它比RMAN更容易。

我们使用par文件保存我们的数据泵命令,与导出非常类似,我们在数据库中设置了一些变量,你可以在par文件中看到,下面是创建它们的SQL语句:
代码清单11:

create directory x_dp_dumps as 'X:\data_pump\DMPs';
create directory x_dp_logs  as 'X:\data_pump\logs';
这些信号指定数据泵发送导出文件和日志文件的位置,下面是par文件的内容:
代码清单12:
content   = all
dumpfile  = x_dp_dumps:DBNAME_FULL_%U.dmp
estimate  = statistics
full      = y
job_name  = DBNAME_FULL
logfile   = x_dp_logs:DBNAME_FULL.log
filesize  = 2G

content=all意味着我们想导出所有的数据或没有例外,dumpfile参数要求我们指定文件存放位置和文件名,文件文章是一个变量,文件名使用了替换变量U%,U%将被一个两位数的整数(从01开始)替换,可以创建一个或多个文件,依赖于数据库的大小,estimate给你提供了一个数据泵文件可能的大小的主意,block是默认值,但我们使用了statistics,full指定你是否想导出一个完整的数据库,job_name是可选的,实际中你可以给它取一个你喜欢的名字,logfile与dump file的设置类似,logfile要求你指定文件位置和文件名,文件位置和文件名都可以给定一个变量,filesize也是可选的,我们想让文件大小保持为2G或更小,当复制或压缩时,它会更容易和更快地移动或压缩(10个文件比1个大文件要快)。

我们调用数据泵作为一个计划任务,但是我们的设置有一点不同,我们为每个数据库准备有一个特殊的par文件和执行它的一个命令批处理文件,下面是计划任务中使用到的命令:
代码清单13:

D:\oracle\admin\common\expdp\expdp_DATABASE.bat DBNAME

实际上它是用于调用数据泵par文件的批处理文件。
代码清单14:

set DATABASE=%1
set ORACLE_HOME=D:\oracle\product\10.2.0\db_1

%ORACLE_HOME%\bin\expdp ID/pword@%DATABASE% parfile=D:\oracle\a
dmin\common\expdp\expdp_%DATABASE%.par

需要传递给批处理文件的唯一参数是数据库名,它成了%DATABASE%,照这样执行数据泵导出给我们带来了很好的效果。

阅读(777) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~