手动清理
原因:日志归档会在数据库表里存个信息,磁盘上存个dbf文件,用于恢复数据或者其他用途
表里的数据量默认保留最小7天,槽位满了后,新的数据会自动覆盖旧的数据,但磁盘上的dbf文件不会自动删除,这样磁盘占用就会越来越大
sql
SELECT name, value, isdefault FROM v$parameter WHERE name = 'control_file_record_keep_time';
这种情况不要rm去删dbf文件,这样可能会出现问题,使用RMAN进行清理,指令如下
bash
# 切换到oracle用户
su - oracle
# 1. 进入RMAN
rman target /
# 2. 执行CATALOG,让RMAN认识所有文件,控制文件里被覆盖的(如果文件多的话,要等,实测3TB的数据,两三分钟左右处理完)
RMAN> CATALOG START WITH '/opt/app/oracle/';
# 3. 确认新文件被加入
RMAN> LIST ARCHIVELOG ALL;
# 或者使用sql查也行(dba账号查)
SELECT count(0) FROM v$archived_log WHERE deleted = 'NO';
# 4. 再删一次(一样的,删的多就要等,实测两三分钟)
DELETE NOPROMPT ARCHIVELOG ALL;