故障现象:
ERROR : ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
像平常一样,使用PLSQL准备做点小实验,登录自己的测试库的时候,突然无法连接了
刚开始还以为是监听的问题,lsnrctl status看了一下发现实例是UNKNOWN的
实例 "ORA11G", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
然后想去查查数据库运行状态,发现连接的是空闲实例,startup无法启动,报错如下:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 778387456 bytes
Fixed Size 1374808 bytes
Variable Size 436209064 bytes
Database Buffers 335544320 bytes
Redo Buffers 5259264 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 19936
会话 ID: 125 序列号: 5
然后去查看alert.log,发现归档日志空间爆满了。
Errors in file d:\oracle11g\diag\rdbms\ora11g\ora11g\trace\ora11g_arc2_19692.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 47455232 bytes disk space from 4294967296 limit
ARCH: Archival stopped, error occurred. Will continue retrying
ARC2: Error 19809 Creating archive log file to 'D:\ORACLE11G\FLASH_RECOVERY_AREA\ORA11G\ARCHIVELOG\2015_11_26\O1_MF_1_111_%U_.ARC'
Errors in file d:\oracle11g\diag\rdbms\ora11g\ora11g\trace\ora11g_arc1_4212.trc:
ORA-16038: log 5 sequence# 110 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 5 thread 1: 'D:\ORACLE11G\PRODUCT\GROUP_5_REDO_LOG_05.LOG'
Errors in file d:\oracle11g\diag\rdbms\ora11g\ora11g\trace\ora11g_ora_19936.trc:
ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4294967296 字节) 已使用 100.00%, 尚有 0 字节可用。
手动删除了所有物理上的归档日志文件,(删之前看了一眼,文件大小达到3.99G,我给归档日志空间设置的总大小是4G,明显爆满了)
rman target /
crosscheck archivelog all;
delete expired archivelog all;
再重新启动数据库,可以打开数据库,恢复正常
SQL> alter database open;
数据库已更改。
SQL> select status from v$instance;
STATUS
------------
OPEN
总结:
ORACLE数据库开启归档模式后,虽然能方便进行level级的全增备份策略,但是总会因为归档日志空间爆满的问题而遇到各种各样的报错,所以日常巡检中一定要多注意观察归档日志空间的使用情况,在存储空间足够的情况下,尽量将归档日志空间设置大一些,同时每天进行备份的时候要及时对过期日志进行自动清除。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28371090/viewspace-1846926/,如需转载,请注明出处,否则将追究法律责任。