oracle redo log operation
操作一臺測試庫,兩點左右時,系統相應突然變慢。感受很明顯。
很好奇,所以檢視了此時的作業系統執行情況。發現此時cpu佔用率比較高,使用率維持在50%以上(即idle<50%),wait也很高。於是根據top找到程式號到v$process.spid找到程式地址address,然後再由此找到相關session(v$session.paddr),發現是一個job。由於是測試庫(基本用作“資料”庫),關閉此job,效能有所提高。
不過還是覺得慢,這時找 系統程式沒什麼特別的了,所以做了一個awr。觀察發現,log file sync和log file parallel write等幾個log file相關的事件等待最長,判斷還是日誌檔案切換太頻繁而導致的等待(即切換時,下一個切換的日誌檔案還沒有寫完,導致等待)。
而這些日誌檔案還是跟其他資料檔案存放在一個磁碟分割槽上,這就跟加劇了此類問題。所以解決辦法是將日誌檔案遷移到另一個磁碟分割槽,並加大日誌檔案到80m(原來為50M,由於目標磁碟分割槽剩餘空間不是很足,所以只增加了30M每個)。
新增日誌組:
alter database add logfile group 4('/home/oracle/oradata/redologs/redo04.log') size 80m;
刪除日誌組:
alter database drop logfile group 1;
如果日誌組還在使用中(即active或current狀態下),則使用日誌檔案切換或強制檢查點來切換:
alter system checkpoint;
或
alter system swich logfile;
處理前的警告日誌資訊:
Thread 1 advanced to log sequence 39339
Current log# 2 seq# 39339 mem# 0: /home/oracle/db/product/10.2.0/db_1/oradata/orcl/redo02.log
Tue May 29 14:09:41 2012
Thread 1 cannot allocate new log, sequence 39340
Checkpoint not complete
Current log# 2 seq# 39339 mem# 0: /home/oracle/db/product/10.2.0/db_1/oradata/orcl/redo02.log
Thread 1 advanced to log sequence 39340
Current log# 3 seq# 39340 mem# 0: /home/oracle/db/product/10.2.0/db_1/oradata/orcl/redo03.log
Tue May 29 14:09:49 2012
SMON: Parallel transaction recovery tried
Tue May 29 14:11:01 2012
Thread 1 advanced to log sequence 39341
注意到有這樣的提示:
Thread 1 cannot allocate new log, sequence 39340
處理後的警告日誌資訊:
Thread 1 advanced to log sequence 39364
Current log# 2 seq# 39364 mem# 0: /home/oracle/oradata/redologs/redo02.log
Tue May 29 14:45:14 2012
Thread 1 advanced to log sequence 39365
Current log# 3 seq# 39365 mem# 0: /home/oracle/oradata/redologs/redo03.log
Tue May 29 14:47:23 2012
Thread 1 advanced to log sequence 39366
Current log# 1 seq# 39366 mem# 0: /home/oracle/oradata/redologs/redo01.log
Tue May 29 14:49:28 2012
此類警告資訊解除
很好奇,所以檢視了此時的作業系統執行情況。發現此時cpu佔用率比較高,使用率維持在50%以上(即idle<50%),wait也很高。於是根據top找到程式號到v$process.spid找到程式地址address,然後再由此找到相關session(v$session.paddr),發現是一個job。由於是測試庫(基本用作“資料”庫),關閉此job,效能有所提高。
不過還是覺得慢,這時找 系統程式沒什麼特別的了,所以做了一個awr。觀察發現,log file sync和log file parallel write等幾個log file相關的事件等待最長,判斷還是日誌檔案切換太頻繁而導致的等待(即切換時,下一個切換的日誌檔案還沒有寫完,導致等待)。
而這些日誌檔案還是跟其他資料檔案存放在一個磁碟分割槽上,這就跟加劇了此類問題。所以解決辦法是將日誌檔案遷移到另一個磁碟分割槽,並加大日誌檔案到80m(原來為50M,由於目標磁碟分割槽剩餘空間不是很足,所以只增加了30M每個)。
新增日誌組:
alter database add logfile group 4('/home/oracle/oradata/redologs/redo04.log') size 80m;
刪除日誌組:
alter database drop logfile group 1;
如果日誌組還在使用中(即active或current狀態下),則使用日誌檔案切換或強制檢查點來切換:
alter system checkpoint;
或
alter system swich logfile;
處理前的警告日誌資訊:
Thread 1 advanced to log sequence 39339
Current log# 2 seq# 39339 mem# 0: /home/oracle/db/product/10.2.0/db_1/oradata/orcl/redo02.log
Tue May 29 14:09:41 2012
Thread 1 cannot allocate new log, sequence 39340
Checkpoint not complete
Current log# 2 seq# 39339 mem# 0: /home/oracle/db/product/10.2.0/db_1/oradata/orcl/redo02.log
Thread 1 advanced to log sequence 39340
Current log# 3 seq# 39340 mem# 0: /home/oracle/db/product/10.2.0/db_1/oradata/orcl/redo03.log
Tue May 29 14:09:49 2012
SMON: Parallel transaction recovery tried
Tue May 29 14:11:01 2012
Thread 1 advanced to log sequence 39341
注意到有這樣的提示:
Thread 1 cannot allocate new log, sequence 39340
處理後的警告日誌資訊:
Thread 1 advanced to log sequence 39364
Current log# 2 seq# 39364 mem# 0: /home/oracle/oradata/redologs/redo02.log
Tue May 29 14:45:14 2012
Thread 1 advanced to log sequence 39365
Current log# 3 seq# 39365 mem# 0: /home/oracle/oradata/redologs/redo03.log
Tue May 29 14:47:23 2012
Thread 1 advanced to log sequence 39366
Current log# 1 seq# 39366 mem# 0: /home/oracle/oradata/redologs/redo01.log
Tue May 29 14:49:28 2012
此類警告資訊解除
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-731371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redo Log之一:理解Oracle redo logOracle Redo
- Oracle redo log重組Oracle Redo
- Oracle Dump Redo Log FileOracle
- Oracle redo解析之-1、oracle redo log結構計算Oracle Redo
- 修改oracle redo log的大小Oracle Redo
- Oracle redo log 常見操作Oracle Redo
- oracle redo internal 之 dump logfileOracle Redo
- oracle redo internal 之 dump logfileOracle
- oracle檔案管理之 redo logOracle
- 使用LOGMNR工具分析Oracle Redo Log和Archive Log教程Oracle RedoHive
- Oracle調整redo log日誌大小Oracle
- Oracle Standby Redo Log實驗兩則Oracle
- undo log和redo log
- ORACLE 11gr2 ASM redo log 增加OracleASM
- zt_Oracle Dump Redo Log File 說明Oracle
- 【操作】調整Online Redo Logs大小(Resizing Oracle Online Redo Logs)Oracle
- Oracle RAC+DG 調整redo/standby log fileOracle
- Oracle Dataguard Standby Redo Log的兩個實驗Oracle
- MySQL:Redo & binlogMySql
- mysql之 redo logMySql
- MySQL的Redo log 以及Bin logMySql
- oracle 線上修改online redo logfiles size 大小Oracle
- 恢復REDO Log丟失的Oracle資料庫Oracle資料庫
- oracle_redo*log,被移動後的恢復Oracle
- standby redo log的理解
- redo_log_switch_date
- redo log file 優化優化
- 【REDO】Oracle redo undo 學習Oracle Redo
- MySQL中的redo log和undo logMySql
- MySQL Undo Log和Redo Log介紹MySql
- Redo Log之二:遷移redo log到不同的儲存路徑
- oracle聯機日誌檔案REDO LOGFILE簡述Oracle
- Oracle OCP IZ0-053(Recovery Missing Active Redo Log)Oracle
- New redo log sizing advisor in Oracle10gOracle
- redo的等待log file sync和log file parallel write和redo size設定Parallel
- 【REDO】Oracle redo內部結構Oracle Redo
- 【REDO】Oracle redo advice-sqlOracle RedoSQL
- 【Mysql】三大日誌 redo log、bin log、undo logMySql