Oracle将数据库还原为“更新”版本

时间:2011-09-28 07:30:45

标签: oracle oracle11g database-restore

是否可以测试增量备份......好吧,递增?如果是这样的话:如何? - 而不是使用“复制”和“待机”字样。

设置

  • 多TB Oracle 11g(11.2.0.2)数据库,大约70%的数据位于只读表空间中。
  • 备份:每周0级复制(readonly除外),半日常级别1增量(差异数据+存档日志)。

在0级备份之后,我们将所有备份文件发送到测试装备(所有意图和目的都是脱机)并执行完全恢复和恢复。我想要的是将增量备份(< 50G)移动到测试装备并仅测试那些位。恢复测试可以(在我的脑海中)在几分钟内完成,或者在几个小时内完成,如果只能以某种方式保留只读数据。否则完全恢复+恢复需要大约9个小时。

最终目标是将灾难恢复测试时间减少约12%增量周期的只读表空间约70% - 策略需要每周一次完全恢复/恢复。

如果我的 - 尚未完成 - 解决方案已经过时,建议最受欢迎(仍然不使用“重复”或“待机”:o)。

编辑2011年10月4日: 所以我想出了如何避免在每次测试中恢复只读表空间,这样节省了70%的时间。剩下的就是弄清楚是否有可能只将最新的增量备份恢复到测试台上。

要明确:星期天我最终恢复了所有的一切,包括只读。每12个小时我执行一次新的恢复测试,跳过readonly位但执行剩余30%的0级恢复,然后应用增量 - 实际上回滚到星期日,然后赶上最新的增量。

我想要的是在星期天进行完全恢复,并且每12小时“仅”应用此恢复的最新增量备份,并避免回滚到星期日。

2 个答案:

答案 0 :(得分:0)

我不确定配置的备份时间,传输时间和恢复时间之间的区别,但这是我的想法。

如果要减少恢复时间,请调查RMAN RESTORE命令的CHECK READONLY参数。听起来你可以在目标系统上保留只读数据文件的副本,而不会产生RMAN在恢复时推送所有这些位和字节的开销。

您没有在RMAN RESTORE命令的9i RMAN文档中提及版本:

  

检查READONLY   检查只读文件的标头,确保它们在恢复之前是最新的。

如果您想减少0级备份集的传输时间并且可以保证只读数据文件的安全性,请调查BACKUP命令的SKIP READONLY参数。

  

SKIP READONLY   指定应从备份集中排除只读数据文件。

如果你是偏执狂(像我一样)并且需要另一级别的验证,你可以在两侧运行校验和你的只读数据文件,以确保你得到相同的值。

但是请注意你是如何处理这种情况的 - 如果是真正的恢复方案(无论是CHECK READONLY还是其他方法),都会遵循相同的程序吗?

答案 1 :(得分:0)

我认为这需要回答,如果只是部分回答,那么你去吧:

恢复部分仍处于打开状态,但是使用可传输的表空间可以解决避免readonly-tablespace位的问题。基本上,

  • 将您的只读表空间标记为可转让
  • 使用expdp生成转储文件
  • 将您的数据文件复制到测试平台
  • 执行还原,但跳过有问题的表空间
  • 从数据库中删除表空间
  • impdp到您的数据库。 (基本上是从导入中重新创建)

我们为3TB表空间做了这个,耗时30秒。 (和10个小时复制:oP)

提醒一句:标记为可转移并删除表空间可能不是正确的做法,特别是如果表空间之间存在依赖关系。