方法1: 设置归档空间大小
在配置数据库归档的时候,可以设置ARCH_SPACE_LIMIT 参数。 该参数表示归档文件的磁盘空间限制,如果归档文件总大小超过这个值,则在生成新归档文件前会删除最老的一个归档文件。
一般在设置时,是将该参数设置为0。 表示不受限制。 因为在数据库高可用方案中,会依赖归档文件,如果归档文件丢失,可能会对数据库同步产生影响。
方法2: 备份归档时删除
在脱机备份和联机备份中,备份归档时可以删除备份的归档文件,比如:
RMAN> backup archivelog lsn between 62835 and 63186 delete input database ‘/dm/dmdbms/data/cndba/dm.ini’ backupset ‘/dm/dmbak/arch_increment_01’;
方法3: 使用系统函数删除
通过SF_ARCHIVELOG_DELETE_BEFORE_TIME 和SF_ARCHIVELOG_DELETE_BEFORE_LSN 函数来直接删除指定时间或者LSN之前的归档文件。归档日志的有效 LSN 范围可以通过 V$ARCH_FILE 查看。
删除三天之前的归档日志:
SELECT SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 3);
删除 LSN 值小于 95560 之前的归档日志文件:
SELECT SF_ARCHIVELOG_DELETE_BEFORE_LSN(95560);
方法4: 直接在操作系统上删除
如果归档确认不在需要,也可以直接在操作系统上rm 删除。 当然,生产环境建议是对归档文件备份之后在删除,以防在数据库恢复时需要这些归档文件。