程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle數據庫案例整理-Oracle系統運行時故障-SharedPool內存不足導致數據庫響應緩慢

Oracle數據庫案例整理-Oracle系統運行時故障-SharedPool內存不足導致數據庫響應緩慢

編輯:Oracle教程

1.1 現象描述

數據庫節點響應緩慢,部分用戶業務受到影響。
查看數據庫告警日志,開始顯示ORA-07445錯誤,然後是大量的ORA-04031錯誤和ORA-00600錯誤。
檢查數據庫日志,數據庫仍處於活動狀態的信息如下:
Sat Jul 17 07:51:52 2010
Thread 1 advanced to log sequence 266272
  Current log# 2 seq# 266272 mem# 0: /dev/rlv_redo121
  Current log# 2 seq# 266272 mem# 1: /dev/rlv_redo122

1.2 可能原因

由於數據庫用戶業務繁忙,活動會話較多,占用了大量的Shared Pool內存。同時Shared Pool內部參數配置不合理導致產生大量的內存碎片。因此,導致部分進程無法申請到足夠的Shared Pool內存,出現ORA-07445錯誤和ORA-04031錯誤。由於Shared Pool壓力越來越大,最後還引發ORA-00600錯誤。

1.3 處理步驟

oracle用戶登錄數據庫主機。 以sysdba用戶連接數據庫。

% sqlplus /nolog

SQL> conn /as sysdba;

Connected.
提高Shared Pool的“reserved pool”比例。

SQL> alter system set "_shared_pool_reserved_pct"=10 scope=spfile;

降低“reserved pool”的最小請求大小。

SQL> alter system set "_shared_pool_reserved_min_alloc"=4000 scope=spfile;

將Shared Pool子池個數減少到兩個。

SQL> alter system set "_kghdsidx_count"=2 scope=spfile;

分別關閉主備節點數據庫。

SQL> shutdown immediate

分別在主備節點重新啟動數據庫。

SQL> startup

查詢設置的參數。

SQL> select a.ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl "Instance Value"

from x$ksppi a, x$ksppcv b, x$ksppsv c

where a.indx = b.indx and a.indx = c.indx and a.ksppinm = '_shared_pool_reserved_pct';

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved