Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103765966
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-23 07:58:53

作者: Kevin E. Medlin/黄永兵 译 出处:51CTO.com 
 
阅读提示:数据库备份是一个数据库管理员工作中最重要的部分,部分策略需要在一个正规的基础上进行复审,部分本身需要频繁地进行测试,本文提供一个在Windows 32位和64位服务器上备份Oracle 10g数据库的方法.....

【51CTO.com 独家翻译】

摘要

数据库备份是一个数据库管理员工作中最重要的部分,部分策略需要在一个正规的基础上进行复审,部分本身需要频繁地进行测试,本文提供一个在Windows 32位和64位服务器上备份Oracle 10g数据库的方法,恢复管理器(RMAN)被用作主要的备份应用程序,RMAN很快、灵活,并能压缩有时比较大的部分文件,并且要使用恢复目录。数据泵导出用作次要的备份应用程序。所有操作步骤都是自动的,并且在文档中提供了脚本的解释说明。
我们在Windows 2003 32位和64位服务器上安装了Oracle 10g数据库,我们保持数据库几乎24*7处于启动状态,但是在星期日早上执行了一次服务器重启,我们也偶尔在维护期间(如给Windows和Oracle打补丁)停掉服务器,我们使用恢复管理器(RMAN)执行在线数据库备份,RMAN是Oracle推荐的执行数据库备份和恢复的方法,RMAN是一个伟大的工具,但是因为我们使用的是Oracle标准版,不能完全受益于可用的(并行性、块介质恢复、平均时间恢复MTTR等)特性,不过,我们仍然可以用RMAN作为我们最主要的备份策略,使用RMAN备份,我们可以依据来自开发人员或管理人员的请求“刷新”我们的测试数据库,我们也在Oracle 10g数据库上执行数据泵导出作为额外的保护措施。我们使用一组Windows批处理脚本、SQL脚本、RMAN脚本和计划任务来使这些操作完全自动化,我们的主要目标是尽可能地在服务器之间保持一致以保持事情简化,大多数情况下,我们是成功的。

我们的备份策略很简单,每周一次RMAN备份,一周的其他时间执行归档日志备份,一个次要的导出或数据泵备份。我将给出步骤列表,然后再对每一步加以解释,在解释说明中,会有安装信息、脚本、建议等。在你动手创建/更新/修改当前的备份计划前,我建议你完整地阅读完本文再行动。

我们为Oracle 10g制定的夜间备份策略9步是:

1、删除旧的日志文件并重命名当前的日志
2、删除所有RMAN备份文件
3、执行一个0级RMAN备份
4、创建克隆文件
5、创建归档日志备份,包括恢复目录内务
6、删除数据泵导出文件
7、执行数据泵导出
8、检查日志错误
9、广播和/或发送简短错误描述的电子邮件

1、删除旧日志文件并重命名当前的日志

这是每天都要执行的,为所有的脚本创建一个日志文件是很好的实践,在步骤8中,我检查所有日志错误,因此重命名了当前日志,当它们被重命名后,就很容易参考旧的作业分辨出错误了,这些所有需要删除的最终是为了不引起空间问题。
代码清单1:

qgrep -l rman D:\oracle\admin\common\backup\logs\* >> %LOGFILE%
del /Q D:\oracle\admin\common\backup\logs\*.oldlog3 >> %LOGFILE%
ren D:\oracle\admin\common\backup\logs\*.oldlog2 *.oldlog3 >> %LOGFILE%
ren D:\oracle\admin\common\backup\logs\*.oldlog1 *.oldlog2 >> %LOGFILE%
ren D:\oracle\admin\common\backup\logs\*.log *.oldlog1 >> %LOGFILE%
提示:尽力自动清除日志文件,要记住这些命令是不容易的。

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