Oracle 归档开启切换和归档日志删除

Oracle默认安装后,是没有开启归档模式的,需要手动开启。

开启归档
如果archive log模式下不能正常startup,则先恢复成noarchive log,startup成功后,再shutdown;
shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
shutdown immediate;

再次startup以archive log模式
shutdown immediate;
startup mount;
show parameter log_archive_dest;
alter database archivelog;
archive log list;
alter database open;

删除归档日志
手工删除os的归档日志后,在controfile中仍然记录着这些归档日志的信息,这时候需要删除
1 删除os文件
[root@localhost archivelog]# pwd
/u01/app/oracle/archivelog
[root@localhost archivelog]# find /u01/app/oracle/archivelog/ -mtime +30 -name '*.arc'
---执行删除命令
find /u01/app/oracle/archivelog/ -mtime +30 -name '*.arc' -exec rm -f {} \;
[oracle@localhost ~]$ find /u01/app/oracle/archivelog/ -mtime +30 -name '*.arc' -exec rm -f {} \;
2 rman执行删除
[oracle@localhost ~]$ rman target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> report obsolete;
RMAN> delete obsolete;
RMAN> list expired archivelog all;
或者直接执行
RMAN> delete archivelog all completed before 'sysdate -29';
--删除全部归档日志
delete noprompt archivelog all completed before 'sysdate'; --->该命令清除所有的归档日志
delete noprompt archivelog all; --->同上一命令
select * from V$FLASH_RECOVERY_AREA_USAGE;
select * from v$archived_log order by first_time desc
--脚本删除
#!/bin/bash
source /home/oracle/.bash_profile
#LOGFILE=/data/rman/rman_delete.log
#RMAN=$ORACLE_HOME/bin/rman
$ORACLE_HOME/bin/rman log=/home/oracle/del_arch$(date +%Y-%m-%d).log <<EOF
connect target sys/***@sid
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-1';
exit;
EOF

猜你喜欢

转载自www.cnblogs.com/yhq1314/p/9944917.html