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
|
トピック・リストに戻る
まとめ
このチュートリアルでは、自動メモリー管理の使用方法を学習しました。
トピック・リストに戻る
このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。
|