Oracle数据库归档日志清理

一、前言

在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';

posted on 2026-08-10 15:39  爱河  阅读(2)  评论(0)    收藏  举报

导航