Windows下的一套Oracle 11g数据库,操作系统重启后数据库无法访问。
登陆数据库后,首先检查监听状态,并尝试启动监听。
lsnrclt statuslsnrctl start
使用 sqlplus 登陆数据库,提示连接到空闲例程,发现数据库没有启动,于是启动数据库:

启动时报ORA-03113错误
SQL> startupORACLE 例程已经启动。Total System Global Area 1.3696E+10 bytesFixed Size 2294256 bytesVariable Size 7985958416 bytesDatabase Buffers 5670699008 bytesRedo Buffers 36937728 bytes数据库装载完毕。ORA-03113: 通信通道的文件结尾进程 ID: 3816会话 ID: 2826 序列号: 3
重新登陆数据库,分步启动,查询alert日志所在位置
sqlplus / as sysdbaSQL> startup nomount;SQL> select value from v$diag_info

从 v$diag_info 获取 alert 日志位置为E:\app\Administrator\diag\rdbms\neubi\neubi\trace\alert_neubi.log
查看 alert 日志,日志中报空间不足

检查Windows 磁盘空间发现数据盘已满。

确定问题后,开始清理空间。初步分析,发现FRA空间占用比较高,里面都是归档日志。

准备通过 rman 清理归档日志

rman 无法在 nomount 状态下清理日志,将数据库置为mount状态。
SQL> alter database mount;

重新连接 rman

RMAN> crosscheck archivelog all;RMAN> delete archivelog all completed before 'sysdate-3';
清理过后发现空间并没有太大变化,数据盘仍然是接近满的状态。

使用windows下的磁盘空间分析工具 SpaceSniffer 进行分析,发现最近三天归档数据量异常

重新执行rman进行归档清理
RMAN> delete archivelog until time 'sysdate-2';

清理后,空间腾出了100G

SpaceSniffer 显示数据文件占了大部分空间,后期要考虑磁盘扩容。

此时考虑将数据库打开
SQL> alert database open;

最后检查监听状态,监听已恢复

文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




