当设计备份策略时,应该以数据恢复需求和数据恢复策略开始。每一种类型的数据恢复需要你采取适当的备份类型。失败会发生在用户错误,数据文件块损坏,介质失败。你可以重新开始 数据库的正常操作的速度是哪种还原、恢复技术类型的运行过程。每种还原和恢复技术强加需要在备份策略上,包括数据库要使用的特性,存储和管理你的备份。
当考虑恢复策略时,要问自己的问题有:
(1)如果磁盘失败和损坏一些数据库文件,比如数据文件和重做日志,你想怎样恢复丢失的文件。
Planning a Response to Media Failure: Restore and Media Recovery
(2)如果应用程序的逻辑错误或一个用户错误引起多个表或表空间重要数据的丢失,你可以怎么恢复那些数据,从错误开始数据库更新会发生什么?你能解决错误的原因从而阻止再次发生?
Planning Responses to User Error: Point-in-Time Recovery and Flashback
(3)如果实例的alert log显示一个或多个表包含损坏块,你怎么修复损坏?在修复期间表空间必须保持可用的?
Planning a Response to Datafile Block Corruption: Block Media Recovery
(4)如果整个数据中心被损坏,你能完成灾难恢复吗?假设你只有包含备份的归档磁带。你怎么恢复数据库?恢复需要多长时间?
(5)如果你离职,其他人能恢复数据库吗?你的恢复过程充分自动和文档化了吗?
思考上述问题,决定了你怎么充分利用备份和恢复有关的特性,关注每种特性怎么满足备份策略的需要。比如:
(1)使用rman比user-managed backup and recovery更多简化备份和还原的操作。它自动管理很多备份文件,比如磁盘或者磁带上不再需要恢复的备份和归档日志的删除。它提供了备份活动详细的报告,可以识别被用作恢复数据库可用的备份。rman支持incremental backups,但是user-managed backup and recovery不支持incremental backups
(2)闪回数据库帮助你还原数据库到一个之前的时间点,它的速度比介质恢复更快。然而你必须配置一个快速闪回区和保存flash logs
(3)如果可用性是严格的,块介质恢复比数据文件介质恢复更好。即使备份策略不依赖于rman,块介质恢复也是可能的,基于rman块介质恢复可以更快和更少困难。
一旦你决定了在恢复策略中使用哪种特性,你就可以设计备份策略,问自己如下问题:
(1)你怎么和在哪里保存你的备份?你会使用一个快速闪回区吗?你会使用一个asm磁盘组支持冗余吗?你会把备份保存在磁盘或其他离线存储,或仅仅磁盘吗?
(2)你隔多长时间做日程备份?在每种情况下你采取什么样的物理备份的组成?
(3)哪种情况需要在规定日程外需要你采取数据库备份?有时你必须采取一个非日程化的备份确保你可以恢复数据,比如open resetlogs后,把你的数据库改变为nologging(操作不会出现在重做日志中)后。你也可能有商业需求需要审计目标的备份。
(4)你怎么验证你的备份,从而确保需要时你可以恢复你的数据库?
(5)你有每种类型失败的详细恢复设计吗?在危机时刻你怎么执行这些计划?在危机时刻脚本可以被写入和自动执行这些设计吗?
(6)在数据库失败期间,你可以应用oracle数据库高可用性技术,比如dg或rac来提高可用性?使用这些高可用性技术怎么影响到你的备份和恢复策略?
2.2、Planning Data Recovery Strategy
数据恢复策略应该包括任何一种数据库失败方案。一个有效、高效的策略的关键是预见失败状况,在失败状况中匹配适合的数据库恢复技术和工具,接着确认你混合备份类型支持这些恢复技术。
2.2.1、Planning Responses to User Error: Point-in-Time Recovery and Flashback Features
一个用户和应用程序可能产生不希望的改变,比如错误的更新,delete行,或drop表。一个适合的备份和恢复策略使用多种数据库特性让你把数据库返回到期望的状态,同时对数据库可用性有最小影响,dba有最小的困难。依赖于你处于的情况,思考组成备份策略每一个选项,接着建立数据库使这些选项可用。