一次数据库无法正常启动处理
安装在自己电脑上oracle数据库许久没用了,今天突然要用到它,就想起他来了。想通过pl/sql直接远程过去,发现远程不上报ora-12514。看到这个错误代码,第一反应是监听出问题了?检查了监听发现并没有错误。然后去查看了alert.log日志,在这里面找到了错误原因所在
ORA-19815: WARNING: db_recovery_file_dest_size of 320 bytes is 100.00% used, and has 0 remaining bytes available.
db_recovery_file_dest_size 字节 (共 320 字节) 已使用 100.00%, 尚有 0 字节可用,大概就这意思。
原来是归档日志满了,导致无法正常启动。两个解决办法:
一、通过rman删除之前的归档日志
C:\Users\Administrator>rman target / 恢复管理器: Release 11.2.0.1.0 - Production on 星期五 10月 12 15:25:02 2018 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到目标数据库: ORCL (DBID=1494831250) RMAN>crosscheck archivelog all; #如果日志较多的话这个时间比较长,完成之后执行下面的命令,
RMAN> delete expired archivelog all; #没有匹配日志,那就只能删除多少天之前的日志了
释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=195 设备类型=DISK
说明与资料档案库中的任何归档日志都不匹配
RMAN>delete noprompt archivelog until time "sysdate-3";
二、进入mount状态关闭归档
C:\Users\Administrator>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期五 10月 12 15:34:20 2018 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> conn / as sysdba 已连接。 SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 704643536 bytes
Database Buffers 360710144 bytes
Redo Buffers 4603904 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 704643536 bytes
Database Buffers 360710144 bytes
Redo Buffers 4603904 bytes
数据库装载完毕。
数据库已经打开。
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 459
下一个存档日志序列 461
当前日志序列 46
SQL>
如果是直接alter system set db_recovery_file_dest_size=20扩容归档大小,在启动数据库的时候会报错,提示如下:
Errors in file e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_5200.trc: ORA-19809: 超出了恢复文件数的限制 ORA-19804: 无法回收 47600128 字节磁盘空间 (从 320 限制中) ARCH: Error 19809 Creating archive log file to 'E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2018_10_12\O1_MF_1_456_%U_.ARC' Errors in file e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_5200.trc: ORA-16038: 日志 3 sequence# 456 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 3 线程 1: 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'
所以,最好是先通过rman删除过期归档日志,然后在扩容归档日志大小。
注:方法二不要在生产库中操作做