切換到oracle 用戶
sqlplus sys/pwd@kkk as sysdba
sqlplus /nolog
2. 看看archiv log所在位置
SQL> show parameter log_archive_dest;
3. 一般VALUE爲空時,可以用archive log list;檢查一下歸檔目錄和log sequence
4. 檢查flash recovery area的使用情況,可以看見archivelog已經很大了,達到96.62
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
5.
計算flash recovery area已經佔用的空間
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
6.
找到recovery目錄, show parameter recover
7
上述結果告訴我們,歸檔位置用的是默認值,放在flash_recovery_area下(db_recovery_file_dest目錄=/u01/app/oracle/flash_recovery_area)
8.
rman target sys/pass
9.
檢查一些無用的archivelog
RMAN> crosscheck archivelog all;
10.
刪除過期的歸檔
RMAN> delete expired archivelog all;
delete archivelog until time 'sysdate-1' ; 刪除截止到前一天的所有archivelog
11.
再次查詢,發現使用率正常,已經降到23.03
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
如果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;
如果還不行,則刪除一些archlog log
SQL> select group#,sequence# from v$log;
GROUP# SEQUENCE#
---------- ----------
1 62
3 64
2 63
原來是日誌組一的一個日誌不能歸檔
SQL> alter database clear unarchived logfile group 1;
alter database open;
最後,也可以指定位置Arch Log, 請按照如下配置
select name from v$datafile;
alter system set log_archive_dest='/opt/app/oracle/oradata/usagedb/arch' scope=spfile
或者修改大小
SQL> alter system set db_recovery_file_dest_size=3G scope=both;