`
tianshibaijia
  • 浏览: 1126304 次
文章分类
社区版块
存档分类
最新评论

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',说明该日志组已经完成检查点后丢失的日志文件,

数据库不会发生数据丢失,但是千万不能够忽视,因为当日志切换到该日志组时会发生错误。

主要方法包括方法一、方法二、方法三。

方法一:通过重新生成重做日志文件组

直接删除丢失的重做日志文件组,但是删除后必须保证数据库的重做日志组数目不能小于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 1

ORA-00312:online log 1 thread 1: '/u01/oradata/orcl/redo01.log'

ORA-27037:unable to obtain file status

Linux Error: 2:No such file or directory

Additionalinformation: 3

方法三:通过clear日志恢复

SQL> alterdatabase clear logfile group 1;

Databasealtered.

SQL> alterdatabase open;

Databasealtered.

需要说明的是,如果数据库处于归档模式下,则需要使用下面的命令来清除日志:

alter databaseclear unarchived logfile group 1;

丢失的是一组中的某个日志文件,则clear的那个日志文件

SQL> alter database clear logfile '/u02/oradata/center/redo01.log‘;


针对:丢失当前的日志文件的恢复,指丢失的日志文件的状态如果是ACTIVE或CURRENT(有可能是异常关闭数据库造成),说明没有归档。

如果没有归档的日志组中含有多个日志文件成员,那么丢失或者损坏部分日志文件时,只需要复制正常的日志文件,

来替换丢失或损坏的日志文件即可解决,这样数据不会丢失,也不用做恢复操作。
如果没有归档的重做日志组中所有日志件都丢失或者损坏,将会导致数据库数据丢失,如果没有归档的日志文件组为当前组,

则数据库立即DOWN机。当这个情况发生时,就意味着数据的丢失,我们只能将数据库恢复到前一次的归档日志切换时刻

主要方法包括方法四、方法五。

方法四:先尝试通过clear日志恢复

SQL> alterdatabase clear unarchived logfile group 2;

Databasealtered.

检查发现,日志文件已经恢复,会多出日志文件组中丢失的其中的一个文件(同组中没有所有日志文件都丢失)

SQL> alterdatabase open;

Databasealtered.

方法五:通过设置_allow_resetlogs_corruption参数为true进行恢复。

这是破坏唯一性的情况下强制重置日志,打开数据库,在打开的过程中,ORACLE会跳过一致性检查,使数据库处于不一致的状态下打开。

由于重做日志文件状态为Current,恢复工作较为复杂,有以下四种情况:
1)通过下面步骤,数据库顺利打开

SQL> startup mount
SQL> recover database until cancel;

或者恢复到某个以前时间点

SQL>recoverdatabaseuntiltime'2011-11-09 01:01:01';

SQL>alter database open resetlogs;

2)第一种情况的'recover database until cancel' 操作遇到ORA-01547,ORA-01194,ORA-01110错误,需要整个数据库的物理备份,

并根据归档日志恢复到错误时间点,前提是数据库是归档模式。

SQL> startup mount
SQL> recover database until cancel using backup controlfile;
SQL> alter database open resetlogs;

3)如果数据库是非归档模式,只能恢复整个物理备份,然后直接打开数据库。这种情况将丢失物理备份至故障发生前的全部数据。

4)如果数据库是非归档模式,且没有物理备份,只能通过特殊的隐含参数,允许数据库不一致的状况下打开数据库。

这种恢复方法是没有办法之后的恢复方法,将导致数据库不一致,一般情况下不要采用。如确有需要,请在Oracle的技术人员指导下使用该方法。

#关闭数据库
SQL>shutdown immediate
#在init<sid>.ora中加入如下参数
_allow_resetlogs_corruption=TRUE
# 重新启动数据库,利用until cancel恢复
SQL>recover database until cancel;
#打开数据库
SQL>alter database open resetlogs;
#数据库被打开后,马上执行一个全库导出。

SQL> shutdown immediate;

#关闭数据库,在init<sid>.ora中去掉_all_resetlogs_corrupt参数

#然后重新启动数据库

SQL> startup


#本次案例通过以上判断是丢失当前的日志文件的恢复,采用了方法五

----------------------------------------------------------------



分享到:
评论

相关推荐

    oracle日志丢失数据库恢复技巧

    Oracle 丢失日志(redoxx_xx)文件后的处理方法

    基于matlab实现的空间调制通信过程,包含信号调制、天线选择等发送过程,以及采用最大似然估计的检测过程 .rar

    基于matlab实现的空间调制通信过程,包含信号调制、天线选择等发送过程,以及采用最大似然估计的检测过程。.rar

    基于matlab的关于生猪养殖场经营管理的研究.docx

    本文档是课题研究的研究报告内含调研以及源码设计以及结果分析

    网络作为特征提取器-python源码.zip

    网络作为特征提取器-python源码.zip

    JavaScript-javaweb项目

    JavaScript-javaweb项目

    node-v12.11.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    仿Slideby触屏版html5响应式手机wap网站模板下载.zip

    触屏版自适应手机wap软件网站模板 触屏版自适应手机wap软件网站模板

    node-v10.18.1-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    IEC 60695-11-3:2012.pdf

    IEC 60695-11-3:2012.pdf

    2021-2010上市公司和讯网社会责任评级CSR-股东员工客户消费者环境社会责任分项评级

    上市公司和讯网社会责任评级CSR-股东责任员工责任客户消费者环境社会责任分项评级 得分(2010-2021年) "中国上市公司-和讯网社会责任数据"是 一份来自和讯网的数据集,它同步并收集了中国上市公司关于社会责任的相关信息。包括了 公司在股东责任、员工责任、供应商客户消费者权益责任、环境责任、社会责任中的表现和 成绩,以反映公司承担社会责任的程度。可以帮助大家了解公司在承担社会责任方面的具体 表现。这对于研究公司社会责任与公司业绩、公司声誉、公司风险等方面的关系具有参考意 义。 一、数据介绍 数据名称:上市公司和讯网社会责任评级CSR-股东责任员工责任 客户消费者环境社会责任分项评级得分 数据年份:2010-2021年 样本数量:每 年含2300-4600左右上市公司数据,总数据量40058条(注:因披露口径原因 ,2021年仅有430+上市公司数据) 数据格式:Excel面板数据 二、指标说 明 共计11个指标:股票名称、股票代码、年份、总得分、等级、股东责任、员工责任、 供应商客户和消费者权益责任、环境责任、社会责任、统计日期 三、部分excel数据 展示

    使用opencv进行人脸识别和对比-python源码.zip

    使用opencv进行人脸识别和对比-python源码.zip

    EmotionVGGnet情绪识别-python源码.zip

    EmotionVGGnet情绪识别-python源码.zip

    node-v12.1.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    MediaPipe人体姿势估计-python源码.zip

    MediaPipe人体姿势估计-python源码.zip

    构造并使用决策树进行分类-python源码.zip

    构造并使用决策树进行分类-python源码.zip

    <2024年5月软考高项极限冲刺>《1 考试简介》

    <2024年5月软考高项极限冲刺>《1 考试简介》

    【特效超多】仿德国开元旅游触屏版html5手机wap旅游网站模板下载.zip

    【特效超多】仿德国开元旅游触屏版html5手机wap旅游网站模板下载.zip

    JSP基于WEB网上论坛设计与实现(源代码+论文+开题报告+答辩PPT+外文翻译).zip

    JSP基于WEB网上论坛设计与实现(源代码+论文+开题报告+答辩PPT+外文翻译)

    仿YOKA服饰美容3G手机wap女性网站模板.zip

    触屏版自适应手机wap软件网站模板 触屏版自适应手机wap软件网站模板

    node-v12.0.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics