【ARCHIVE】模擬因無法歸檔導致日誌無法切換故障及一般處理方法兩則
在歸檔模式下,如果系統無法順利完成歸檔,當日志切換時,即將被複寫的redo日
志沒有完成歸檔,日誌切換動作將無法完成。
模擬一下這個故障場景,給出兩種一般的處理方法。
1.模擬無法歸檔及redo日誌無法切換故障
1)修改與歸檔相關的引數
sys@secooler> alter system set log_archive_format='%t_%s_%r.arch' scope=spfile;
System altered.
sys@secooler> show parameter db_recovery_file_dest
NAME TYPE VALUE
--------------------------- ------------ --------------------------------------
db_recovery_file_dest string /oracle/ora11gR2/flash_recovery_area
db_recovery_file_dest_size big integer 4G
sys@secooler> alter system set db_recovery_file_dest='' scope=spfile;
System altered.
sys@secooler> alter system set log_archive_dest_1='location=/archivelog' scope=spfile;
System altered.
2)重新啟動資料庫使引數修改生效
sys@secooler> shutdown immediate;
sys@secooler> startup;
3)修改“/archivelog”目錄的屬性,模擬歸檔無法完成
secooler@secDB /oracle/ora11gR2/oradata$ su - root
Password:
[root@secDB ~]# chown -R root:root /archivelog/
4)此時嘗試歸檔
sys@secooler> alter system archive log current;
alter system archive log current
*
ERROR at line 1:
ORA-16014: log 2 sequence# 131 not archived, no available destinations
ORA-00312: online log 2 thread 1: '/oracle/ora11gR2/oradata/secooler/redo02.log'
模擬的現象已經出現,此時系統無法完成歸檔。
5)嘗試切換日誌
sys@secooler> alter system switch logfile;
此時系統將長時間處於hang住 的狀態。
2.故障處理方法一
既然是我們模擬的故障,處理這個故障的終極方法當然是將 “/archivelog”目錄的許可權屬性歸還給oracle使用者。
3.故障處理方法二
使用極端的clear日誌方法“臨時”處理這個問題。
1)單獨開啟一個session來檢視當前日誌組狀態
sys@secooler> select GROUP#,THREAD#,MEMBERS,ARCHIVED,STATUS from v$log;
GROUP# THREAD# MEMBERS ARC STATUS
---------- ---------- ---------- --- ----------------
1 1 1 NO CURRENT
2 1 1 NO INACTIVE
3 1 1 NO INACTIVE
可見,此時日誌即將切換到第2組日誌。
2)使用clear unarchived logfile命令清除即將覆蓋的日誌組
sys@secooler> alter database clear unarchived logfile group 2;
Database altered.
3)此時無法切換日誌的問題已經被臨時處理完畢
回到無法完成切換的視窗,檢視命令執行狀態,此時已經可以順利切換。
sys@secooler> alter system switch logfile;
System altered.
4.小結
使用clear日誌組的方法僅僅是權宜之計,在某些具體場景中可以考慮使用,但要充分理解這個動作背後對應的風險(比如恢復問題)。
當出現日誌無法切換或歸檔無法完成時,最好從長計議,發現故障的真實原因,從源頭上根除故障。
Good luck.
secooler
10.04.13
-- The End --
模擬一下這個故障場景,給出兩種一般的處理方法。
1.模擬無法歸檔及redo日誌無法切換故障
1)修改與歸檔相關的引數
sys@secooler> alter system set log_archive_format='%t_%s_%r.arch' scope=spfile;
System altered.
sys@secooler> show parameter db_recovery_file_dest
NAME TYPE VALUE
--------------------------- ------------ --------------------------------------
db_recovery_file_dest string /oracle/ora11gR2/flash_recovery_area
db_recovery_file_dest_size big integer 4G
sys@secooler> alter system set db_recovery_file_dest='' scope=spfile;
System altered.
sys@secooler> alter system set log_archive_dest_1='location=/archivelog' scope=spfile;
System altered.
2)重新啟動資料庫使引數修改生效
sys@secooler> shutdown immediate;
sys@secooler> startup;
3)修改“/archivelog”目錄的屬性,模擬歸檔無法完成
secooler@secDB /oracle/ora11gR2/oradata$ su - root
Password:
[root@secDB ~]# chown -R root:root /archivelog/
4)此時嘗試歸檔
sys@secooler> alter system archive log current;
alter system archive log current
*
ERROR at line 1:
ORA-16014: log 2 sequence# 131 not archived, no available destinations
ORA-00312: online log 2 thread 1: '/oracle/ora11gR2/oradata/secooler/redo02.log'
模擬的現象已經出現,此時系統無法完成歸檔。
5)嘗試切換日誌
sys@secooler> alter system switch logfile;
此時系統將長時間處於hang住 的狀態。
2.故障處理方法一
既然是我們模擬的故障,處理這個故障的終極方法當然是將 “/archivelog”目錄的許可權屬性歸還給oracle使用者。
3.故障處理方法二
使用極端的clear日誌方法“臨時”處理這個問題。
1)單獨開啟一個session來檢視當前日誌組狀態
sys@secooler> select GROUP#,THREAD#,MEMBERS,ARCHIVED,STATUS from v$log;
GROUP# THREAD# MEMBERS ARC STATUS
---------- ---------- ---------- --- ----------------
1 1 1 NO CURRENT
2 1 1 NO INACTIVE
3 1 1 NO INACTIVE
可見,此時日誌即將切換到第2組日誌。
2)使用clear unarchived logfile命令清除即將覆蓋的日誌組
sys@secooler> alter database clear unarchived logfile group 2;
Database altered.
3)此時無法切換日誌的問題已經被臨時處理完畢
回到無法完成切換的視窗,檢視命令執行狀態,此時已經可以順利切換。
sys@secooler> alter system switch logfile;
System altered.
4.小結
使用clear日誌組的方法僅僅是權宜之計,在某些具體場景中可以考慮使用,但要充分理解這個動作背後對應的風險(比如恢復問題)。
當出現日誌無法切換或歸檔無法完成時,最好從長計議,發現故障的真實原因,從源頭上根除故障。
Good luck.
secooler
10.04.13
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-659668/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 歸檔日誌無法歸檔導致資料庫hang住資料庫
- 因歸檔日誌無法歸檔造成的 oracle shutdown immediate無法關閉Oracle
- standby無法使用歸檔日誌問題處理
- 日誌 ** 序列號 ** 無法歸檔
- 【恢復】非歸檔模式下因誤刪除資料檔案導致資料庫無法OPEN的故障處理模式資料庫
- 一次dg 因密碼檔案與gap引起歸檔日誌無法應用的處理密碼
- 歸檔日誌滿導致的資料庫掛起故障處理資料庫
- oracle歸檔日誌滿了,導致無法啟動 ORA-03113Oracle
- VCS 切換後資料庫無法歸檔資料庫
- 11.2.0.3.2 RMAN無法恢復歸檔日誌
- 多個物化檢視導致物化日誌無法及時更新
- 歸檔日誌滿導致的資料庫掛起故障處理【轉載】資料庫
- 【問題處理】因ASM磁碟組空間不足導致資料庫例項無法啟動的故障處理ASM資料庫
- 【故障處理】【oerr】【grep】謹防grep“花哨”功能導致oerr工具無法使用
- 【ARCHIVE】使用startup mount force啟動資料庫後無法修改歸檔模式的模擬Hive資料庫模式
- 【問題處理】因誤修改inittab檔案導致Oracle 10gR2 CRS無法啟動Oracle 10g
- oracle LOGICAL standby 日誌無法應用處理Oracle
- 【故障處理】RAC環境第二節點無法歸檔的詭異問題處理
- Standby_file_management引數導致日誌無法應用
- 歸檔問題導致的資料庫無法啟動資料庫
- 11G flashback data archive 導致產生大量歸檔日誌Hive
- ORACLE的歸檔空間滿導致的監聽故障資料庫無法啟動Oracle資料庫
- 非歸檔下日誌檔案丟失的處理辦法
- 【故障恢復】因spfile修改錯誤導致資料庫無法啟動的恢復方法資料庫
- 【RAC】因虛擬機器配置檔案調整不完整導致RAC無法使用虛擬機
- archive log 歸檔日誌Hive
- ARCHIVE歸檔日誌爆滿故障ORA-00257Hive
- 無法訪問GitHub網站及無法正常操作倉庫的處理方法Github網站
- 【故障處理】手工刪除歸檔日誌導致RMAN備份時報ORA-19625錯誤
- 【故障處理】修改主機名導致oracle例項無法啟動暨如何修改hostnameOracle
- sql server日誌檔案總結及日誌滿的處理辦法SQLServer
- oracle archive log 歸檔日誌OracleHive
- 誤刪歸檔日誌除導致備份歸檔日誌失敗
- mysql因為事務日誌問題無法啟動MySql
- 應用使用JNDI,資料庫無法連線,導致的程序無法啟動問題處理資料庫
- 【問題處理】處理alert警告日誌中出現無法找到libocr*.so檔案問題
- Workstation服務無法啟動導致無法訪問檔案伺服器伺服器
- win10輸入法切換不了中文怎麼處理_win10輸入法無法切換中文如何修復Win10