今天突然公司Oracle数据库服务器连接不上了!
通过SSH连接上去后,发现Oracle服务已经启动了,但是无法正常关闭,最后只好Kill掉了!
kill之后,使用startup启动数据库时候,却提示异常,数据库无法启动:
ORA-03113: end-of-file on communication channel Process ID:22338 Session ID: 1 Serial number: 3
首先,我们在$ORACLE_HOME/diag/rdbms/orcl11g/orcl/trace目录下,根据Process ID,找到orcl_ora_22338.trc日志文件,
日志中,有这样一行记录:
ORA-19815: WARNING: db_recovery_file_dest_size of 4070572032 bytes is 100.00% used, and has 0 remaining bytes available.原来是因为归档日志空间被耗尽了,导致数据库宕机及无法启动.
如何解决呢?有如下2种方法:
- 扩大db_recovery_file_dest_size
- startup nomount (启动数据库到nomount状态)
- show parameter db_recovery (查看归档日志位置及区大小,poc中默认是4G)
- alter system set db_recovery_file_dest_size=6000M; (增大空间到6G(定义归档日志存储空间大小))
- alter system set db_flashback_retention_target=10080;(缩小时间,时间计算方法是24小时*60分钟(定义归档日志存储时间))
- alter database mount
- alter database open
- 清理归档日志文件
- rman target /(进入rman)
- delete expired archivelog all;(清理过期日志,需要提前定义归档日志存储时间(第一种方法中的4步骤))
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于