RMAN备份与ORA-19625&ORA-19502

简介:     常州一地区负责人嚎哭,他业务全停了,说是数据库连接不上了,原因是RMAN备份引起的,具体原因分析请看下文。     1、首先,看系统存储情况,如下图: 系统负责人说,D盘和E盘都有数据库文件,数据库备份在E盘。
    常州一地区负责人嚎哭,他业务全停了,说是数据库连接不上了,原因是RMAN备份引起的,具体原因分析请看下文。
    1、首先,看系统存储情况,如下图:

系统负责人说,D盘和E盘都有数据库文件,数据库备份在E盘。
   2、 查看数据库告警日志,有大量如下信息,看信息貌似数据库归档有问题了:
Sun Aug 21 11:30:31 2016
ARCH: Archival stopped, error occurred. Will continue retrying
Sun Aug 21 11:30:31 2016
Archiver process freed from errors. No longer stopped
Sun Aug 21 11:35:31 2016
Archiver process freed from errors. No longer stopped
Sun Aug 21 11:35:31 2016
ARCH: Archival stopped, error occurred. Will continue retrying
Archiver process freed from errors. No longer stopped
ARCH: Archival stopped, error occurred. Will continue retrying
    3、查看数据库的RMAN备份目录,RMAN的全备份日志里的ORA-19502告诉了我们原因,确实是E盘磁盘空间不足:
RMAN> RUN {
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> allocate channel c3 type disk;
5> backup filesperset 6 database format 'E:/backup/data/full_data_%d_%T_%s_%p';
6> sql 'alter system archive log current';
7> sql 'alter system archive log current';
8> sql 'alter system archive log current';
9> backup archivelog all format 'E:/backup/data/full_arch_%d_%T_%s_%p' delete input;
10> backup current controlfile format 'E:/backup/data/data/full_ctrl_%d_%T_%s_%p';
11> crosscheck backup;
12> crosscheck archivelog all;
13> delete noprompt archivelog all completed before  "sysdate-15";
14> delete noprompt expired backup;
15> delete noprompt obsolete;
16> release channel c1;
17> release channel c2;
18> release channel c3;
19> }
20> exit;
......
通道 c3: 正在启动段 1 于 15-8月 -16
RMAN-03009: backup 命令 (c1 通道上, 在 08/15/2016 17:34:03 上) 失败
ORA-19502: 文件 "E:\BACKUP\DATA\FULL_DATA_ORCL2_20160815_1136_1", 块编号 6295680 (块大小=8192) 上出现写入错误
ORA-27070: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 112) 磁盘空间不足。
通道 c1 已禁用, 将在另一个通道上运行该通道上失败的作业
RMAN-03009: backup 命令 (c2 通道上, 在 08/15/2016 17:34:03 上) 失败
ORA-19502: 文件 "E:\BACKUP\DATA\FULL_DATA_ORCL2_20160815_1135_1", 块编号 9574272 (块大小=8192) 上出现写入错误
ORA-27070: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 112) 磁盘空间不足。
通道 c2 已禁用, 将在另一个通道上运行该通道上失败的作业
释放的通道: c1
释放的通道: c2
释放的通道: c3
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (c3 通道上, 在 08/15/2016 17:34:03 上) 失败
ORA-19502: 文件 "E:\BACKUP\DATA\FULL_DATA_ORCL2_20160815_1137_1", 块编号 4491392 (块大小=8192) 上出现写入错误
ORA-27070: 异步读取/写入失败
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 112) 磁盘空间不足。
    4、结合告警日志和RMAN全备份日志,猜测数据库的归档目录也在E盘,经查看数据库的归档目录在E:\BACAKUP\ARCH下,然后发现E:\BACKUP\ARCH下有438G的归档文件,查看最近的归档备份日志:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup 命令 (在 08/16/2016 12:03:19 上) 失败
RMAN-06059: 没有找到预期的归档日志, 归档日志的丢失将影响可恢复性
ORA-19625: 识别文件E:\BACKUP\ARCH\ARCH_866716582_1_27892.ARC时出错
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
    由上述RMAN归档备份日志,发现有归档文件被误删除了,导致归档备份无法进行,从而导致E:\BACKUP\ARCH下有大量的归档积压,将E盘爆掉,数据库无法归档,导致数据库hang住。
    5、找到原因后,处理方法很简单,先手工删除积压的归档文件释放E盘空间,使用RMAN清理被误删除及过期的归档文件:
C:\>rman nocatalog
RMAN>connect target /
RMAN>crosscheck archivelog all;
RMAN>change archivelog all crosscheck;
RMAN>delete expired archivelog all;
    然后,使用RMAN重新启动数据库全备份,数据库服务异常问题解决。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
数据库
控制文件不一致报错ORA-00214处理
控制文件不一致报错ORA-00214处理
880 0
控制文件不一致报错ORA-00214处理
|
SQL
DATAGUARD(11.2.0.4) ORA-04021
DATAGUARD(11.2.0.4) ORA-04021
169 0
|
SQL Oracle 关系型数据库
oracle rman备份与ORA-19504&ORA-27040&RMAN-030009
oracle rman备份路径错误导致备份报错ORA-19504&ORA-27040&RMAN-03009...
1969 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 Shell
|
关系型数据库 Oracle
ORACLE rman备份报错之RMAN-03009&ORA-19587&ORA-27072
          >                                                                       
1151 0
|
存储 监控 Oracle
ORACLE RMAN备份失败之ORA-19599
    近期的oracle数据库巡检中,一地市oracle数据库的rman备份出现失败如下: 查看数据库rman备份日志,日志提示归档中有坏块: 输入归档日志线程=1 序列=43530 RECID=35316 STAMP=9...
1285 0