如何使用最近的 Oracle 备份文件(从昨天开始)和仅在线重做日志来恢复另一个位置的数据库(灾难恢复)?

Posted

技术标签:

【中文标题】如何使用最近的 Oracle 备份文件(从昨天开始)和仅在线重做日志来恢复另一个位置的数据库(灾难恢复)?【英文标题】:How to use a recent Oracle backup file (from yesterday) and only online redo logs to recover the database in another location (disaster recovery)? 【发布时间】:2021-09-07 01:43:18 【问题描述】:

我想在另一个站点(灾难恢复站点的另一个服务器上的另一个实例)计划和测试我的数据库恢复。 我每月进行一次 RMAN 0 级映像副本,并每天进行 1 级增量备份。 数据库在 noarchivelog 模式下运行。联机重做日志被多路复用到灾难恢复站点中的磁盘。此外,我们在另一台服务器上有一个恢复目录。

我想在灾难恢复站点测试恢复最近(昨天)的备份到数据库,然后恢复到只应用在线重做日志文件,如何实现?

附带问题:如果我们只有昨天的备份和包含今天所有事务的在线重做日志并且没有一个被覆盖,是否足以恢复?由于数据库处于 noarchivelog 模式。 如果我们有每日备份并且在进行备份之前白天不会覆盖重做日志,那么归档日志模式有什么用? 备份归档日志有什么用?

【问题讨论】:

只能在归档日志模式下进行时间点恢复。在 noarchivelog 模式下,所有备份都是冷备份;如果您正在执行实际的 rman 恢复,而不仅仅是实例启动自动恢复(如数据库崩溃或重启之后),则无法从在线重做日志中恢复任何内容。 【参考方案1】:

您正在使用一个危险的设置,因为您似乎在押注在备份之间永远不会填满的重做日志文件。当你的数据没有价值时,继续,否则切换到归档日志模式。

当重做日志组填满时会创建存档。因此,在您的情况下,您需要手动将在线重做日志文件复制到远程站点进行恢复。

您对重做日志文件没有被覆盖的把握有多大?

要明智,如果这是生产切换到归档日志模式。否则,承诺不承诺能够及时恢复。

另外一点:如果您的在线重做日志文件损坏了,那么您的数据库就会出现大问题,在您的情况下,您可能会浪费一天的工作时间。那样可以么?如果没有,请将重做日志文件的大小减少到它不时进行切换的限制。我相信贵公司知道他们可以接受多少时间的损失交易。许多公司允许少于一小时的交易损失。

【讨论】:

先生,请问可以打 Skype 电话吗?为了我的理解,我需要问一些事情。

以上是关于如何使用最近的 Oracle 备份文件(从昨天开始)和仅在线重做日志来恢复另一个位置的数据库(灾难恢复)?的主要内容,如果未能解决你的问题,请参考以下文章

oracle有多个整个数据库备份集 如何选择恢复的备份集

Oracle每天自动备份脚本

oracle如何备份单表并在新数据库恢复?

oracle 备份某张表的全部数据

oracle 自动备份dmp文件

RMAN异机恢复全过程