Oracle RMAN: Point-in-Time Recovery of a Backup From Before Last Resetlogs

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

 

本文适用于8i, 9i, 10g, 11g Releases

问题描述:

====================

你需要将数据库还原到一个时间点,但被使用的备份是在最后的resetlog之前的。

问题是当使用resetlogs打开数据库时,数据库的incarnation 也被重置且RMAN Recovery Catalog 中保存数据库的incarnation的记录。

问题说明:

====================

当我们进行时间点恢复并使用重置日志resetlogs打开数据库时,我们还需要告诉RMAN我们正在重置数据库的incarnationincarnation。 因此,使用RESET DATABASE命令指示RMAN在恢复目录中创建一个新的数据库incarnation记录。这个新的incarnation记录表示当前的incarnation RMAN会将目标数据库完成的所有后续备份和日志归档与新数据库的incarnation进行关联。

如果我们想将数据库还原到最后resetlog之前的一个时间点,我们需要告诉RMAN我们目前的incarnation需要被重置为旧的。

问题参考:

===================

ORACLE8i BACKUP AND RECOVERY GUIDE

搜索词:

=============

RESET INCARNATION RECOVER RESETLOGS

解决方案描述:

=====================

在我们能从最后resetlog之前的备份中还原之前,我们要重置数据库到旧的incarnation号。

以下是重置正确的incarnation并将数据库还原到最后resetlog之前的时间点的步骤。

注:目标数据库应被nomounted

1. 启动RMAN 并仅连接到目录数据库catalog database

   % rman catalog rman/rman@rcat

2. 执行命令,在恢复目录中列出数据库的所有incarnation 值。

    RMAN> list incarnation;

数据库Incarnation列表

DB   Inc   DB     DB ID            CUR 重置 SCN   重置时间

——-   ——-    ——–    —————-          ———-     ———-

1       2       R815     579966833        NO  1         03-MAY-99

224     225     R815     579966833        YES  92402     05-MAY-99

我们可以看到,其中一个数据库已经使用RESETLOG被打开,且一个新incarnation被启动(DBID579966833)。我们应该查看列DATABASE INC键。可以看到数据库原来的incarnation2,被重置为当前的incarnation2252是必须被设置的数据库incarnation,以便从最后重置日志之前的备份中还原。

3. 我们首先需要告诉RMAN 我们将要处理哪个数据库ID,所以执行以下命令:

       

     RMAN> Set dbid 579966833;

4. 现在我们需要连接到目标实例来验证数据库ID

     RMAN> connect target

     RMAN-06005: connected to target database: R815 (DBID=579966833)

5. 由于我们同时连接到恢复目录和目标数据库,我们要告诉RMAN 将数据库incarnation 重置为2

   通过以下命令执行:

      RMAN> reset database to incarnation 2;

   现在我们可以看到当前的incarnation被设回2

       

      RMAN> list incarnation;

数据库Incarnation列表

DB  Inc   DB      DB ID            CUR 重置SCN   重置时间

——-   ——-    ——–     —————-         ———-      ———-

1       2       R815     579966833        YES  1          03-MAY-99

224     225     R815     579966833        NO  92402      05-MAY-99

6.  重置数据库后,发出还原和恢复命令从之前的incarnation中还原并恢复数据库文件,然后使用RESETLOGS选项打开数据库。你需要在数据库处于NOMOUNT状态,从还原之前的incarnation控制文件开始。当数据库被重置到之前的incarnation,目录会自动选择正确的控制文件。在还原控制文件后,数据库必须被mount来进行数据文件的还原。

    运行 {

         set until time ‘Jul 8 1999 07:55:00’; # set time to just before data was lost

         allocate channel dev1 type disk;

         shutdown abort;

         startup nomount;

         restore controlfile;

         alter database mount; # mount database after restoring control file

         restore database;

         recover database;

         alter database open resetlogs; # this command automatically resets the database

                                        # so that this incarnation is the new incarnation

    }

解决方案说明:

=====================

一旦我们将数据库设为之前的incarnationRMAN会允许使用最后resetlogs之前的备份来还原并恢复数据库。

解决方案参考:

====================

Oracle8i Recovery Manager User’s Guide, Release 1 (8.1.6) – Part No. A76990-01

Oracle9i Recovery Manager User’s Guide, Release 1 (9.0.1) – Part No. A9013

对于10g, 11g Incarnation FRA ( Fast/Flash Recovery Area )相关的问题,参见 (Doc ID 965122.1) RMAN RESTORE FAILS WITH RMAN-06023 BUT THERE ARE BACKUPS AVAILABLE

参考

NOTE:965122.1 – RMAN RESTORE FAILS WITH RMAN-06023 ALTHOUGH BACKUPS ARE AVAILABLE


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *