ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 重做联机日志文件

重做联机日志文件

原创 Linux操作系统 作者:was_zhang 时间:2009-06-25 15:51:06 0 删除 编辑

联机日志文件都不存在的情况:
(1). sqlplus /nolog
(2). conn / as sysdba;
(3). startup;
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
(4). startup mount;
(5). 通过v$log视图确定哪些是当前联机日志和非当前联机日志
     SQL> select * from v$log; (current为当前联机日志)
(6). 通过Clear方式恢复非当前联机日志group 2 和group 3
     SQL> alter database clear logfile group 2; (如果是该日志组还没有归档:alter database clear unarchived logfile group 2;)
     SQL> alter database clear logfile group 3; (如果是该日志组还没有归档:alter database clear unarchived logfile group 3;)
(7). 恢复当前联机日志 group 1,先演示确认一下通过clear的方式无法恢复当前联机日志
     SQL> alter database clear logfile group 1; (报错)
(8). 设置隐含参数_allow_resetlogs_corruption为“TRUE”
     SQL> create pfile from spfile;
     SQL> shutdown immediate;
     在生成的pfile(对应文件是D:\oracle\product\10.2.0\db_1\database\INITorcl.ORA)最后一行添加如下内容,保存退出
   _allow_resetlogs_corruption=TRUE
     使用pfile启动数据库到mount状态
     SQL> startup mount pfile=D:\oracle\product\10.2.0\db_1\database\INITorcl.ORA;
(9). 利用until cancel进行恢复
     SQL> recover database until cancel;
(10). resetlogs方式打开数据库
     SQL> alter database open resetlogs;
     这时在日志文件所在的目录中就可以看到被恢复出来的当前联机日志REDO01.LOG
(10). 恢复过程完成
    后续任务一:进行全库的EXP备份
    C:\>exp system/system file=exp_full_backup.dmf log=exp_full_backup.log full=y
    后续任务二:取消隐含参数_all_resetlogs_corrupt
    后续任务三:重建数据库
    后续任务四:使用IMP将刚刚备份的文件导入到数据库中
    后续任务五:检查并处理掉无效的对象

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21070542/viewspace-607548/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-17

  • 博文量
    20
  • 访问量
    54476