0) { obj.className = "imgborder_on"; } } } function hideImage(obj) { if (obj.className.substr(0, 10) == "imgborder_") { obj.src = eyeglass.src; obj.className = "imgborder_off"; } } function showAllImages() { imgs = document.images; for (i="0;" i < imgs.length; i++) { showImage(imgs[i]); } } function hideAllImages() { imgs = document.images; for (i="0;" i < imgs.length; i++) { hideImage(imgs[i]); } } //-->

自動メモリー管理によるメモリー管理の改善

目的

このチュートリアルでは、"メモリー不足"エラーをできるだけ回避するために自動メモリー管理を使用する方法について説明します。

所要時間

約15分

トピック

このチュートリアルでは、以下のトピックについて説明します。

 概要
 前提条件
 自動メモリー管理の使用
 まとめ

スクリーンショットの表示

 このアイコンの上にカーソルを置くと、 すべてのスクリーンショットがロードし、表示されます。 (警告: すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)

注: 各手順に関連したスクリーンショットのみをロードして表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

概要

Oracle Database 11gは、自動メモリー管理機能を使用して、ワークロードに従ってPGAおよびSGAコンポーネントのサイズ設定を自動化します。 メモリーを管理する最も簡単な方法は、自動的な管理と調整をデータベースに任せることです。 ほとんどのプラットフォームでこれを実現するには、ターゲット・メモリー・サイズ初期化パラメータ(MEMORY_TARGET)と最大メモリー・サイズ初期化パラメータ(MEMORY_MAX_TARGET)を設定する必要があります。 ターゲット・メモリー初期化パラメータは動的なため、データベースを再起動することなく、いつでもターゲット・メモリー・サイズを変更できます。 最大メモリー・サイズは、ターゲット・メモリー・サイズに誤って非常に大きい値を設定しないよう上限を設ける役割を果たします。 また、特定のSGAコンポーネントは簡単に縮小できない、あるいは最小サイズを維持する必要があるため、データベースはターゲット・メモリー・サイズをあまり低く設定出来ないようにします。

トピック・リストに戻る

前提条件

このチュートリアルを始める前に以下を確認してください。

1.

Oracle Database 11gがインストールされていること。

2.

作業ディレクトリ(wkdir)への amm.zipファイルのダウンロードおよび解凍と、作業ディレクトリへの移動が実行されていること。

トピック・リストに戻る

自動メモリー管理の使用

自動メモリー管理は、既存の自動共有メモリー管理の拡張機能です。 自動メモリー管理では、必要に応じてPGAメモリーを自動的にSGAメモリーに転送できます(逆も可能)。

次のシナリオは、PGAメモリーからSGAメモリーへの自動転送およびその逆の例を示しています。

以下の手順を実行して、自動メモリー管理の使用方法について学習します。

1.

User NameをOracleとして端末ウィンドウを開きます。 amm.zipファイルを解凍したディレクトリへ移動します。 User NameをSYSとしてSQL*Plusセッションを開始して、 amm_setup.sql スクリプトを実行します。 このスクリプトは、このOBEに必要なすべてのオブジェクトを作成します。 また、自動メモリー管理を有効にして、このOBEで実行されるパラレル問合せが、後でOracle Enterprise Managerで見やすい表示にするためにラージ・プール・メモリーを使用していることを確認します。 注: 本番環境でこのスクリプトを実行しないでください。

@amm_setup

 

2.

ブラウザ・ウィンドウを開いて、User Nameを SYSとしてOracle Enterprise Managerにログオンします。 Homeページで「 Server」タブをクリックします。 Serverサブページで「 Memory Advisors」リンクをクリックします。

3.

Memory Advisorsページで、 Automatic Memory Managementが有効になっていることを確認します。 このページで自動メモリー管理を有効または無効にできます。

 

4.

同じ端末セッションから、User Nameを amm(パスワードはamm)として接続し、 query1.sql スクリプトを実行します。 このスクリプトは、並列度を24に設定したパラレル問合せを開始します。 この文の実行には、多くのSGAを使用します。

                                                   
                                                     
@query1
                                                  
                                                

 

5.

同じ端末セッションから query2.sql スクリプトを実行します。 このスクリプトは、並列度を26に設定したパラレル問合せを開始します。 この文は、以前の実行よりも多くのSGAを使用します。

                                                   
                                                     
@query2
                                                  
                                                

 

6.

同じ端末セッションから query3.sql スクリプトを実行します。 このスクリプトは、メモリーで大きい配列を構築するPL/SQLプロシージャを起動します。 この実行には、多くのPGAを使用します。 少なくとも5分間実行できることを確認します。

                                                   
                                                     
@query3
                                                  
                                                

7.

Oracle Enterprise Managerセッションに戻って、Memory Advisorsページの上部の「 Refresh」ボタンをクリックします。 前3回の実行のメモリーへの影響を確認できます。 最初の2回の実行で多くのラージ・プール・メモリーを使用したため、PGAがSGAに転送されました。 3回目の実行で多くのPGAを使用したため、メモリーがSGAからPGAに転送されました。 "メモリー不足"エラーを発生させずに自動的にすべて実行されました。 MEMORY_TARGETパラメータの設定方法の包括的なアドバイスを取得するには、このページの上部の「 Advice」ボタンをクリックします。

 

8.

SQL*Plusセッションを終了します。 ファイルが配置されたディレクトリをポイントするように amm_cleanup.shスクリプトのディレクトリを変更します。 次に、 amm_cleanup.sh スクリプトを実行します。 このスクリプトは、ADDM分析を強制的に実行するために新しいAWRスナップショットを生成します。

./amm_cleanup.sh

 

トピック・リストに戻る

まとめ

このチュートリアルでは、自動メモリー管理の使用方法を学習しました。

トピック・リストに戻る

 このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。


Copyright (c) Oracle Corporation 2007 All Rights Reserved
Oracle Corporation発行の「Improving Memory Management with Automatic Memory Management」の翻訳版です。

この文書はあくまで参考資料であり、 掲載されている情報は予告なしに変更されることがあります。 万一、誤植などにお気づきの場合は、オラクル社までお知らせください。 オラクル社は本書の内容に関していかなる保証もしません。 また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleはオラクル社の登録商標です。
その他の会社名および製品名は、 あくまでその製品および会社を識別する目的にのみ使用されており、 それぞれの所有者の商標または登録商標です。