1. 程式人生 > >Oracle 歸檔開啟切換和歸檔日誌刪除

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檔案
[[email protected] archivelog]# pwd
/u01/app/oracle/archivelog
[[email protected] archivelog]# find /u01/app/oracle/archivelog/ -mtime +30 -name '*.arc'
---執行刪除命令
find /u01/app/oracle/archivelog/ -mtime +30 -name '*.arc' -exec rm -f {} \;
[[email protected]

~]$ find /u01/app/oracle/archivelog/ -mtime +30 -name '*.arc' -exec rm -f {} \;
2 rman執行刪除
[[email protected] ~]$ 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