免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4514 | 回复: 0
打印 上一主题 下一主题

在线redo损坏恢复实例 [复制链接]

论坛徽章:
3
数据库技术版块每日发帖之星
日期:2016-05-27 06:20:00数据库技术版块每日发帖之星
日期:2016-06-04 06:20:00数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:54 |只看该作者 |倒序浏览

某个用户的数据库,启动数据库的时候alert.log里报如下错误:
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_3096.trc:
ORA-00333: 重做日志读取块 155649 计数 2048 出错
ORA-00312: 联机日志 10 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO10.LOG'
ORA-27070: 异步读取/写入失败
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 23) 数据错误(循环冗余检查)。
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_3096.trc:
ORA-00333: 重做日志读取块 155649 计数 2048 出错
从日记中发现redo10.log已经损坏无法读取,通过查询v$log发现该日记组是当前日记组(CURRENT),发现用户一直没有备份,看来只能使用_allow_resetlogs_corruption参数来打开数据库了。
以下是恢复过程:
试着clear 日记组
SQL> connect / as sysdba
已连接。
SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 10;
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 10
*
第 1 行出现错误:
ORA-01624: 日志 10 是紧急恢复实例 orcl (线程 1) 所必需的
ORA-00312: 联机日志 10 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO10.LOG'

SQL> recover database until cancel;
ORA-00279: 更改 142207207 (在 07/19/2011 11:53:24 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_19\O1_MF_1_1088_72B0174W_.ARC
ORA-00280: 更改 142207207 (用于线程 1) 在序列 #1088 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 142219852 (在 07/19/2011 11:55:18 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_19\O1_MF_1_1089_72B04T5C_.ARC
ORA-00280: 更改 142219852 (用于线程 1) 在序列 #1089 中
ORA-00278: 此恢复不再需要日志文件
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_19\O1_MF_1_1088_72B0174W_.ARC'

ORA-00279: 更改 142232385 (在 07/19/2011 11:57:13 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1090_%U_.ARC
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 1392) 文件或目录损坏且无法读取。
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 1392) 文件或目录损坏且无法读取。
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 1392) 文件或目录损坏且无法读取。
ORA-00280: 更改 142232385 (用于线程 1) 在序列 #1090 中
ORA-00278: 此恢复不再需要日志文件
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_19\O1_MF_1_1089_72B04T5C_.ARC'

ORA-00308: 无法打开归档日志
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1090_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'

SQL>
SQL> recover database until cancel;
ORA-00279: 更改 142232385 (在 07/19/2011 11:57:13 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1090_%U_.ARC
ORA-00280: 更改 142232385 (用于线程 1) 在序列 #1090 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1090_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-00308: 无法打开归档日志
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1090_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'

SQL>
SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-00333: 重做日志读取块 155648 计数 2048 出错

SQL>
SQL>
SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 10;
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 10
*
第 1 行出现错误:
ORA-01624: 日志 10 是紧急恢复实例 orcl (线程 1) 所必需的
ORA-00312: 联机日志 10 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO10.LOG'

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

SQL> recover database until cancel;
ORA-00279: 更改 142245856 (在 07/19/2011 11:59:14 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1091_%U_.ARC
ORA-00280: 更改 142245856 (用于线程 1) 在序列 #1091 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00308: 无法打开归档日志
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1091_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'

SQL>
SQL> alter system set _allow_resetlogs_corruption=TRUE scope=both;
alter system set _allow_resetlogs_corruption=TRUE scope=both
                 *
第 1 行出现错误:
ORA-00911: 无效字符

SQL> alter system set _allow_resetlogs_corruption=TRUE;
alter system set _allow_resetlogs_corruption=TRUE
                 *
第 1 行出现错误:
ORA-00911: 无效字符

SQL> shutdown immediate
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size                  1352100 bytes
Variable Size             419434076 bytes
Database Buffers          645922816 bytes
Redo Buffers                4624384 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database op resetlogs;
alter database op resetlogs
                  *
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'

SQL> alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-00333: 重做日志读取块 155650 计数 8192 出错

SQL> show parameters spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      D:\APP\ADMINISTRATOR\PRODUCT\1
                                                 1.1.0\DB_1\DATABASE\SPFILEORCL
                                                 .ORA
-- 创建pfile,然后再改文件最后加上*._allow_resetlogs_corruption=TRUE
SQL> create pfile='c:\pfileora.ora' from spfile;
文件已创建。

SQL> shutdown immediate
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
-- 使用刚才创建的pfile启动数据库
SQL> startup pfile='C:\pfileora.ora'
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size                  1352100 bytes
Variable Size             419434076 bytes
Database Buffers          645922816 bytes
Redo Buffers                4624384 bytes
数据库装载完毕。
ORA-00333: 重做日志读取块 155650 计数 8192 出错

SQL> recover database until cancel;
ORA-00279: 更改 142245856 (在 07/19/2011 11:59:14 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1091_%U_.ARC
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 1392) 文件或目录损坏且无法读取。
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 1392) 文件或目录损坏且无法读取。
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 1392) 文件或目录损坏且无法读取。
ORA-00280: 更改 142245856 (用于线程 1) 在序列 #1091 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1091_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-00308: 无法打开归档日志
'E:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2011_07_20\O1_MF_1_1091_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'

-- 这个时候数据已经打开
SQL> alter database open resetlogs;
数据库已更改。

SQL> show parameters spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
-- 使用之前的spfile 启动数据库(spfile未设置*._allow_resetlogs_corruption)
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size                  1352100 bytes
Variable Size             419434076 bytes
Database Buffers          645922816 bytes
Redo Buffers                4624384 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameters spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      D:\APP\ADMINISTRATOR\PRODUCT\1
                                                 1.1.0\DB_1\DATABASE\SPFILEORCL
                                                 .ORA
SQL>
 
数据库open后, 使用exp将所有数据导出后,重建库再导入。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP