7.7 割当て試行時のORA-04030プロセス・メモリー不足の解決

詳細およびビデオは、https://blogs.oracle.com/database/post/ora-04030を参照してください。

ORA-04030を解決するために必要なこの手順に従ってください。

ORA-04030の理解

ORA-04030: out of process memory when trying to allocate bytes」は、Oracleプロセスがオペレーティング・システム・メモリーを使い果たした場合に発生します。

これは、次のいずれかが原因で発生する可能性があります:
  • マシンの全メモリーの不足つまり、マシンには十分な物理RAMがありません。

    (または)

  • PGAと呼ばれるプログラム・グローバル領域内の指定された領域の不足

エラー・メッセージには、プロセスが割当てを試みたメモリー量が表示され、割当て失敗が発生した場所の詳細が示されます。

図7-31 ORA-04030内部エラー・コード: 引数


この図は、ORA-04030内部エラー・コードの引数を示しています

ORA-04030は、クライアント・プロセスまたはデータベース・プロセスのいずれかで発生する可能性があります。データベース・プロセスによって発生した場合、データベース・アラート・ログにエントリが作成されます。これは、詳細を含むトレース・ファイルを指すので、原因を特定するのに役立ちます。

図7-32 データベース・インスタンスのアラート・ログ


この図はデータベース・インスタンスのアラート・ログを示しています

ORA-04030エラーを解決するには、通常、その原因となったメモリー制限に対処する必要があります。

次が考えられます:
  • 使用可能なRAMの増加
  • PGAサイズの調整
  • リソース使用率の最適化
  • オペレーティング・システム制限の再検討
  • メモリー・リークの特定および解決

ORA-04030エラーのトラブルシューティング・ステップ

ORA-04030の基本的な解決ステップは次のとおりです:

  • AHFを使用して、ORA-04030サービス・リクエスト・データ収集(SRDC)を生成します
  • ORA-04030トラブルシューティング・ツールを使用して、推奨事項を検索します
  • 診断収集を使用して新しいSRを記録します

AHFを使用したORA-04030サービス・リクエスト・データ収集(SRDC)の生成

最初のステップでは、AHFを使用してORA-04030診断収集を生成します。

  1. ORA-04030が発生したマシンにログインし、Oracleユーザーとして次のコマンドを実行します:
    tfactl diagcollect –srdc ORA-04030

    関心のあるORA-04030の日時を入力するように求められます。不明な場合は、[Return]キーを押します。その後、データベース名の入力を求められます。

    たとえば:
    $ tfactl diagcollect -srdc ORA-04030
    Enter the time of the ORA-04030 [YYYY-MM-DD HH24:MI:SS,<RETURN>=ALL] : 
    
    Enter the Database Name [Required for this SRDC] :
    
    Components included in this collection: OS DATABASE CHMOS SOSREPORT
    
    Preparing to execute support diagnostic scripts.
        Executing DB Script srdc_db_sid_memorysizes_11gplus.sql on CDB12 with timeout of 300 seconds...
    
    Collecting data for all nodes
    
    TFA is using system timezone for collection, All times shown in PDT.
    Scanning files from 2024-03-25 10:07:36 PDT to 2024-03-25 10:40:07 PDT
    
    Collection Id : 20240325104016mymachine03
    
    Detailed Logging at : /opt/oracle.ahf/data/repository/srdc_ora4030_collection_Mon_Mar_25_10_40_19_PDT_2024_node_all/diagcollect_20240325104016_mymachine03.log
    
    Waiting up to 120 seconds for collection to start
    2024/03/25 10:40:24 PDT : NOTE : Any file or directory name containing the string .com will be renamed to replace .com with dotcom
    2024/03/25 10:40:24 PDT : Collection Name : tfa_srdc_ora4030_Mon_Mar_25_10_40_18_PDT_2024.zip
    2024/03/25 10:40:24 PDT : Collecting diagnostics from hosts : [mymachine04, mymachine03]
    2024/03/25 10:40:25 PDT : Getting list of files satisfying time range [03/25/2024 10:07:36, 03/25/2024 10:40:07]
    2024/03/25 10:40:25 PDT : Collecting Additional Diagnostic Information...
    2024/03/25 10:40:44 PDT : Collecting ADR incident files...
    2024/03/25 10:41:06 PDT : Executing TFA rdahcve with timeout of 600 seconds...
    2024/03/25 10:41:08 PDT : Executing IPS Incident Package Collection(s)...
    2024/03/25 10:41:10 PDT : Generating IPS Pack for 1 incidents on database cdb12
    2024/03/25 10:41:17 PDT : Executing SQL Script db_feature_usage.sql on cdb12 with timeout of 600 seconds...
    2024/03/25 10:41:17 PDT : Executing Collection for OS with timeout of 1800 seconds...
    2024/03/25 10:41:25 PDT : Executing Collection for SOSREPORT with timeout of 1860 seconds...
    2024/03/25 10:42:30 PDT : Completed Collection of Additional Diagnostic Information...
    2024/03/25 10:42:35 PDT : Completed Local Collection
    2024/03/25 10:42:35 PDT : Not Redacting this Collection on Exadata with no redaction option passed ..
    2024/03/25 10:42:35 PDT : Not Redacting this Collection ...
    2024/03/25 10:42:35 PDT : Remote Collection in Progress...
    2024/03/25 10:42:56 PDT : Collection completed on host: mymachine04 
    2024/03/25 10:42:56 PDT : Collection completed on host: mymachine03 
    2024/03/25 10:42:56 PDT : Completed collection of zip files.
    
    .---------------------------------------.
    |           Collection Summary          |
    +-------------+-----------+------+------+
    | Host        | Status    | Size | Time |
    +-------------+-----------+------+------+
    | mymachine04 | Completed | 21MB | 113s |
    | mymachine03 | Completed | 36MB | 131s |
    '-------------+-----------+------+------'
    
    Logs are being collected to: /opt/oracle.ahf/data/repository/srdc_ora4030_collection_Mon_Mar_25_10_40_19_PDT_2024_node_all
    /opt/oracle.ahf/data/repository/srdc_ora4030_collection_Mon_Mar_25_10_40_19_PDT_2024_node_all/mymachine04.tfa_srdc_ora4030_Mon_Mar_25_10_40_18_PDT_2024.zip
    /opt/oracle.ahf/data/repository/srdc_ora4030_collection_Mon_Mar_25_10_40_19_PDT_2024_node_all/mymachine03.tfa_srdc_ora4030_Mon_Mar_25_10_40_18_PDT_2024.zip

    完了すると、AHFはマシンごとにすべてをzipファイルにパッケージ化します。作業が進むにつれて、問題が発生したノードからのもののみが必要になります。

    これで、ステップ2に進むことができます。My Oracle Support ORA-04030トラブルシューティング・ツールを使用して、推奨事項を検索します。

ORA-04030トラブルシューティング・ツールを使用した推奨事項の検索

  1. My Oracle SupportにログインしてORA-04030を検索するか、My Oracle Support ORA-04030トラブルシューティング・ツールに移動して直接アクセスします。
  2. トラブルシューティング・ツールが表示されたら、右上の「Next」ボタンをクリックします。

    図7-33 My Oracle Support ORA-04030トラブルシューティング・ツール


    この図は、My Oracle Support ORA-04030トラブルシューティング・ツールを示しています

  3. 最初のラジオ・ボタンを選択して、TFAパッケージのアップロードを選択します。
  4. 次に、「Choose file」ボタンをクリックし、ステップ1でAHFが取得したzipファイルを選択します。
  5. 次に「Upload」ボタンを押します。

    図7-34 「Upload」の選択


    この図は、アップロードの選択オプションを示しています

  6. これがアップロードされたら、右上にある「Next」ボタンを再度クリックします。

    図7-35 「Upload」の選択


    この図は、アップロードの選択オプションを示しています

トラブルシューティング・ツールが診断収集の内容を分析し、ログ・エントリを既知の問題のリストと比較します。次に、最適と思われるMy Oracle Support (MOS)ナレッジ・ドキュメントが提示されます。このナレッジ・ドキュメントでは、処理方法がアドバイスされるか、ORA-04030が報告されているバグがいくつか提示されます。これを使用して、バグを修正したデータベース・リリース更新(RU)を検索できます。MOSのトラブルシューティング・ツールを使用しても解決策が見つからない場合や、さらにサポートが必要な場合は、Oracle サポートでSRを簡単に記録できます。

診断収集を使用して新しいSRを記録します

  1. 下部の「Create SR」ボタンを押下します。

    図7-36 Create SR


    この図は、「Create SR」オプションを示しています

  2. その後、次の内容を明確にするように求められます:
    • 製品
    • 製品バージョン
    • サポートID
    • オペレーティング・システム
    • SR重大度
  3. 次に、「Create SR」ボタンをクリックします。
    新しいSR番号が表示されます。

    図7-37 新しいSR


    この図は、新しいSRを示しています

    最初にアップロードしたAHF診断収集がSRにルーティングされ、それをOracle Supportが引き継ぎます。