暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

【故障处理】遭遇ORA-00376&ORA-01110~慌了一批

原创 virvle 2024-07-22
919

一个归档系统,收到要查询2013年的数据,启动应用程序,发现应用报错数据库文件有问题,我的天啊,这么个老系统,我备份还在不。。心慌但必须冷静

1. 启动应用程序报错:

ORA-00376: 此时无法读取文件 108
ORA-01110: 数据文件 108…

image.png

登录数据库,查询相关的数据也提示报错

image.png

2. 追查根源

(1) 查看物理文件
数据文件还在磁盘,更新时间显示6月26日凌晨,这个时间点,刚好是数据库正在做备份的时间,可能是当时断电导致

(2)查看文件的状态

select name, status from v$datafile order by file#;

PS: 查询发现除了系统表空间,其他文件都处于recover状态,需要进行介质恢复

3. 恢复数据

3.1 尝试恢复数据库文件108,遭遇ORA-00308

SQL> select file#,name,status from v$datafile where file#=108;

    FILE#      NAME	                              STATUS
---------- -------------------------------------- -------
   108        E:\ORADATA\XX\XXX_02.DBF    RECOVER
 
> rman target /
RMAN > recover datafile 108;
ORA-00279: 更改 333025732781 (在 06/14/2024 05:20:42 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVELOG\ARC68419_0805202371.001.ARC
ORA-00280: 更改 333025732781 (用于线程 1) 在序列 #68419 中


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

ORA-00308: 无法打开归档日志 'D:\ARCHIVELOG\ARC68419_0805202371.001.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

PS: 告警,提示找不到相关规定文件,查看磁盘的物理文件确实不存在。查看归档的备份,有相关日期的,先恢复归档日志

3.2 恢复相关归档日志

(1)查看需要进行恢复的归档日志,有220个文件

select g.SEQUENCE#,g.NAME,g.FIRST_TIME,g.NEXT_TIME from v$archived_log g
where g.SEQUENCE#>=68419

(2)恢复归档日志,登录rman进行恢复,由于数据量大,按服务器配置,开启并行 (时间比较久,具体看归档的大小)

run { set archivelog destination to 'D:\archivelog'; allocate channel ch1 type disk; allocate channel ch2 type disk; allocate channel ch3 type disk; allocate channel ch4 type disk; allocate channel ch5 type disk; allocate channel ch6 type disk; allocate channel ch7 type disk; allocate channel ch8 type disk; restore archivelog from logseq 68421 until logseq 68636; release channel ch1; release channel ch2; release channel ch3; release channel ch4; release channel ch5; release channel ch6; release channel ch7; release channel ch8; }

3.3 恢复数据文件

RMAN> recover datafile 108 ;

启动 recover 于 22-7月 -24
使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 68419 已作为文件 D:\ARCHIVELOG\ARC68419_0805202371.001.ARC 存在于磁盘上
存档日志线程 1 序列 68420 已作为文件 D:\ARCHIVELOG\ARC68420_0805202371.001.ARC 存在于磁盘上
。。。省了一批

存档日志文件名 =D:\ARCHIVELOG\ARC68419_0805202371.001.ARC 线程 =1 序列 =68419
存档日志文件名 =D:\ARCHIVELOG\ARC68420_0805202371.001.ARC 线程 =1 序列 =68420
介质恢复完成, 用时: 00:00:02
完成 recover 于 22-7月 -24

3.4 online数据文件

SQL> alter database datafile 108 online ; 数据库已更改。

再次查询数据文件状态,都是online,已正常

SQL> select name, status from v$datafile order by file#;

到此,已经完成修复,应用正常启动。马上来一个全备(备份一定要有)

最后修改时间:2024-07-23 10:32:59
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论