Oracle存档日志空间占满处理

  • oracle链接报错
1
# oracle无法连接,报错oracle:archiver error. Connect internal only, until freed
  • 连接到超级管理员
1
sqlplus / as sysdba
  • 检查flash recovery area的使用情况
1
2
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
# 查看ARCHIVELOG的 PERCENT_SPACE_USED是否已经99.xx
  • 计算flash recovery area已经占用的空间
1
2
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
# 单位G
  • 查看db_recovery_file_dest_size的空间
1
SQL> show parameter recover;
  • 修改db_recovery_file_dest_size的空间
1
2
3
# 大小根据硬盘空间
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10g;
# 退出登录即可
  • 清理一下archivelog归档日志
1
2
3
4
5
6
7
8
9
10
11
12
# cmd下,进入目标库
rman target /
远程:rman target sys/*****@orcl

# 清理所有的归档日志
crosscheck archivelog all;
delete expired archivelog all;
或者清理指定时间之前的日志(archivelog):
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志);
或者直接如下:
RMAN target sys/*****@orcl;
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
1
2
3
4
5
# 查看归档日志列表:
list archivelog all;

# 查看失效的归档日志列表:
list expired archivelog all;
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。