千家信息网

Online Redo Log损坏处理的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章给大家分享的是有关Online Redo Log损坏处理的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我们一起来看一下
千家信息网最后更新 2026年11月01日Online Redo Log损坏处理的示例分析

本篇文章给大家分享的是有关Online Redo Log损坏处理的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

我们一起来看一下非一致性关闭条件下当前日志组删除的处理。

6、非一致性关闭当前日志组处理

我们回到10g Windows版本进行实验。

SQL> select group#, archived, status, first_change#,sequence# from v$log;

GROUP# ARCHIVED STATUS FIRST_CHANGE# SEQUENCE#

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

1 NO CURRENT 605509 8

2 YES ACTIVE 604411 7

3 YES INACTIVE 604371 6

SQL> shutdown abort;

ORACLE 例程已经关闭。

SQL>

E:\oracle\product\10.2.0\oradata\orcl>rename REDO01B.LOG REDO01B.LOG_bak

E:\oracle\product\10.2.0\oradata\orcl>rename REDO01A.LOG REDO01A.LOG_bak

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 603979776 bytes

Fixed Size 1250380 bytes

Variable Size 218106804 bytes

Database Buffers 377487360 bytes

Redo Buffers 7135232 bytes

数据库装载完毕。

ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员

ORA-00312: 联机日志 1 线程 1:

'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_1_85TNYSWS_.L

OG'

ORA-27041: 无法打开文件

OSD-04002: ???????

O/S-Error: (OS 2) ????????????????

ORA-00312: 联机日志 1 线程 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_1_85TNYS8S_.LOG'

ORA-27041: 无法打开文件

OSD-04002: ???????

O/S-Error: (OS 2) ????????????????

之后,使用常规方法很难打开数据库。

SQL> recover database until cancel;

ORA-00279: 更改 605036 (在 09/23/2012 09:01:03 生成) 对于线程 1 是必需的

ORA-00289: 建议:

E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1_

7_%U_.ARC

ORA-00280: 更改 605036 (用于线程 1) 在序列 #7 中

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 605509 (在 09/23/2012 09:02:53 生成) 对于线程 1 是必需的

ORA-00289: 建议:

E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1_

8_%U_.ARC

ORA-00280: 更改 605509 (用于线程 1) 在序列 #8 中

ORA-00278: 此恢复不再需要日志文件

'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1

_7_85WQXX8S_.ARC'

ORA-00308: 无法打开归档日志

'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_09_23\O1_MF_1

_8_%U_.ARC'

ORA-27041: 无法打开文件

OSD-04002: ???????

O/S-Error: (OS 2) ????????????????

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误

ORA-01194: 文件 1 需要更多的恢复来保持一致性

ORA-01110: 数据文件 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_85TSQFJM_.DBF'

SQL> alter database open resetlogs;

alter database open resetlogs

*

第 1 行出现错误:

ORA-01194: 文件 1 需要更多的恢复来保持一致性

ORA-01110: 数据文件 1:

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_85TSQFJM_.DBF'

在处理这个问题上,处理上节介绍的备份还原的手段,我们没有太多很好的选择。但是,如果没有备份的时候,我们就需要进行冒险操作。

之所以我们无法从mount进入open状态,主要是源于无法通过文件头完整性检验步骤。在Oracle中,我们可以利用一些后门来让Oracle不进行检查,通过open阶段。下面我们就需要在参数中添加这些配置。

SQL> shutdown abort;

ORACLE 例程已经关闭。

SQL> startup nomount;

ORACLE 例程已经启动。

Total System Global Area 603979776 bytes

Fixed Size 1250380 bytes

Variable Size 218106804 bytes

Database Buffers 377487360 bytes

Redo Buffers 7135232 bytes

SQL>

--生成PFILE

SQL> create pfile='d:\pfile.ora' from spfile;

文件已创建。

隐含参数_allow_resetlogs_corruption可以让我们避开一致性检查。在pfile中加入参数行。

(参数文件内容)

_allow_resetlogs_corruption=TRUE

orcl.__db_cache_size=377487360

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=209715200

orcl.__streams_pool_size=0

之后,尝试打开数据库。

SQL> shutdown abort

ORACLE 例程已经关闭。

SQL> startup pfile='d:\pfile.ora';

ORACLE 例程已经启动。

Total System Global Area 603979776 bytes

Fixed Size 1250380 bytes

Variable Size 218106804 bytes

Database Buffers 377487360 bytes

Redo Buffers 7135232 bytes

数据库装载完毕。

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;

数据库已更改。

SQL> conn sys/oracle@orcl as sysdba

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

Connected as SYS

SQL> select group#, archived, status, first_change#,sequence# from v$log;

GROUP# ARCHIVED STATUS FIRST_CHANGE# SEQUENCE#

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

1 NO CURRENT 605510 1

2 YES UNUSED 0 0

3 YES UNUSED 0 0

注意:这种方法是有很多的问题的。加入参数可以让我们绕开一致性验证,但是很多场景下,特别是文件损坏的场景下,启动可能还会遇到其他错误信息。一旦我们打开数据库,要明白这个库是处在危险之中,我们能做的就是将重要数据尽快的备份出来。

无论发生何种类型的错误,可用、完整的备份都是我们的救命草。要制定完备的备份策略,经常性的检查备份有效性,防患于未燃。

以上就是Online Redo Log损坏处理的示例分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

文件 数据 日志 数据库 线程 处理 一致 一致性 备份 参数 更多 错误 检查 生成 示例 分析 场景 就是 序列 建议 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融科技 互联网金融 互联网科技集团 互联网 视角下的科技创新 互联网科技美容 互联网科技英文翻译 科技大学互联网专业好不好 博兴的互联网电子科技公司 互联网科技公司需要的职位 科技与互联网的利与弊 福州新华互联网科技学校 知乎 互联网科技寓意 全球顶尖互联网科技公司 青岛科技大学互联网大赛研究生 成都互联网科技公司工作好不好 未来五年的互联网科技 如何创新互联网科技 朱啸虎曾投资哪些互联网科技企业 南通创西澳互联网科技有限公司 雨阳互联网卡科技有限公司 宇信科技在杭州互联网排第几 哈尔滨大商圈互联网科技有限公司 互联网科技财经 互联网中国科技 互联网 科技服务平台 安控科技rtu产品工业互联网 互联网科技实习生岗位职责 互联网科技与管理 浙江互联网科技研学营 移动互联网科技公司 烟台灵鸽互联网科技有限公司
0