一條sql語句導致的資料庫宕機問題及分析(42天)
之前分享過一篇博文,是一條sql語句"導致"的資料庫宕機,上次是另有原因,這次真碰到一個案例,而且是在重要的環境上,希望大家引以為戒。
資料庫是基於Linux64的版本,版本是11.2.0.2.0,已經打了最新的psu.
資料庫的訪問使用者數大約在1000左右,當時檢視伺服器的cpu已經是100%了,有大約10個程序都是cpu 100%,資料庫邏輯讀也是超高,一秒鐘大約是接近百兆的情況,sga是12G,已用了sga的自動管理(sga_target=0), 檢視記憶體元件時發現buffer_cache已經有shrink的跡象,而且buffer_cache的min_size還是有一點小,就在可用範圍內給buffer cache 增大了幾百兆的樣子,生成了一個ADDM, 報告裡第一條就是希望設定sga_target為一個特定的值,效能可能會有一定的提升,當時想,sga_max_size都已經是12G了,設定sga_target=12G也沒有問題吧
就按照它的提示做了,
alter system set sga_target=12G;
Thread 1 advanced to log sequence 14054 (LGWR switch)
Current log# 2 seq# 14054 mem# 0: /dbtestPR1/oracle/TEST01/redolog_A2/redo/redo02A.log
Current log# 2 seq# 14054 mem# 1: /dbtestPR1/oracle/TEST01/redolog_B2/redo/redo02B.log
Wed Apr 09 20:07:10 2014
Archived Log entry 14090 added for thread 1 sequence 14053 ID 0xb8c6d509 dest 1:
Wed Apr 09 20:40:13 2014
Errors in file /opt/app/oracle/dbtestpr1/diag/rdbms/TEST01/TEST01/trace/TEST01_mman_27182.trc (incident=360075):
ORA-00600: internal error code, arguments: [kmgsb_resize_sga_target_1], [0], [768], [4], [], [], [], [], [], [], [], []
Incident details in: /opt/app/oracle/dbtestpr1/diag/rdbms/TEST01/TEST01/incident/incdir_360075/TEST01_mman_27182_i360075.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /opt/app/oracle/dbtestpr1/diag/rdbms/TEST01/TEST01/trace/TEST01_mman_27182.trc:
ORA-00600: internal error code, arguments: [kmgsb_resize_sga_target_1], [0], [768], [4], [], [], [], [], [], [], [], []
MMAN (ospid: 27182): terminating the instance due to error 822
Wed Apr 09 20:40:14 2014
opiodr aborting process unknown ospid (25518) as a result of ORA-1092
Wed Apr 09 20:40:14 2014
ORA-1092 : opitsk aborting process
Wed Apr 09 20:40:14 2014
Wed Apr 09 20:40:14 2014
opiodr aborting process unknown ospid (27776) as a result of ORA-1092opiodr aborting process unknown ospid (10547) as a result of ORA-1092
Wed Apr 09 20:40:14 2014
opiodr aborting process unknown ospid (7458) as a result of ORA-1092
Wed Apr 09 20:40:14 2014
Wed Apr 09 20:40:14 2014
ORA-1092 : opitsk aborting process
ORA-1092 : opitsk aborting process
Wed Apr 09 20:40:14 2014
ORA-1092 : opitsk aborting process
Wed Apr 09 20:40:14 2014
opiodr aborting process unknown ospid (30719) as a result of ORA-1092
Wed Apr 09 20:40:14 2014
ORA-1092 : opitsk aborting process
.......
ORA-1092 : opitsk aborting process
Wed Apr 09 20:40:14 2014
System state dump requested by (instance=1, osid=27182 (MMAN)), summary=[abnormal instance termination].
System State dumped to trace file /opt/app/oracle/dbtestpr1/diag/rdbms/TEST01/TEST01/trace/TEST01_diag_27176.trc
Instance terminated by MMAN, pid = 27182
檢視metalink,確實有這樣的一個bug.
Bug 10173135 - Resize SGA_TARGET crashes instance with ORA-600 [kmgsb_resize_sga_target_1] (Doc ID 10173135.8)
而且影響的版本如下:
Product (Component) |
Oracle Server (Rdbms) |
---|---|
Range of versions believed to be affected |
Versions BELOW 12.1 |
Versions confirmed as being affected |
11.2.0.211.2.0.111.1.0.7 |
Platforms affected |
Generic (all / most platforms affected) |
- 11.2.0.2
- 11.2.0.1
- 11.1.0.7
Platforms affectedGeneric (all / most platforms affected)
真是撞到槍口上了,查看了下,在11.2.0.3.0中才修復了這個問題。 然後自我總結了下,發現sga的自動管理操作還是需要謹慎,新特性的使用也是如此,一定要有足夠的把握才能使用。