Oracle数据库归档满,无法连接数据库

报错如下:

查看日志,导致异常连接的问题是归档日志满导致的


解决方法:

1、可以进入rman

使用rman删除归档

su - oracle

export ORACLE_SID=orcl

rman target /

crosscheck ARCHIVELOG all;

deletenopromptexpiredarchivelogall;

deletenopromptarchivelogall completedbefore'sysdate - 7';

查看归档使用率,和大小

进入sqlplus:

show parameter recovery

如果要增大归档目录:

alter system set db_recovery_file_dest_size =100G;

查看归档使用率:

select *from V$RECOVERY_AREA_USAGE;

这时我们九需要部署定时删除归档脚本

vi del.archivelog.sh

#!/bin/bash

source~/.bash_profile

#记录归档删除的日志

exec>>/home/del_log/log/bak_log/del_arch`date +%F-%H`.log

$ORACLE_HOME/bin/rman target / <

crosscheck archivelog all;

delete noprompt expired archivelog all;

delete noprompt archivelog until time'sysdate-7';

exit;

EOF

添加定时任务

crontab -e 

00* * */home/del_log/log/del.archivelog.sh2>&1>/dev/null&

2、无法进入sqlplus和rman 

1、物理删除归档

先确认归档路径,直接物理删除归档

2、停止监听

lsnrctl stop

3、强制关库

因为此时已经无法SQLPLUS登录了,选择强制关库。

ps-ef|grep ora_dbw0_$ORACLE_SID

kill -9 PID

4、修改参数文件重新启动数据库

sqlplus / as sysdba

create pfile='/tmp/pfile.ora' from spfile;

将快速恢复区修改大一点启动库,原来20,修改到40G。

vi /tmp/pfile.ora

*.db_recovery_file_dest_size=40960m

重新启动数据库:

sqlplus / as sysdba

startup pfile='/tmp/pfile.ora';

create spfile from pfile;

5、 RMAN删除归档

rman target /

crosscheck ARCHIVELOG all;

deletenopromptexpiredarchivelogall;

deletenopromptarchivelogall completedbefore'sysdate - 7';

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容