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

问题描述

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

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

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

解决方法

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

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

您是否确定重做日志文件不会被覆盖?

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...