归档日志清理

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

posted @ 2018-06-21 22:48  orcl  阅读(2625)  评论(0编辑  收藏  举报