1.修改配置参数dmarch.ini
ARCH_SPACE_LIMIT
ARCH_SPACE_LIMIT:Redo日志归档空间限制,当同一节点的本地归档文件或远程归档文件达到限制值时,系统自动删除最早生成的归档日志文件.
0表示无空间限制,取值范围(1024M~2147483647M),对本地归档和远程归档有效,缺省为0
或是通过SQL修改
alter database modify archivelog 'DEST=/dmdbms/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';
2.修改配置参数dmarch.ini
ARCH_RESERVE_TIME:归档日志保留时间,单位分钟,取值范围(0~4294967294)只对远程归档和本地归档有效.服务器每隔5分钟检查是否存在超过保留时间的归档并删除.默认为0,表示不删除归档.
3.调用存储过程SF_ARCHIVELOG_DELETE_BEFORE_TIME
如:删除一天之前的归档日志
SELECT SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE-1);
可以创建执行脚本后台运行
[dmdba@localhost tmp]$ vi test.sh
#!/bin/bash
disql SYSDBA/'"dameng123"'@192.168.1.136:5236<<EOF
select sf_archivelog_delete_before_time(sysdate-1);
exit
EOF
4.调用存储过程SF_ARCHIVELOG_DELETE_BEFORE_LSN
该函数返回删除的归档日志文件个数,其中归档日志的有效LSN范围可以通过V$ARCH_FILE查看.
删除 LSN 值小于 95560 的归档日志文件
SELECT SF_ARCHIVELOG_DELETE_BEFORE_LSN(95560);
5.dmrachk工具
删除该时间点之前的文件
dmrachk ARCH_PATH=/dmdbms/arch CHECK=4 BEFORE_TIME=2022-05-16
删除该LSN之前的文件
dmrachk ARCH_PATH=/dmdbms/arch CHECK=4 BEFORE_LSN=4296300