ora-03113 归档日志满了导致数据库连接不上的解决步骤:
sqlplus / as sysdba
shutdown abort ----关闭进程
startup mount ---- 装载数据库
select * from v$recovery_file_dest; ---查询归档日志
----db_recovery_file_dest_size=10737418240; --设置归档日志空间为10G
exit;
rman target /
进入rman工具窗口
rman target /
RMAN>crosscheck archivelog all; -- 运行这个命令可以把无效的expired的archivelog标出来。
RMAN>delete expired archivelog all; -- 直接全部删除过期的归档日志。
下面这个屌爆
RMAN>delete noprompt archivelog until time "sysdate -3"; -- 也可以直接用一个指定的日期来删除。
sqlplus / as sysdba;
startup
ORA-03113: end-of-file on communication channel
shutdown abort
start mount
查看alter日志
D:\app\Administrator\diag\rdbms\posboh\posboh\alert\
ORA-19815:
alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
shutdown
startup
至此应该可以启动起来。
为了防止以后再满了无法启动,设置定时清理归档日志:
1、创建一个删除归档日志的脚本(delete_arch.txt):
connect target /
run{
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; //删除7天前的归档日志,怕哪天DG有问题,有日志没有及时应用
crosscheck archivelog all;
delete expired archivelog all;
}
2、创建批处理任务(delete_archive.bat)
rman cmdfile=c:\delete_arch.txt
3、创建一个windows任务定时调用批处理任务
开始 => 所有程序 => 附件 => 系统工具 => 任务计划
新建个任务计划了,然后根据要求配置下即可。