oracle丢失重做日志的几种恢复方法
来源:互联网 发布:html div中调用js函数 编辑:程序博客网 时间:2024/06/13 23:18
- 丢失了重做日志文件
如果丢失了重做日志文件组中的某个成员,并且组中至少还有一个成员,注意其后果如下:
• 不会影响实例的正常操作。
• 预警日志中会收到一条消息,通知无法找到某个成员。
• 可以通过删除丢失的重做日志成员并添加新成员来恢复丢失的日志文件。
• 如果包含丢失日志文件的组已归档,可以清除日志组来重新创建丢失的文件。
丢失了重做日志文件
如果丢失了单个重做日志组成员,则在进行恢复时不会影响正在运行的实例。
要执行这种恢复,请执行以下操作:
1. 通过检查预警日志,确定是否有缺失的日志文件。
2. 恢复丢失的文件时,首先删除丢失的重做日志成员:
SQL< ALTER DATABASE DROP LOGFILE MEMBER '+DATA/orcl/onlinelog/group_1.261.691672257';
然后添加新成员来替代丢失的红色日志成员:
SQL< ALTER DATABASE ADD LOGFILE MEMBER '+DATA'TO GROUP 2;
也可使用Enterprise Manager 来删除和重新创建日志文件成员。
注:如果重做日志文件使用了OMF,并且使用上面的语法将新的重做日志成员添加到现有组中,则新的重做日志成员文件不会是OMF 文件。如果想确保新的重做日
志成员文件是OMF 文件,最容易的恢复方案是创建一个新的重做日志组,然后删除包含丢失的重做日志成员的重做日志组。
3. 如果介质故障是由于磁盘驱动器或控制器缺失而造成的,请重命名缺失文件。
4. 如果重做日志组已归档,或者处于NOARCHIVELOG模式下,则可选择在清除日志组后重新创建缺失文件来解决问题。选择相应的组,然后选择“Clear Logfile(清除日
志文件)”操作。还可以使用以下命令手动清除受影响的组:
SQL< ALTER DATABASE CLEAR LOGFILE GROUP #;
注:Database Control 不允许清除尚未归档的日志组。这样做会破坏重做信息链。如果必须清除未归档的日志组,则应立即对整个数据库执行完全备份。否则,在发生其它故障的情况下,会导致数据丢失。要清除未归档的日志组,请使用以下命令:
SQL< ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #;
查看组:SQL> select group#,members from v$log;--察看Redo文件的信息 GROUP# MEMBERS---------- ---------- 1 2 2 2 3 2SQL> select member from v$logfile;查看路径:MEMBER--------------------------------------------------------------------------------/u01/app/oracle/oradata/crab/redo03.log/u01/app/oracle/oradata/crab/redo02.log/u01/app/oracle/oradata/crab/redo01.log/u01/app/oracle/flash_recovery_area/CRAB/redo01.log/u01/app/oracle/flash_recovery_area/CRAB/redo02.log/u01/app/oracle/flash_recovery_area/CRAB/redo03.log模拟丢失 02:SQL> ho rm /u01/app/oracle/oradata/crab/redo02.log查看状态:SQL> select group#,status from v$log; --察看Redo日志的状态,一般有unused,current,active,inactive GROUP# STATUS---------- ---------------- 1 INACTIVE 2 CURRENT 3 INACTIVE
看状态,执行下面步骤:
UNUSED INACTIVE---> alter database clear logfile group N;
ACTIVE ------->alter system checkpoint;
alter database clear logfile group n;
CURRENT ---->alter system switch logfile;
alter system checkpoint;
alter database clear logfile group n;
当前日志文件用上述方法不能恢复的话使用:
startup mount; --启动实例,装载数据库,但不打开数据库,可以开始操作控制文件、日志文件、数据文件等
recover database until cancel;
alter database open resetlogs;
alter database open resetlogs;
0 0
- oracle丢失重做日志的几种恢复方法
- 探索ORACLE之RMAN_07 重做日志redu文件丢失恢复
- rman恢复--丢失联机重做日志的恢复
- oracle重做日志文件(REDO)损坏或者丢失的恢复操作
- oracle的数据文件全部丢失,但有归档和重做日志,如何恢复?
- Oracle日志文件组成员丢失的恢复方法
- Oracle丢失归档日志文件的数据库恢复方法
- oracle联机重做日志文件丢失
- Oracle 当前日志丢失损坏的恢复
- Oracle数据库联机日志文件丢失的几种处理方法
- SQLServer日志文件丢失的恢复方法
- Oracle学习之:恢复重做日志组
- oracle 联机日志文件损坏的几种场景和恢复方法
- oracle 联机日志文件损坏的几种场景和恢复方法
- (06)重做日志损坏的恢复
- 缺失重做日志文件的数据库恢复
- Oracle的重做日志和归档日志
- rman实验之归档模式无备份,正常关机丢失当前联机重做日志文件的恢复
- hacmp故障问题
- #include<algorithm>里的函数
- exportvg的流程和理解
- Alien Skin Exposure v6.x 最新通用完整版汉化补丁
- 119_leetcode_Permutations II
- oracle丢失重做日志的几种恢复方法
- 股息较高企业
- 120_leetcode_Regular Expression Matching
- 磨刀不误砍柴工
- C语言入门(20)——使用VC2013对C语言进行调试
- C语言入门(21)——使用DBG对C语言进行调试
- C语言的本质(1)——计算机与二进制
- 如何查看一个session使用了多少undo
- Swift属性