归档日志清理
当数据库归档日志满了后,将无法正常登入数据库,需要删除一部分归档日志才能正常登入数据库。
一、首先删除归档日志目录下的物理文件,删除时至少保留最近几天的日志用于数据恢复。
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