一次数据库无法正常启动处理

安装在自己电脑上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删除过期归档日志,然后在扩容归档日志大小。

注:方法二不要在生产库中操作做

猜你喜欢

转载自www.cnblogs.com/Roobbin/p/9778517.html