oracle数据库还原

    作者:课课家教育更新于: 2019-04-04 10:51:03

     作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。

      实例1:归档的数据库,完整的数据库全库备份,完整的归档备份,此时数据库down掉,只留下控制文件和日志文件可用。

      1:安全关闭当前数据库。(确保当前数据库处于归档模式下)。

      2:copy所有的数据文件,日志文件和控制文件到一个目录下。

      3:打开数据库,建新用户user1

      createuseruser1identifiedbyaaaaaa;

      grantdbatouser1;

      connectuser1/aaaaaa;

      4:在user1下建表T1,向T1中插入10000条数据。

      Begin

      ForIin1..100000loop

      Insertintot1values(i);

      Endloop;

      Commit;

      End;

      /

      5:切换几次日志,使所有日志都已经归档。

      Altersystemswitchlogfile;

      6:正常关闭数据库。Shutdownimmediate;

      7:恢复:

      把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。

      8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。

      9:启动数据库startup

      mount后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

      确定归档日志位置正确后,输入auto.

      Oracle将一个一个的应用归档文档。直至提示完全恢复成功。

      10:打开数据库alterdatabaseopen;

      11:查看user1用户及t1表中是否有刚才插入的10000条记录。

      至此,整个使用归档日志对完整的数据库冷备份进行完全恢复的模拟成功完成。

      实例2:上面的例子,并且在线日志onlineredo也丢失,在这种情况下,只能做不完全恢复。前8步同上。

      9:startupmount;

      10:步完全恢复:

      recoverdatabaseuntilcance;

      omount后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

      确定归档日志位置正确后,回车,一个个应用归档日志,直至最后提示的归档日志用完后下一个归档日志时输入cancel.

      Oracle提示:

      Logapplied.

      ORA-00279:change84852341generatedat09/24/200312:16:41neededforthread1

      ORA-00289:suggestion:D:\\ORACLE\\ORADATA\\SAMPLE\\ARCHIVE\\TESTT001S01349.ARC

      ORA-00280:change84852341forthread1isinsequence#1349

      ORA-00278:logfile'D:\\ORACLE\\ORADATA\\SAMPLE\\ARCHIVE\\TESTT001S01348.ARC'nolon

      recovery

      Specifylog:{=suggested|filename|AUTO|CANCEL}

      cancel

      Mediarecoverycancelled.

      这是需要resetlogs参数打开数据库。

      Alterdatabaseopenresetlogs;

     作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。

      实例1:归档的数据库,完整的数据库全库备份,完整的归档备份,此时数据库down掉,只留下控制文件和日志文件可用。

      1:安全关闭当前数据库。(确保当前数据库处于归档模式下)。

      2:copy所有的数据文件,日志文件和控制文件到一个目录下。

      3:打开数据库,建新用户user1

      createuseruser1identifiedbyaaaaaa;

      grantdbatouser1;

      connectuser1/aaaaaa;

      4:在user1下建表T1,向T1中插入10000条数据。

      Begin

      ForIin1..100000loop

      Insertintot1values(i);

      Endloop;

      Commit;

      End;

      /

      5:切换几次日志,使所有日志都已经归档。

      Altersystemswitchlogfile;

      6:正常关闭数据库。Shutdownimmediate;

      7:恢复:

      把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。

      8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。

      9:启动数据库startup

      mount后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

      确定归档日志位置正确后,输入auto.

      ORACLE将一个一个的应用归档文档。直至提示完全恢复成功。

      10:打开数据库alterdatabaseopen;

      11:查看user1用户及t1表中是否有刚才插入的10000条记录。

      至此,整个使用归档日志对完整的数据库冷备份进行完全恢复的模拟成功完成。

      实例2:上面的例子,并且在线日志onlineredo也丢失,在这种情况下,只能做不完全恢复。前8步同上。

      9:startupmount;

      10:步完全恢复:

      recoverdatabaseuntilcance;

      omount后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

      确定归档日志位置正确后,回车,一个个应用归档日志,直至最后提示的归档日志用完后下一个归档日志时输入cancel.

      Oracle提示:

      Logapplied.

      ORA-00279:change84852341generatedat09/24/200312:16:41neededforthread1

      ORA-00289:suggestion:D:\\ORACLE\\ORADATA\\SAMPLE\\ARCHIVE\\TESTT001S01349.ARC

      ORA-00280:change84852341forthread1isinsequence#1349

      ORA-00278:logfile'D:\\ORACLE\\ORADATA\\SAMPLE\\ARCHIVE\\TESTT001S01348.ARC'nolon

      recovery

      Specifylog:{=suggested|filename|AUTO|CANCEL}

      cancel

      Mediarecoverycancelled.

      这是需要resetlogs参数打开数据库。

      Alterdatabaseopenresetlogs;

     作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。

      实例1:归档的数据库,完整的数据库全库备份,完整的归档备份,此时数据库down掉,只留下控制文件和日志文件可用。

      1:安全关闭当前数据库。(确保当前数据库处于归档模式下)。

      2:copy所有的数据文件,日志文件和控制文件到一个目录下。

      3:打开数据库,建新用户user1

      createuseruser1identifiedbyaaaaaa;

      grantdbatouser1;

      connectuser1/aaaaaa;

      4:在user1下建表T1,向T1中插入10000条数据。

      Begin

      ForIin1..100000loop

      Insertintot1values(i);

      Endloop;

      Commit;

      End;

      /

      5:切换几次日志,使所有日志都已经归档。

      Altersystemswitchlogfile;

      6:正常关闭数据库。Shutdownimmediate;

      7:恢复:

      把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。

      8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。

      9:启动数据库startup

      mount后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

      确定归档日志位置正确后,输入auto.

      ORACLE将一个一个的应用归档文档。直至提示完全恢复成功。

      10:打开数据库alterdatabaseopen;

      11:查看user1用户及t1表中是否有刚才插入的10000条记录。

      至此,整个使用归档日志对完整的数据库冷备份进行完全恢复的模拟成功完成。

      实例2:上面的例子,并且在线日志onlineredo也丢失,在这种情况下,只能做不完全恢复。前8步同上。

      9:startupmount;

      10:步完全恢复:

      recoverdatabaseuntilcance;

      omount后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

      确定归档日志位置正确后,回车,一个个应用归档日志,直至最后提示的归档日志用完后下一个归档日志时输入cancel.

      Oracle提示:

      Logapplied.

      ORA-00279:change84852341generatedat09/24/200312:16:41neededforthread1

      ORA-00289:suggestion:D:\\ORACLE\\ORADATA\\SAMPLE\\ARCHIVE\\TESTT001S01349.ARC

      ORA-00280:change84852341forthread1isinsequence#1349

      ORA-00278:logfile'D:\\ORACLE\\ORADATA\\SAMPLE\\ARCHIVE\\TESTT001S01348.ARC'nolon

      recovery

      Specifylog:{=suggested|filename|AUTO|CANCEL}

      cancel

      Mediarecoverycancelled.

      这是需要resetlogs参数打开数据库。

      Alterdatabaseopenresetlogs;

     找Oracle视频教程学oracle,上课课家教育IT培训专家。

课课家教育

未登录