归档日志清理


当数据库归档日志满了后,将无法正常登入数据库,需要删除一部分归档日志才能正常登入数据库。   一、首先删除归档日志目录下的物理文件,删除时至少保留最近几天的日志用于数据恢复。 1、archive log list 2、show parameter recovery 二、删除归档日志物理文件后,可以正常登入数据库,但是到这一步还没完全把归档日志删除干净,因为ORACLE的控制文件中仍然记录着这些归档日志的信息。我们使用rman完成这一步。 1、$rman target / 2、RMAN> crosscheck archivelog all; 3、RMAN> list expired archivelog all; 4、RMAN> delete expired archivelog all; 5、RMAN> delete archivelog until time "sysdate-7";-----删除系统当前时间7天前的归档日志 6、RMAN> crosscheck archivelog all;------再次执行,检查归档日志是否已经被删除   三、为避免出现归档日志爆满的情况,可以设置定时任务清除部分归档日志

[oracle@node01 ~]$ cat del_arc.sh
#/bin/bash

source ~/.bash_profile

$ORACLE_HOME/bin/rman target / log=del_archivelog_`date +%Y%m%d_%H%M%S`.log << EOF
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog all completed before 'sysdate-7';
crosscheck archivelog all;
exit;
EOF

设置定时任务

30 0 1 * * /bin/sh /home/oracle/del_arc.sh