Oracle数据库挂起了.关闭数据库坐了几个小时然后退出.它不会重启.服务器已重新启动. Oracle重新启动.一步一步:startup nomount工作,alter database mount工作,alter database open返回ORA-03113.这都是在本地主机上 – 而不是通过网络.机器没有运行任何类型的防火墙.
要做到这一点,你必须是oracle用户:
$su - oracle
第1步:您需要查看警报日志.它不在预期的/ var / log中.您必须运行Oracle日志读取程序:
$adrci ADRCI: Release 11.2.0.1.0 - Production on Wed Sep 11 18:27:56 2013 Copyright (c) 1982,2009,Oracle and/or its affiliates. All rights reserved. ADR base = "/u01/app/oracle" adrci>
注意ADR基础.那不是安装.您需要查看房屋,以便连接到您使用的房屋.
adrci> show homes ADR Homes: diag/rdbms/cci/CCI diag/tnslsnr/cci/listener diag/tnslsnr/cci/start diag/tnslsnr/cci/reload
CCI是家.设置它.
adrci> set home diag/rdbms/cci/CCI adrci>
现在,您可以查看警报日志.如果它们位于/ var / log中会非常好,这样您就可以轻松地解析日志.只是停止想要和处理这个界面.至少你可以尾(我希望你有一个回滚缓冲区):
adrci> show alert -tail 100
向后滚动,直到看到错误.你想要第一个错误.第一个错误之后的任何错误都可能是由第一个错误引起的.就我而言,第一个错误是:
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used,and has 0 remaining bytes available.
这是由交易引起的. Oracle不是为使用而设计的.如果您确实将大量数据输入其中,则会保存事务日志.那些进入恢复文件区域.一旦它已满(在这种情况下为50GB满).然后,Oracle就死了.根据设计,如果出现任何问题,Oracle将通过关闭来做出响应.
有两种解决方案,正确的解决方案和快速而肮脏的解决方案.快速而肮脏的是增加db_recovery_file_dest_size.首先,退出adrci.
adrci> exit
现在,进入sqlplus而不打开数据库,只需安装它(你可以在不挂载数据库的情况下执行此操作,但无论如何我都可以安装它).
$sqlplus /nolog sql*Plus: Release 11.2.0.1.0 Production on Wed Sep 11 18:40:25 2013 Copyright (c) 1982,Oracle. All rights reserved. sql> connect / as sysdba Connected. sql> startup mount
现在,您可以增加当前的db_recovery_file_dest_size,在我的情况下增加到75G:
sql> alter system set db_recovery_file_dest_size = 75G scope=both
正确的解决方法是摆脱恢复文件.您可以使用RMAN,而不是sqlPLUS或ADRCI.
$rman Recovery Manager: Release 11.2.0.1.0 - Production on Wed Sep 11 18:45:11 2013 Copyright (c) 1982,Oracle and/or its affiliates. All rights reserved. RMAN> backup archivelog all delete input;