Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 丢失日志(redoxx_xx)文件后的处理方法

测试部门反映内网1.105Oracle数据库服务无法启动,还是惯例性的打开alter_<sid>.log文件,查看里面的日志内容:Fri Nov 11 11:46:09 2011
Errors in file /u01/app/oracle/admin/center/bdump/center_lgwr_3016.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: "/u02/oradata/center/redo02_1.log"
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: "/u02/oradata/center/redo02.log"
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
这段日志内容明显说明数据库启动时找不到group 2日志组的日志文件redo02.log"redo02_1.log,于是:cd /u02/oradata/center
ls果真在此目录下找不到报错的日志文件,问题原因查明,进行相关处理:重做日志损坏或者误删或者丢失,那么肯定数据库不能够进行完全恢复,会丢失当前重做日志中的事务数据。恢复方法需要针对重做日志组丢失的状况以及当前在数据库中的状态而采用不同的方法进行恢复。
首先检查重做日志文件状态,看看报错的日志文件的状态。
SQL> select * from v$log;
SQL> select * from v$logfile; 针对:丢失非活动日志文件的恢复,非活动日志文件指的是丢失的日志文件组状态为’INACTIVE",说明该日志组已经完成检查点后丢失的日志文件,数据库不会发生数据丢失,但是千万不能够忽视,www.linuxidc.com因为当日志切换到该日志组时会发生错误。主要方法包括方法一、方法二、方法三。方法一:通过重新生成重做日志文件组
直接删除丢失的重做日志文件组,但是删除后必须保证数据库的重做日志组数目不能小于2个。删除重做日志文件组:SQL> alter database drop logfile group 1;Database altered.增加重做日志文件组:SQL>alter database add logfile group 1("/u01/oradata/orcl/redo1.log","/u01/oradata/orcl/redo01.log") size 500m;Database altered.方法二:通过增加重做日志文件成员以及删除丢失的日志文件在丢失的重做日志组中增加同样大小的REDO文件,然后删除丢失的MEMBER。增加重做日志文件成员:SQL> alterdatabase add logfile member "/u01/oradata/orcl/redo01.log" to group 1;Databasealtered.删除丢失的日志文件:SQL> alterdatabase drop logfile member "/u01/oradata/orcl/redo1.log";Database altered.这种方法只适合丢失的文件组中至少还有一个成员是可用的,如果丢失的日志文件所属的文件组只有这一个文件,那么这种方法是不适合的。在添加日志文件时会出错:SQL> alterdatabase add logfile member "/u01/oradata1/redo1.log" to group 1;alter databaseadd logfile member "/u01/oradata1/redo01.log" to group 1*ERROR at line 1:ORA-00313: openfailed for members of log group 1 of thread 1ORA-00312:online log 1 thread 1: "/u01/oradata/orcl/redo01.log"ORA-27037:unable to obtain file statusLinux Error: 2:No such file or directoryAdditionalinformation: 3
  • 1
  • 2
  • 下一页
在Linux 启动时自动启动Oracle 10g多个实例数据库的方法使用Lucene 2.31 索引 Oracle 10g的数据库相关资讯      Oracle数据库  Oracle入门教程  oracle数据库教程 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数