一、前言
在Oracle数据库中,归档日志(Archive Logs)是用于恢复操作的备份日志文件,它们对于数据库的灾难恢复至关重要。随着时间的推移,这些归档日志可能会占用大量的磁盘空间。
二、实操
2.1、归档情况查看
SELECT dest_id, destination, status FROM v$archive_dest;
SHOW PARAMETER log_archive_dest_1;
2.2、当前生成归档文件
ALTER SYSTEM ARCHIVE LOG CURRENT;
2.3、当前生成归档文件
#linux 切换至oracle用户下执行
rman target /
2.4、检查所有归档日志
CROSSCHECK ARCHIVELOG ALL;
2.5、归档日志文件清理
# 查看所有归档日志
LIST ARCHIVELOG ALL;
# 删除所有过期、失效
DELETE EXPIRED ARCHIVELOG ALL;
# 删除指定路径下归档日志
DELETE ARCHIVELOG LIKE '/u01/app/oracle/product/19c/dbhome_1/dbs%';
# 检查所有归档日志
CROSSCHECK ARCHIVELOG ALL;
# 删除所有过期、失效
DELETE EXPIRED ARCHIVELOG ALL;
# 删除过期归档日志
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
# 删除90天之前归档日志
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-90';
# 删除指定时间之前所有归档日志
DELETE NOPROMPT ARCHIVELOG UNTIL TIME "TO_DATE('2025-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')";
2.6、日常归档日志清理命令
1、进入rman:
rman target /
2、先查看当前归档情况
LIST ARCHIVELOG ALL;
3、清理30天之前归档日志
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-30';