Oracle 11g データベースを使用したシステムでORA-04031
が発生し、DB更新がとまってしまう現象が数週間~数ヶ月おきに発生する環境があり、回避方法を探しています。
Oracleのサポートセンターを契約しようとしたのですが、システムを導入しているライセンス数分(顧客数百件分)の契約を求められたため断念しました。
どなたかお詳しい方がいらっしゃいましたらご教授いただけないでしょうか。
###現場環境
- DBサーバPC1台、クライアントPC数台のクローズドネットワーク
(DBのデータを更新するアプリはサーバPCで動作しています。)
- サーバPCのOS : Windows Server 2012 Standard(x64)
- サーバPCのメモリ : 4GB
- DBアプリケーション : Oracle 11g
- Oracleバージョン : 11.2.0.4.0
###現象発生時の状態
DBに接続するアプリ側ではサーバ、クライアント共にORA-04031
、ORA-0604
などDBへアクセスできない事を示すエラーが発生するのですが、Oracle本体ではアラートログなど一切出力されず、至って正常な状態に見えます。
現象が発生した際は、DBへ接続しているアプリの再起動(切断、再接続)では復旧できず、サーバPC再起動でのみ復旧する状態です。
###ORAエラー詳細
ORA-00604: 再帰SQLレベル1でエラーが発生しました。 ORA-04031: 共有メモリーの32バイトを割当てできません。("shared pool", "select ...
###Oracleメモリ設定
初期化パラメータを設定したスクリプトは以下の通りです。
SQL
1ALTER SYSTEM SET MEMORY_TARGET = 2048M SCOPE=SPFILE; 2ALTER SYSTEM SET MEMORY_MAX_TARGET = 2048M SCOPE=SPFILE; 3ALTER SYSTEM SET SHARED_POOL_SIZE = 512M SCOPE=SPFILE; 4 5ALTER SYSTEM SET SGA_TARGET = 0M SCOPE=SPFILE; 6ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0M SCOPE=SPFILE; 7ALTER SYSTEM SET LOG_BUFFER = 1048576 SCOPE=SPFILE; 8ALTER SYSTEM SET CURSOR_SHARING = 'SIMILAR' SCOPE=SPFILE; 9ALTER PROFILE DEFAULT LIMIT 10 failed_login_attempts unlimited 11 password_life_time unlimited 12 password_lock_time unlimited 13 password_grace_time unlimited;
※最初に現象が発生した際はMEMORY_TARGET(MAXも同様)を1GBで設定していたのですが、現象発生後に2GBに増やしました。(それでも現象が発生しています。)
###Oracleのパラメータ
- SHARED_POOL_RESERVED_SIZE : 51170508
- LARGE_POOL_SIZE : 0
- STREAMS_POOL_SIZE : 0
- SGA_MAX_SIZE : 1G
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/25 01:17
2018/04/25 17:49
2018/04/26 01:42 編集
2018/04/26 01:49
2018/04/26 03:45
2018/04/27 03:31