5 Oracleインスタンスの管理

この章では、Oracleインスタンスに関するバックグラウンド情報およびインスタンスの管理手順について説明します。

この章の構成は、次のとおりです。

5.1 Oracleインスタンスおよびインスタンス管理の概要

Oracle Databaseシステムは、Oracle DatabaseとOracleインスタンス(Oracle Real Application Clusters環境では、複数のインスタンスを使用することが可能)で構成されます。

データベースは、ユーザー・データおよびメタデータを格納する一連のディスク・ファイルで構成されます。メタデータ(データに関するデータ)は、データベースの構造情報、構成情報および制御情報で構成されます。

Oracleインスタンス(データベース・インスタンスともいう)には、格納されたデータを操作するOracle Databaseのバックグラウンド・プロセス、およびバックグラウンド・プロセスの作業のために割り当てられた共有メモリーが含まれます。

それぞれのインスタンスには、システムID(SID)とも呼ばれるインスタンスIDがあります。ホスト・コンピュータに複数のOracle Databaseが存在し、それぞれが固有のデータファイル・セットを持っている可能性があるため、接続するインスタンスを識別する必要があります。ローカル接続では、オペレーティング・システムの環境変数ORACLE_SIDおよびORACLE_HOMEを設定して、インスタンスを識別します。リモート接続では、ネットワーク・アドレスとデータベース・サービス名を指定して、インスタンスを識別します。

Oracleインスタンスを起動し、データベースに対して情報の読取りおよび書込みを行う必要があります。Oracle Database Configuration Assistant(DBCA)ユーティリティの指示またはSQL文CREATE DATABASEを受け取ったときに、Oracleインスタンスによってデータベースが作成されます。

Oracleインスタンスが使用できない場合でも、データベース内のデータは安全ですが、他のユーザーまたはアプリケーションからはアクセスできません。

Oracleインスタンスのプロパティは、インスタンス初期化パラメータを使用して指定されます。インスタンスが開始されたとき、初期化パラメータ・ファイルが読み込まれ、インスタンスが適宜構成されます。

この項では、Oracleインスタンスおよびその管理に関するいくつかの概念について説明します。次の項目が含まれます。

関連項目:

Oracle Databaseインスタンスの概要は、『Oracle Database概要』を参照してください。

5.1.1 初期化パラメータについて

Oracleインスタンスの管理には、Oracleインスタンスの基本的な操作に影響を与えるパラメータの構成が含まれます。これらのパラメータは初期化パラメータと呼ばれます。Oracleインスタンスは、パラメータを起動する際にファイルから初期化パラメータを読み取ります。

インストール時に、Database Configuration Assistant (DBCA)で使用できる事前構成済のデータベース・ワークロードを選択すると、指定した環境で通常どおりに使用できるように初期化パラメータが最適化されます。データベース・ユーザーの数およびワークロードが増加するに従い、初期化パラメータの一部を変更する必要が生じることがあります。これらの変更は、Oracle Enterprise Manager Database Express (EM Express)の「初期化パラメータ」ページを使用するか、メモリー・アドバイザのようなOracle Databaseに用意されているアドバイザを使用して行うことができます。詳細は、メモリー・アドバイザを使用したメモリー使用量の最適化を参照してください。

ファイルに読み込まれた後、初期化パラメータはメモリーに保持されます。ここでそれらの値は動的に変更できます。パラメータ・ファイルには2種類あります。インスタンスの起動に使用するファイルのタイプにより、動的な初期化パラメータの変更が、データベースの停止および起動後も保持されるかどうかが決まります。パラメータ・ファイルのタイプは次のとおりです。

  • サーバー・パラメータ・ファイル

    サーバー・パラメータ・ファイル(SPFILEとして知られる)は、初期化パラメータ・ファイルの優先形式で、データベースが読取りおよび書込み可能なバイナリ・ファイルです。手動では編集しないでください。サーバー・パラメータ・ファイルは、Oracle Databaseが実行されているホスト・コンピュータ上に格納されます。EM ExpressまたはSQL*Plusを使用して1つ以上の初期化パラメータを変更する場合、またはOracle Databaseが自己チューニング目的で変更する場合に変更が実行されます。変更内容は、データベースの停止および起動後も保持されます。

    注意:

    サーバー・パラメータ・ファイル内の初期化パラメータを変更する場合は、変更が現行インスタンスにただちに反映されるように、インメモリーの値も変更するかどうかを指定できます。インメモリーの値を変更しない場合は、データベースを停止して再起動するまで変更は有効になりません。

  • テキスト初期化パラメータ・ファイル

    テキスト初期化パラメータ・ファイルは、Oracleインスタンスによる読取りは可能ですが、このインスタンスによる書込みは行われないテキスト・ファイルです。テキスト・エディタを使用してテキスト初期化パラメータ・ファイルを変更できますが、変更を有効にするにはOracleインスタンスを再起動する必要があります。ファイルのこのタイプを使用してインスタンスを開始した場合、EM Expressを使用する多くの初期化パラメータを動的に変更できますが、変更できるのは現行のインスタンスのみです。テキスト初期化パラメータ・ファイルを編集して同じ変更を行わないと、変更はデータベース・インスタンスを再起動したときに失われます。

SQL文を使用して、次のものを作成できます。

  • テキスト初期化ファイルに基づくサーバー・パラメータ・ファイル

  • すべての初期化パラメータの現在の値(インメモリーの値)に基づくサーバー・パラメータ・ファイル

  • サーバー・パラメータ・ファイルに基づくテキスト初期化パラメータ・ファイル

DBCAを使用してデータベースを作成すると、サーバー・パラメータ・ファイルが作成されます。このファイルはデータベースが起動するたびに作成されます。

関連項目:

5.1.2 バックグラウンド・プロセスについて

Oracleインスタンスのバックグラウンド・プロセスでは、メモリー構造の管理、ディスク上のファイルへの非同期I/Oによるデータの書込み、および通常のメンテナンス・タスクを実行します。バックグラウンド・プロセスは各ユーザー・プロセスの実行を行う複数のOracle Databaseプログラムによる処理のかわりに機能を統合します。よりよいパフォーマンスおよび信頼性のための並列化を提供するために他のOracle Databaseプロセスを監視します。

現在のバックグラウンド・プロセスはデータベースで使用される機能によって決定します。表5-1に、基本的な一部のバックグラウンド・プロセスの説明を示します。

表5-1 Oracle Databaseのバックグラウンド・プロセス

バックグラウンド・プロセス 説明

データベース・ライター(DBWn)

データベース・ライターはディスクにあるファイルに対してデータベース・バッファ・キャッシュから変更ブロックを書き込みます。Oracle Databaseは最高で36のデータベース・ライター・プロセスを行います。

ログ・ライター(LGWR)

ログ・ライター・プロセスは、ディスクにREDOログ・エントリを書き込みます。REDOログ・エントリはシステム・グローバル領域(SGA)のREDOログ・バッファで生成され、ログ・ライター・プロセスによってオンラインREDOログ・ファイルに順次書き込まれます。

チェックポイント(CKPT)

特定の時間に、SGA内の変更されたすべてのデータベース・バッファが、データベース・ライター・プロセス(DBWn)によってデータファイルに書き込まれます。このイベントはチェックポイントと呼ばれます。チェックポイント・プロセスがDBWnを呼び出し、データベースのデータファイルおよび制御ファイルを更新して、この更新の時間を記録します。

システム・モニター(SMON)

障害インスタンスが再開すると、システム監視でインスタンス・リカバリが実行されます。

プロセス・モニター(PMON)

ユーザー・プロセスが失敗した場合に、プロセス・モニターはリカバリを実行します。これはキャッシュをクリーン・アップし、失敗したプロセスが使用していたリソースを開放します。

アーカイバ(ARCn)

ログ・ファイルが一杯になるかログ・スイッチが発生した場合、アーカイバ・プロセスによってオンラインREDOログ・ファイルがアーカイブ記憶域にコピーされます。アーカイブ・プロセスを実行するためにデータベースはアーカイブ・ログ・モードである必要があります。詳細は、バックアップおよびリカバリの実行を参照してください。

管理性モニター(MMON)

このプロセスでは、次のような様々な管理関連のバックグラウンド・タスクが実行されます。

  • 指定のメトリックがしきい値に違反した場合のアラートの発行

  • 追加処理の生成によるスナップショットの作成

  • 最近変更されたSQLオブジェクトの統計の値の取得

ジョブ・キュー・プロセス(CJQ0およびJnnn)

ジョブ・キュー・プロセスでは、多くの場合バッチ・モードでユーザー・ジョブを実行します。ジョブは、1回以上実行するようスケジュールされるユーザー定義タスクです。

関連項目:

5.1.3 サーバーおよびクライアント・プロセスについて

Oracle Databaseでは、バックグラウンド・プロセスに加えて、ユーザー・プロセスまたはクライアント・プロセスの接続要求を処理するサーバー・プロセスを作成します。ユーザー接続は、次の異なる要素で構成されています。
  • Oracle Enterprise Manager(Enterprise Manager)、SQL*Plus、アプリケーションなどのユーザーのかわりとして機能するクライアント・プログラム

  • SQL文の解析や実行、およびクライアント・プログラムに取得された結果や戻された結果など、クライアント・プログラムにかわってデータベースへの接続を処理するサーバー・プロセスおよびクライアント・プログラムの作業の多くを実行するサーバー・プロセス

サーバー・プロセスは、専用または共有のいずれかです。サーバー・プロセスが専用の場合、Oracle Databaseは専用サーバー・モードで実行されます。サーバー・プロセスが共有の場合、Oracle Databaseは共有サーバー・モードで実行されます。専用サーバー・モードでは、各クライアント・プロセスに独自のサーバー・プロセスがあります。専用サーバー・プロセスは長時間実行の問合せおよび管理タスクに適していますが、アイドル・プロセスまたは多すぎる専用プロセスにより、結果的にリソースの使用が非効率的になる可能性があります。

共有サーバー・モードを使用すると、ユーザー接続ごとに専用サーバー・プロセスを使用する必要がなくなり、ユーザー接続ごとに必要とするメモリーが削減され、より多くのユーザーがデータベースにアクセスできるようになります。共有サーバー・モードでは、実行時間の短い問合せが頻繁に行われるため、複数のクライアント・プログラムをサポートするのに効果的です。

5.1.4 インスタンス・メモリー構造について

インスタンス・メモリー構造のサイズはデータベースのパフォーマンスに影響し、初期化パラメータによって制御されます。

インストール時に、データベースによる自動メモリー管理を有効にするか、またはインスタンス・メモリー構造の手動構成を選択できます。手動メモリー管理を選択すると、Oracle Database付属のアドバイザを使用して、メモリー・パラメータの適切な値を決定できます。

次の項では、監視とサイズ設定が可能な2つの重要なメモリー領域について説明します。

関連項目:

5.1.4.1 システム・グローバル領域
システム・グローバル領域(SGA)は、SGAコンポーネントと呼ばれる共有メモリー構造のグループで、1つのOracle Databaseインスタンスのデータと制御情報が含まれます。SGAは、すべてのサーバー・プロセスとバックグラウンド・プロセスで共有されます。SGAに格納されるデータには、キャッシュ・データ・ブロックや共有SQL領域などがあります。

表5-2に、SGAのコンポーネントをリストします。

表5-2 SGAコンポーネント

コンポーネント 説明

データベース・バッファ・キャッシュ

データベースに格納されているデータの問合せまたは変更を行う前に、データをディスクから読み取って、バッファ・キャッシュに格納する必要があります。データベースに接続されているすべてのユーザー・プロセスでバッファ・キャッシュへのアクセスを共有します。最適なパフォーマンスを得るには、バッファ・キャッシュに十分な容量を確保し、ディスクI/O操作が頻繁に行われないようにする必要があります。

共有プール

共有プール・キャッシュの情報はユーザー間で共有されます。

  • 再利用できるSQL文

  • ユーザー・アカウント・データ、表および索引の説明、および権限などのデータ・ディクショナリからの情報

  • データベースに保存されている実行可能コードのストアド・プロシージャ

REDOログ・バッファ

このバッファは、REDO情報がディスクに保存されている物理オンラインREDOログ・ファイルに書き込まれるまで、REDO情報をキャッシュしてパフォーマンスを向上させます。REDO情報とオンラインREDOログ・ファイルの詳細は、オンラインREDOログ・ファイルについてを参照してください。

ラージ・プール

このオプション領域は様々なサーバー・プロセスの大きいI/Oリクエストをバッファするために使用されます。

インメモリー領域

このオプション・コンポーネントには、インメモリー列ストア(IM列ストア)が含まれています。

IM列ストアには、迅速にスキャンできるように最適化された列形式で表のコピー、パーティションおよびマテリアライズド・ビューが格納されています。IM列ストアは、従来の行形式でデータを格納するデータベースバッファ・キャッシュを補完するものです。

Memoptimizeプール

このオプション・コンポーネントには、高速参照用のMEMOPTIMIZE FOR READ機能で使用するバッファが含まれています。

Javaプール

JavaプールはJava Virtual Machine(JVM)内のすべてのセッションに特化したJavaコードおよびデータに対して使用されているメモリーの領域です。

ストリーム・プール

Streamsプールは、Oracle Streams機能で使用されるメモリー領域です。Oracle Streamsの詳細は、『Oracle Streams概要および管理』を参照してください。

結果キャッシュ

結果キャッシュは問合せ結果をバッファします。問合せが、結果キャッシュに格納されている結果に対して実行されると、データベースは問合せを再実行するかわりに結果キャッシュから結果を戻します。このSGAコンポーネントは、頻繁に行う問合せの実行速度を向上させます。

関連項目:

5.1.4.2 プログラム・グローバル領域
プログラム・グローバル領域(PGA)は、サーバー・プロセスのデータおよび制御情報が含まれるメモリー領域です。これはサーバー・プロセスの開始時にOracle Databaseによって作成される非共有メモリーです。PGAへのアクセスは、サーバー・プロセスごとに排他的です。各サーバー・プロセスごとに1つのPGAが存在します。バックグラウンド・プロセスにも独自のPGAが割り当てられます。Oracle Databaseインスタンスに連結されるすべてのバックグラウンドおよびサーバー・プロセスに割り当てられるPGAメモリーの合計はインスタンスPGAメモリー合計と呼ばれ、個々のPGAの集合はインスタンスPGA合計、または単にインスタンスPGAと呼ばれます。

PGAメモリーの使用量とPGAの内容は、インスタンスが専用サーバー・モードと共有サーバー・モードのどちらで実行されているかによって異なります。

PGAは、SQL文を処理し、ログオンその他のセッション情報を保持するために使用されます。PGAの大部分は、ソートなどのSQL処理に使用する作業用メモリー領域であるSQL作業領域に使用されます。

関連項目:

5.1.5 インスタンスの起動および停止について

インストール後、Oracleインスタンスが起動し、データベース・アカウントを持つユーザーがアクセスできるようにデータベースがオープンされます。どこかの時点でインスタンスを停止して再起動する必要が生じることがあります。この項では、起動プロセスおよび停止プロセスについて説明します。

多くの場合、「Oracleインスタンスの起動および停止」という言葉と「データベースの起動および停止」という言葉は同じ意味で使用されます。

この項では、次の項目について説明します。

5.1.5.1 起動および停止の管理権限について
Oracleインスタンスを起動および停止するには、特別な接続権限でインスタンスに接続する必要があります。これらの権限には次の2つがあります。SYSDBAは完全に権限を付与されたデータベース管理者が対象で、SYSOPERはデータベースを起動および停止するがユーザーのオブジェクトにアクセスする権限を持たないユーザーが対象です。

Oracle Databaseを作成すると、SYSおよびSYSTEMの2つの初期管理ユーザー・アカウントが自動的に作成されます。この2つのユーザーは、データベース管理の完全な権限を持っていますが、最初はSYSOPER権限で接続できるのはユーザーSYSまたはSYSTEMのみです。したがって、SYSOPER権限を他のユーザーに付与するまでは、インスタンスを起動および停止するときに、ユーザーSYSまたはSYSTEMとしてOracleインスタンスに接続する必要があります。ユーザーSYSとして接続(ログイン)しているときは、AS SYSDBAに接続していることを常に指定する必要があります。

関連項目:

5.1.5.2 インスタンスの起動について
Oracleインスタンスを起動すると、通常は、データベースの状態がOPENになり、ユーザー接続できる状態になります。ただし、インスタンスを起動しても、データベースをMOUNTEDの状態でオープンしない場合があります。また、インスタンスを起動しても、データベースをマウントまたはオープンしないこともできます。このため、インスタンスの起動には3つの段階があります。
  1. 次のいずれかの方法でインスタンスを起動します。

    インスタンスは初期化パラメータ・ファイルを読み込み、システム・グローバル領域(SGA)メモリーを割り当て、バックグラウンド・プロセスを起動します。

  2. データベースをマウントすると、Oracleインスタンスによってデータベースの制御ファイルが開かれますが、データファイルは開かれません。ここで、データベースの状態はMOUNTであるとみなされます。この状態では、他のユーザーがデータベースにアクセスしているときには実行できない特定の管理機能を実行できます。このような機能の例として、オンラインREDOログ・ファイルのアーカイブの有効化および無効化などがあります。オンラインREDOログ・ファイルのアーカイブの詳細は、アーカイブREDOログ・ファイルについてを参照してください。

  3. パラメータ・ファイルおよび制御ファイルの読取り後にデータベースをオープンすると、データベースのオンラインREDOログ・ファイルおよびデータファイルが開かれます。ここで、データベースの状態はOPENになり、データへのユーザー・アクセスが可能になります。

データベースのデフォルトの起動モード(OPEN)では、3つの段階が順次完了されます。明示的に指定しないかぎり、インスタンスの起動、データベースのマウントおよびオープンが行われます。

5.1.5.3 インスタンスの停止について
インスタンスの停止は、インスタンスの起動の逆の操作です。Oracleインスタンスを停止する場合、デフォルト・モードはNORMAL停止で、ユーザーはデータベースに対して新しい接続を作成できませんが、現在接続されているすべてのユーザーがセッションを終了するまで停止処理は待機します。すべてのユーザーが切断されると、コミット済トランザクションがディスクに書き込まれ、データベース・ファイルが閉じ、インスタンスが停止します。ただし、ユーザーが自分で切断するまで待機しない場合(IMMEDIATEモード)、あるいはユーザーが切断される前に各ユーザーの現在のトランザクションを完了する場合(TRANSACTIONALモード)もあります。緊急の場合には、コミット済トランザクションがディスクに書き込まれるまで待機せずにデータベースを停止する(ABORTモード)こともできます。

インスタンスの停止には次の段階があります。

  1. すべてのユーザーがそのセッションを終了するか、または切断されると、Oracle Databaseはシステム・グローバル領域(SGA)内のデータをデータファイルおよびオンラインREDOログ・ファイルに書き込みます。チェックポイントがデータファイル上で実行されて、そのヘッダーがインスタンスの停止時点でカレントとマーク付けされます。データファイルとオンラインREDOログ・ファイルが閉じ、データベースの状態がCLOSEDになります。制御ファイルはインスタンスに対してオープンされたままになります。

  2. Oracleインスタンスは制御ファイルで正しく停止されるのを記録するためデータベースおよび更新関連エントリをディスマウントします。制御ファイルはクローズ状態になります。ここで、データベースはクローズされディスマウントされた状態になります。インスタンスはNOMOUNT状態です。

  3. Oracleインスタンスはバックグラウンド・プロセスを停止し、SGAが使用している共有メモリーを割当て解除します。

SHUTDOWN ABORTまたは異常終了が発生すると、オープン状態のデータベースのインスタンスはクローズされ、データベースはただちに停止されます。Oracle Databaseは、SGAのバッファ内のデータをデータファイルとREDOログ・ファイルに書き込みません。データベースを再度開くにはインスタンスのリカバリが必要であり、この処理はOracle Databaseで自動的に行われます。

5.2 Oracleインスタンスの停止および起動

この項では、Oracleインスタンスの起動または停止に使用できる2つの方法についての操作を説明します。

5.2.1 SQL*Plusを使用した停止および起動

SQL*Plusを使用して、Oracleインスタンスを停止および起動できます。

SQL*PlusでOracleインスタンスを停止および起動するには、次の手順を実行します。

  1. SQL*Plusを起動し、データベースに接続します。
  2. SQL*Plus SHUTDOWNコマンドを発行します。
    SQL> SHUTDOWN
    

    データベース・インスタンスが停止されます。

    SHUTDOWNコマンドのNORMAL句はオプションです(これがデフォルトの停止方法であるため)。

    その他のSHUTDOWNコマンド・オプションを使用するタイミングの詳細は、インスタンスの停止についてを参照してください。

  3. SQL*Plus STARTUPコマンドを発行して、データベースを再起動します。
    SQL> STARTUP
    

    データベース・インスタンスが再起動されます。

    その他のSTARTUPコマンド・オプションを使用するタイミングの詳細は、インスタンスの起動についてを参照してください。

5.2.2 Windowsサービス・プログラムを使用した停止および起動

Windowsでは、「コントロール パネル」の「サービス」プログラムを使用してOracle Databaseを起動および停止することもできます。次のサービスも起動または停止する必要があります。
  • OracleServiceSID: 使用するOracleインスタンス。

  • OracleORACLE_HOMETNSListener: 使用するリスナー。リスナーには、データベースに接続するクライアントが必要です。

前述のサービス名では、SIDはインスタンスのシステム・システム識別子を、ORACLE_HOMEはOracleホーム名を表します。

Oracle Databaseサービスを起動または停止するには、次の手順を実行します。

  1. 「スタート」をクリックし、「コントロール パネル」を選択します。

    「コントロール パネル」ウィンドウが開きます。

  2. 「管理ツール」アイコンをダブルクリックし、「サービス」アイコンをダブルクリックします。

    サービス・ウィンドウを開くと、ご使用のシステムで使用可能なすべてのWindowsのサービスが表示されます。

  3. このセクションの先頭にリストされているOracle Databaseサービスに移動します。たとえば、SIDがorclの場合は、次のサービスへ移動します。

    • OracleServiceORCL

    • OracleOraDb11g_home1TNSListener

  4. 各サービスに対し、次の手順を使用してサービスを開始するか終了します。

    1. サービス名を選択します。

    2. 「アクション」メニューで、「開始」または「停止」をクリックします。

5.3 初期化パラメータの表示と変更

この項では、データベースの初期化パラメータ設定を参照する方法およびこれらのパラメータを変更する方法を提供します。データベースの初期化パラメータは、次の3つのいずれかの方法で変更できます。
  • インスタンスが停止されるまで: 初期化パラメータの新しい値が、現在実行されているインスタンスに適用されますが、データベースを再起動すると、初期化パラメータ値は前の設定に戻されます。

  • 現在から初期化パラメータが再度変更されるまで: 変更が現在実行中のインスタンスに適用されて、サーバー・パラメータ・ファイルにも保存されます。初期化パラメータへの変更は、データベースの再起動時にも保持されます。

  • データベースの再起動時: 初期化パラメータの新しい値がサーバー・パラメータ・ファイルに記録されますが、現在実行されているインスタンスには適用されません。変更はデータベースの再起動時にのみ有効になります。

注意:

ALTER SYSTEM文を使用して初期化パラメータを変更する場合、これらの3つのシナリオは、それぞれALTER SYSTEM SQL文のSCOPE=MEMORYSCOPE=BOTHSCOPE=SPFILE句の使用に対応します。

初期化パラメータを表示または変更するには、次の手順を実行します。

  1. Oracle Enterprise Manager Database Express (EM Express)の「構成」メニューから「初期化パラメータ」を選択します。

    「初期化パラメータ」ページが表示されます。

    初期化パラメータ・ページには2つのタブがあります。

    • 現行: このタブ(デフォルト)には現在Oracleインスタンスで(メモリー内で)アクティブである初期化パラメータの値がすべて表示されます。

    • SPFile: このタブにはサーバー・パラメータ・ファイル(SPFILE)の初期化パラメータ設定が表示されます。このタブはサーバー・パラメータ・ファイルを使用して現行のインスタンスが開始されたときのみ存在します。ファイルの場所はタブの上部に表示されます。

      注意:

      プラガブル・データベース(PDB)では、「初期化パラメータ」ページに「PDB変更可能」列が表示されます。PDBレベルで変更可能な各初期化パラメータには、「PDB変更可能」列にチェック・マークが付いています。

      「PDB変更可能」列にチェック・マークが付いていないPDBの初期化パラメータは、ルートでのみ設定および変更が可能で、ルートに設定されている値はマルチテナント・コンテナ・データベース(CDB)内の各PDBに適用されます。

    個々の初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

  2. (オプション)いずれかのタブで次のいずれかまたは両方を実行して、表示される初期化パラメータの数を削減します。

    • 「検索」フィールドにテキストを入力します。

    • 「検索」フィールドの隣の「変更済」または「基本」オプションを選択して、変更された初期化パラメータまたは基本初期化パラメータのいずれかに表示を限定します。

    たとえば、パラメータ名にDESTというテキストが含まれる初期化パラメータのみを表示するには、「検索」フィールドにdestと入力します。EM Expressにより初期化パラメータのリストがそれに応じて制限されます。

  3. 現在実行されているインスタンスの初期化パラメータのみを変更する(インスタンス再起動後は変更内容が保持されないようにする)には、次の手順を実行します。

    1. 「現行」タブで、値を変更する初期化パラメータを選択します。

      注意:

      パラメータを選択した際、「設定」ボタンが使用可能にならない場合、このパラメータは動的ではありません(つまり、現在のインスタンスでは変更できません)。

    2. 「設定」ボタンをクリックします。

      初期化パラメータの設定ページが表示されます。

    3. 「値」列に初期化パラメータの新しい値を入力します。

    4. 「有効範囲」フィールドで、「メモリー」が選択されていることを確認します。設定した値は、インスタンス再起動後は保持されません。

    5. (オプション)「コメント」列に、変更の理由を説明するテキストを入力します。

    6. 「OK」をクリックします。

      確認メッセージが表示されます。

  4. 現在実行されているインスタンスの初期化パラメータを変更し、またデータベース・インスタンス再起動後も保持される変更内容をサーバー・パラメータ・ファイルに記録するには、次の手順を実行します。

    1. 「現行」タブで、値を変更する初期化パラメータを選択します。

      注意:

      パラメータを選択した際、「設定」ボタンが使用可能にならない場合、このパラメータは動的ではありません(つまり、現在のインスタンスでは変更できません)。

    2. 「設定」ボタンをクリックします。

      初期化パラメータの設定ページが表示されます。

    3. 「有効範囲」フィールドで、「メモリー」「SPFile」の両方が選択されていることを確認します。設定した値は、インスタンス再起動後も保持されます。

      注意:

      「SPFile」オプションが使用できない場合、データベース・インスタンスにはSPFILEがなく、インスタンスに加えられた変更は、インスタンス再起動後は保持されません。

    4. (オプション)「コメント」列に、変更の理由を説明するテキストを入力します。

    5. 「OK」をクリックします。

      確認メッセージが表示されます。メッセージには「SQL表示」ボタンが含まれます。「SQL表示」ボタンをクリックすると、実行されたSQL文が表示されます。

  5. 現在のインスタンスには影響を与えず、次回データベース再起動時にのみ変更内容が有効になるようにサーバー・パラメータ・ファイルの初期化パラメータのみを変更するには、次の手順を実行します。

    1. 「SPFile」をクリックすると、「SPFile」タブが表示されます。

    2. 値を変更する初期化パラメータを選択します。初期化パラメータが「SPFile」タブに表示されない場合、「現行」タブで初期化パラメータを選択します。

    3. 「設定」ボタンをクリックします。

      初期化パラメータの設定ページが表示されます。

    4. 「有効範囲」フィールドで、「SPFile」を選択します。

      データベースの再起動によって初期化パラメータをリセットできない場合、「有効範囲」フィールドのデフォルトは「SPFile」となり、「メモリー」オプションは表示されません。

    5. 「値」列に初期化パラメータの新しい値を入力します。

    6. (オプション)「コメント」列に、変更の理由を説明するテキストを入力します。

    7. 「適用」をクリックします。

      確認メッセージが表示されます。

注意:

初期化パラメータへの変更はアラート・ログにALTER SYSTEM文として記録されます。アラート・ログの詳細は、Oracle Database管理者ガイドを参照してください。

5.4 メモリーの管理

この項では、Oracleインスタンスのメモリー管理に関するバックグラウンド情報を提供し、Oracleインスタンスのメモリーの割当てを調整する方法についての操作を説明します。次の項目が含まれます。

5.4.1 メモリー管理について

メモリー管理では、データベースでの需要の変化に応じて、Oracleインスタンスのメモリー構造の最適なサイズを維持する必要があります。管理の対象となるメモリーは、システム・グローバル領域(SGA)メモリーとインスタンスのプログラム・グローバル領域(PGA)メモリーです。インスタンスPGAメモリーは、すべての個別PGAに割り当てられているメモリーの集合です。

Oracle Database 11gリリース(11.1)から、データベースでSGAメモリーとインスタンスPGAメモリーを完全に管理できるようになりました。インスタンスで使用される合計メモリー・サイズを指定するだけで、Oracle Databaseが必要に応じてSGAとインスタンスPGAの間でメモリーを動的に交換し、処理ニーズに対応します。この機能を自動メモリー管理と呼びます。このメモリー管理モードでは、データベースは個別SGAコンポーネントのサイズとインスタンスPGAのサイズも動的にチューニングします。

SGAとインスタンスPGAのサイズをより直接的に制御するには、自動メモリー管理を無効化し、自動共有メモリー管理を有効化します。

  • 自動共有メモリー管理では、SGAのターゲット・サイズと最大サイズを設定します。これによりOracle Databaseでは、SGAの合計サイズが指定したターゲットに合わせてチューニングされ、すべてのSGAコンポーネントのサイズも動的にチューニングされます。

  • 自動共有メモリー管理を有効化すると、自動PGAメモリー管理も有効化できます。自動PGAメモリー管理では、Oracle DatabaseによりインスタンスPGAのメモリー管理が自動的に実行されます。オプションで、インスタンスPGAのターゲット・サイズを設定できます(そうすると、データベースによりインスタンスPGAのサイズがターゲットに合わせてチューニングされ、個別PGAのサイズも動的にチューニングされます)。

個別SGAコンポーネントのサイズを完全に制御するには、自動メモリー管理と自動共有メモリー管理の両方を無効化します。これを、手動共有メモリー管理と呼びます。このモードでは、複数の個別SGAコンポーネントのサイズを設定することで、SGA全体のサイズを決定します。その後、個別SGAコンポーネントを継続的に手動でチューニングします。

手動共有メモリー管理モードは、熟練したDBAのみを対象としています。このモードでは自動PGAメモリー管理は有効なままですので注意してください。

注意:

自動PGAメモリー管理を無効化することは可能ですが、お薦めしないため、このマニュアルでは説明されていません。

表5-3は、データベース・インスタンスに設定可能な各種メモリー管理モードをまとめたものです。

表5-3 Oracle Databaseメモリー管理モード

メモリー管理モード ユーザー設定 Oracle Databaseによる自動チューニング

自動メモリー管理

  • このインスタンスの合計メモリー・サイズ

  • (オプション)このインスタンスの最大メモリー・サイズ

  • SGAの合計サイズ

  • SGAコンポーネント・サイズ

  • インスタンスPGAのサイズ

自動共有メモリー管理と自動PGAメモリー管理

(自動メモリー管理は無効)

  • SGAターゲット・サイズ

  • (オプション)SGAの最大サイズ

  • (オプション)インスタンスPGAのターゲット・サイズ

  • SGAコンポーネント・サイズ

手動共有メモリー管理と自動PGAメモリー管理

(自動メモリー管理と自動共有メモリー管理は無効)

  • 共有プール・サイズ

  • バッファ・キャッシュ・サイズ

  • Javaプール・サイズ

  • ラージ・プール・サイズ

  • (オプション)インスタンスPGAのターゲット・サイズ

  • インスタンスPGAのサイズ

注意:

自動メモリー管理は、一部のプラットフォームでは使用できません。サポートされているプラットフォームの詳細は、Oracle Database管理者ガイドを参照してください。

データベースをインストールする際に基本インストール・オプションを選択すると、自動メモリー管理が有効になります。拡張インストールを選択する場合、Database Configuration Assistant (DBCA)によって、3つのメモリー管理モードから選択できるようになります。自動メモリー管理をお薦めします。

どのメモリー管理モードを選択しても、データベースまたはホスト・コンピュータの変更を要求してメモリー設定を調整する場合があります。メモリー設定を調整する理由は次のとおりです。

  • メモリー関連のアラートまたはエラー・メッセージを受け取る。

  • 自動データベース診断モニター(ADDM)からメモリー関連の推奨事項を受け取る。

  • 将来的なメモリー需要の増大を見越してメモリーのサイズを設定する。

メモリー・アドバイザを使用すると、メモリー・サイズの調整に役立ちます。メモリー・アドバイザを使用する例については、メモリー設定の変更: 自動共有メモリー管理を参照してください。

注意:

メモリー管理に使用する初期化パラメータはマルチテナント・コンテナ・データベース(CDB)のルートに設定され、これらのパラメータに設定された値はCDB内のすべてのプラガブル・データベース(PDB)に適用されます。

5.4.2 自動メモリー管理の有効化

データベースのインストールおよび構成時に自動メモリー管理を有効化しなかった場合は、熟練したDBAが明確な理由によりメモリー・サイズを手動でチューニングする場合を除き、インストール後に有効化することをお薦めします。自動メモリー管理では、Oracleインスタンスがすべてのメモリー・コンポーネントを動的にチューニングし、ワークロードの変化に合わせてパフォーマンスを最適化します。

自動メモリー管理を有効にするには、次の手順を実行します。

  1. SQL*Plusを起動して、SYSDBAユーザーとしてデータベースに接続します。

  2. MEMORY_TARGETの最小値を次の方法で計算します。

    1. 次のSQL*Plusコマンドを入力して、SGA_TARGETおよびPGA_AGGREGATE_TARGETの現行サイズを確認します。

      SHOW PARAMETER TARGET
      

      SQL*Plusによって、すべての初期化パラメータの値が、パラメータ名にTARGETが付加されて表示されます。

      NAME                          TYPE        VALUE
      ------------------------------ ----------- ----------------
      archive_lag_target             integer     0
      db_flashback_retention_target  integer     1440
      fast_start_io_target           integer     0
      fast_start_mttr_target         integer     0
      memory_max_target              big integer 0
      memory_target                  big integer 0
      parallel_servers_target        integer     32
      pga_aggregate_target           big integer 29M
      sga_target                     big integer 356M
      

      または、初期化パラメータの表示と変更の説明のとおり、Oracle Enterprise Manager Database Express (EM Express)の「初期化パラメータ」ページの「検索」フィールドにTARGETと入力し、すべての初期化パラメータの値を文字列TARGETとともにパラメータ名に表示できます。

    2. 次の問合せを実行して、データベースの起動以降に割り当てられた最大インスタンス・プログラム・グローバル領域(PGA)を確認します。

      SQL> select value from v$pgastat where name='maximum PGA allocated';
            
                 VALUE
            ----------
             246844416
      

      246844416バイトは約235Mです。

    3. 手順2.bおよびPGA_AGGREGATE_TARGETの問合せの結果を比較して最大値を算定します。この値にSGA_TARGETを加算します。

      memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)
      

      たとえば、前述のようにSGA_TARGETが356M、PGA_AGGREGATE_TARGETが29Mで、割当て済の最大PGAが235Mと確認された場合、MEMORY_TARGETは591M (356M + 235M)以上にする必要があります。

  3. 使用するMEMORY_TARGETの値を選択します。

    この値は、手順2で計算した最小値にするか、または使用可能な物理メモリーが十分ある場合はこれより大きい値を使用できます。

  4. MEMORY_MAX_TARGET初期化パラメータについては、予測可能な範囲で、データベースに割り当てる予定の最大メモリー量に決定します。つまり、システム・グローバル領域(SGA)とインスタンスPGAのサイズの合計の最大値を確認します。この値は、前述の手順で選択したMEMORY_TARGETの値以上に設定できます。

  5. 次のいずれかの操作を行います。

    • Oracle Databaseインスタンスをサーバー・パラメータ・ファイルを使用して起動(Database Configuration Assistant (DBCA)を使用してデータベースを作成した場合のデフォルト)した場合は、次のSQL*Plusコマンドを入力します。

      ALTER SYSTEM SET MEMORY_MAX_TARGET = nM SCOPE = SPFILE;
      

      nは手順4で計算した値です。

      SCOPE = SPFILE句を指定すると、サーバー・パラメータ・ファイル内の値のみが設定され、実行中のインスタンスに対する値は設定されません。MEMORY_MAX_TARGETは動的な初期化パラメータではないため、このSCOPE句を組み込む必要があります。

      または、初期化パラメータの表示と変更の説明のとおり、EM Expressの「初期化パラメータ」ページでMEMORY_MAX_TARGET初期化パラメータを選択して、「設定」をクリックし、SPFileの「有効範囲」を指定して新しい値を設定できます。

    • インスタンスをテキスト形式の初期化パラメータ・ファイルを使用して起動した場合は、ファイルを手動で編集して次の文を組み込みます。

      memory_max_target = nM (650M for this example)
      memory_target = mM (591M for this example)
      

      nは手順4で決定した値、mは手順3で決定した値です。

      注意:

      テキスト形式の初期化パラメータ・ファイルでは、MEMORY_MAX_TARGETの行を省略してMEMORY_TARGETの値を指定した場合、データベースによって、MEMORY_MAX_TARGETMEMORY_TARGETの値に自動的に設定されます。MEMORY_TARGETの行を省略してMEMORY_MAX_TARGETの値を含める場合、MEMORY_TARGETパラメータのデフォルトは0になります。起動後、MEMORY_MAX_TARGETの値を超えないかぎり、MEMORY_TARGETを0以外の値に動的に変更できます。

  6. データベースを停止して再起動します。

    Oracleインスタンスの停止および起動を参照してください。

  7. EM Expressの「構成」メニューから「メモリー」を選択します。

    メモリー管理ページが表示されます。「メモリー設定」セクションの「メモリー管理」の値は「自動」です。これは、自動メモリー管理がデータベースに対して有効であることを示しています。このページに表示される初期化パラメータは、MEMORY_MAX_TARGETに加え指定された値です。

  8. Oracle Databaseインスタンスをサーバー・パラメータ・ファイルを使用して起動した場合は、次の初期化パラメータ値にこれらの変更を加えます。

    MEMORY_TARGET = nM; (591M for this example)
    SGA_TARGET = 0;
    PGA_AGGREGATE_TARGET = 0;
    

    これらの初期化パラメータの値は、EM Expressの「初期化パラメータ」ページでSPFileの範囲を指定して設定することも可能です。詳細は、初期化パラメータの表示と変更を参照してください。

    注意:

    この手順では、SGAとインスタンスPGAのサイズが必要に応じて制限なくチューニングされるように、SGA_TARGETPGA_AGGREGATE_TARGETを0(ゼロ)に設定するように指示しています。これらのパラメータ値を0(ゼロ)に設定する文を削除し、いずれかまたは両方の値を正数にしておくことができます。この場合、値はSGAまたはインスタンスPGAのサイズの最小値として機能します。

関連項目:

メモリー管理について

5.4.3 メモリー設定の変更: 自動メモリー管理

自動メモリー管理のメモリー設定を変更する前に、Oracle Enterprise Manager Database Express (EM Express)の「メモリー・アドバイザ」グラフを使用して、異なるターゲット・メモリー・サイズの設定を使用することにより節約される時間の割合を予測します。手順では、まず自動メモリー管理を有効にする必要があります。自動メモリー管理の有効化を参照してください。

異なるターゲット・メモリー・サイズに対して節約される時間の割合を予測するには、次の手順を実行します。

  1. EM Expressの「構成」メニューから「メモリー」を選択します。

    メモリー管理ページが表示されます。「メモリー設定」セクションの「メモリー管理」の値は「自動」です。これは、自動メモリー管理がデータベースに対して有効であることを示しています。

  2. 「メモリー・アドバイザ」グラフ(「メモリー設定」セクションの右側に表示される)を使用して、潜在的なターゲット・メモリー・サイズに対して節約される時間の割合を予測します。

    「メモリー・アドバイザ」グラフでは、次のように表示されます。

    • 初期化パラメータMEMORY_TARGETの潜在的な値(MB)は、グラフの水平軸で表されます。初期化パラメータMEMORY_TARGETの現在の設定は、青色の点で示されます。

    • 節約された時間に対応する値は、グラフの垂直軸で表されます。描画された値は、初期化パラメータMEMORY_TARGETの現在の設定に対する比率として表されます。

      負の値は、(Oracleに割り当てられたメモリーが現在の設定より小さいとき)消費された時間の増加の割合を表し、正の値は、(Oracleに割り当てられたメモリーが現在の設定より大きいとき)消費された時間の減少の割合を表します。

    グラフの橙色の線は、初期化パラメータMEMORY_TARGETに指定できる異なる値を描画します。橙色の線上の任意の点をクリックすると、その点で表されるMEMORY_TARGET値に対して消費される時間の減少の予測が表示されます。

    この図の「メモリー・アドバイザ」グラフでは、初期化パラメータMEMORY_TARGETの現在の値を増加させることより、節約される時間の割合が減少しないことを示しています。

  3. 初期化パラメータMEMORY_TARGETの値を変更するには、次の手順を実行します。

    1. メモリー管理ページで「メモリーの構成」をクリックします。

      初期化パラメータ・ページが表示されます。

    2. 初期化パラメータMEMORY_TARGETを選択して、「設定」をクリックします。

      初期化パラメータの設定ページが表示されます。

    3. 「有効範囲」フィールドに、この変更の有効範囲を入力します。

      メモリー、SPFileまたは両方の範囲の指定の詳細は、初期化パラメータの表示と変更を参照してください。

    4. 「値」フィールドに初期化パラメータMEMORY_TARGETの新しい値を入力します。

    5. 「OK」をクリックします。

      確認メッセージが表示されます。

5.4.4 自動共有メモリー管理を使用可能にする方法

この項では、自動メモリー管理または手動共有メモリー管理のいずれかがデータベース・インスタンスに対して現在有効になっている場合に、自動共有メモリー管理に変更する方法について説明します。

自動メモリー管理が現在有効になっている場合、自動共有メモリー管理に変更するには、次の手順を実行します。

自動メモリー管理が現在有効になっている場合に、システム・グローバル領域(SGA)とインスタンスのプログラム・グローバル領域(PGA)のサイズをより直接的に制御するには、自動メモリー管理を無効化し、自動共有メモリー管理を有効化します。次の手順を実行します。

  1. Oracle Enterprise Manager Database Express (EM Express)の「構成」メニューから「初期化パラメータ」を選択します。

    「現行」タブを含む初期化パラメータ・ページが表示されます。

  2. 「検索」フィールドにMEMORY_TARGETと入力します。

  3. MEMORY_TARGETを選択して、「設定」をクリックします。

    初期化パラメータの設定ページが表示されます。

  4. 「値」フィールドに0と入力し、「メモリー」「有効範囲」を指定し、「OK」をクリックします。

    確認メッセージが表示されます。

    注意:

    この手順では、現在のセッションに対して自動メモリー管理を自動共有メモリー管理に変更します。自動メモリー管理を自動共有メモリー管理に変更し、データベースの再起動後も有効であるようにするには、次のように実行します。

    • データベースでサーバー・パラメータ・ファイルが使用されている場合は、「初期化パラメータの設定」ページでSPFileの「有効範囲」およびメモリーの「有効範囲」を指定します。

    • データベースでテキストの初期化パラメータ・ファイルが使用されている場合は、そのファイルのMEMORY_TARGETの値を手動で0 (ゼロ)に設定します。

  5. 「構成」メニューから「メモリー」を選択します。

    「メモリー設定」セクションの「SGAメモリー」サブセクションで、「管理モード」の現在の値が「自動」であることに注意してください。これは、自動共有メモリー管理が有効であることを示しています。このページに表示される初期化パラメータは、MEMORY_TARGETに加え指定された値です。

手動共有メモリー管理が現在有効になっている場合、自動共有メモリー管理に変更するには、次の手順を実行します。

手動共有メモリー管理が現在有効になっている場合に、Oracle Databaseを使用してSGAとインスタンスPGAの最適サイズを決定するには、手動共有メモリー管理を無効化し、自動共有メモリー管理を有効化します。次の手順を実行します。

  1. SQL*Plusのデータベースで次の問合せを実行して、SGA_TARGETの値を取得します。
    SELECT (
       (SELECT SUM(value) FROM V$SGA) -
       (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)
       ) "SGA_TARGET"
    FROM DUAL;
    
    SGA_TARGET
    ----------
     371654656
    

    この値は約354Mです。

  2. EM Expressの「構成」メニューから「初期化パラメータ」を選択します。

    「初期化パラメータ」ページが表示されます。

  3. 「検索」フィールドにSGA_TARGETと入力します。
  4. SGA_TARGETを選択して、「設定」をクリックします。

    初期化パラメータの設定ページが表示されます。

  5. 「値」フィールドに前述の手順1のSGA_TARGET値を入力し(この例では354M)、「メモリー」の「有効範囲」を指定し、「OK」をクリックします。

    確認メッセージが表示されます。

    注意:

    この手順では、現在のセッションに対して手動共有メモリー管理を自動共有メモリー管理に変更します。手動共有メモリー管理を自動共有メモリー管理に変更し、データベースの再起動後も有効であるようにするには、次のように実行します。

    • データベースでサーバー・パラメータ・ファイルが使用されている場合は、「初期化パラメータの設定」ページでSPFileの「有効範囲」およびメモリーの「有効範囲」を指定します。

    • データベースでテキストの初期化パラメータ・ファイルが使用されている場合は、そのファイルのMEMORY_TARGETの値を手動で0 (ゼロ)に設定します。

  6. 「構成」メニューから「メモリー」を選択します。

    「メモリー設定」セクションの「SGAメモリー」サブセクションで、「管理モード」の現在の値が「自動」であることに注意してください。これは、自動共有メモリー管理が有効であることを示しています。

  7. 次のいずれかを行います:
    • より完全な自動チューニングを行うには、初期化パラメータ・ページで、次の表にリストされている自動サイズ設定SGAコンポーネントの値を0 (ゼロ)に設定します。

      SGAコンポーネント 初期化パラメータ

      共有プール

      SHARED_POOL_SIZE

      ラージ・プール

      LARGE_POOL_SIZE

      Javaプール

      JAVA_POOL_SIZE

      バッファ・キャッシュ

      DB_CACHE_SIZE

      Streamsプール

      STREAMS_POOL_SIZE

    • 1つ以上の自動サイズ設定SGAコンポーネントの最小サイズを制御するには、これらのコンポーネントのサイズを目的の値に設定します(詳細は、『Oracle Database管理者ガイド』を参照)。初期化パラメータ・ページで、その他の自動サイズ設定SGAコンポーネントの値を0(ゼロ)に設定します。

5.4.5 メモリー設定の変更: 自動共有メモリー管理

自動共有メモリー管理のメモリー設定を変更する前に、Oracle Enterprise Manager Database Express (EM Express)の「SGAアドバイザ」グラフを使用して、異なる合計システム・グローバル領域(SGA)サイズを使用することにより節約される時間の割合を予測します。この項では、自動メモリー管理が無効、自動共有メモリー管理が有効になっていると想定しています。

異なるSGAメモリー・サイズに対して節約される時間の割合を予測するには、次の手順を実行します。

  1. EM Expressの「構成」メニューから「メモリー」を選択します。

    メモリー管理ページが表示されます。「メモリー設定」セクションの「SGAメモリー」サブセクションの「管理モード」の値は「自動」です。これは、自動共有メモリー管理がデータベースに対して有効であることを示しています。

  2. 「SGAアドバイザ」グラフ(「メモリー設定」セクションの右側に表示される)を使用して、潜在的なSGAメモリー・サイズに対して節約される時間の割合を予測します。

    「SGAアドバイザ」グラフでは、次のように表示されます。

    • 初期化パラメータSGA_TARGETの潜在的な値(MB)は、グラフの水平軸で表されます。初期化パラメータSGA_TARGETの現在の設定は、青色の点で示されます。

    • 節約された時間に対応する値は、グラフの垂直軸で表されます。描画された値は、初期化パラメータSGA_TARGETの現在の設定に対する比率として表されます。

      負の値は、(Oracleに割り当てられたメモリーが現在の設定より小さいとき)消費された時間の増加の割合を表し、正の値は、(Oracleに割り当てられたメモリーが現在の設定より大きいとき)消費された時間の減少の割合を表します。

    グラフの橙色の線は、初期化パラメータSGA_TARGETに指定できる異なる値を描画します。橙色の線上の任意の点をクリックすると、その点で表されるSGA_TARGET値に対して消費される時間の減少の予測が表示されます。

    この図の「SGAアドバイザ」グラフでは、初期化パラメータSGA_TARGETの現在の値を増加させることより、節約される時間の割合が減少しないことを示しています。

  3. 初期化パラメータSGA_TARGETの値を変更するには、次の手順を実行します。

    1. メモリー管理ページで「メモリーの構成」をクリックします。

      初期化パラメータ・ページが表示されます。

    2. 初期化パラメータSGA_TARGETを選択して、「設定」をクリックします。

      初期化パラメータの設定ページが表示されます。

    3. 「有効範囲」フィールドに、この変更の有効範囲を入力します。

      メモリー、SPFileまたは両方の範囲の設定の詳細は、初期化パラメータの表示と変更を参照してください。

    4. 「値」フィールドに初期化パラメータSGA_TARGETの新しい値を入力します。

    5. 「OK」をクリックします。

      確認メッセージが表示されます。

5.4.6 手動共有メモリー管理を使用可能にする方法

この項では、手動共有メモリー管理を有効化する方法について説明します。

手動共有メモリー管理を有効化するには、次の手順を実行します。

  1. Oracle Enterprise Manager Database Express (EM Express)の「構成」メニューから「初期化パラメータ」を選択します。

    「初期化パラメータ」ページが表示されます。

  2. 「検索」フィールドにSGA_TARGETと入力します。
  3. SGA_TARGETを選択して、「設定」をクリックします。

    初期化パラメータの設定ページが表示されます。

  4. 「値」フィールドに0と入力し、「メモリー」「有効範囲」を指定し、「OK」をクリックします。

    確認メッセージが表示されます。

    注意:

    この手順では、現在のセッションのSGA_TARGETを0に設定します。SGA_TARGETを0に設定し、データベースの再起動後も有効に保つには、次を実行します。

    • データベースでサーバー・パラメータ・ファイルが使用されている場合は、「初期化パラメータの設定」ページでSPFileの「有効範囲」およびメモリーの「有効範囲」を指定します。

    • データベースでテキストの初期化パラメータ・ファイルが使用されている場合は、そのファイルのSGA_TARGETの値を手動で0 (ゼロ)に設定します。

  5. 「検索」フィールドにMEMORY_TARGETと入力します。
  6. MEMORY_TARGETを選択して、「設定」をクリックします。

    初期化パラメータの設定ページが表示されます。

  7. 「値」フィールドに0と入力し、「メモリー」の「有効範囲」を指定し、「OK」をクリックします。

    確認メッセージが表示されます。

    注意:

    この手順で、現在のセッションのMEMORY_TARGETが0に設定されます。MEMORY_TARGETを0に設定し、データベースの再起動後も有効に保つには、次を実行します。

    • データベースでサーバー・パラメータ・ファイルが使用されている場合は、「初期化パラメータの設定」ページでSPFileの「有効範囲」およびメモリーの「有効範囲」を指定します。

    • データベースでテキストの初期化パラメータ・ファイルが使用されている場合は、そのファイルのMEMORY_TARGETの値を手動で0 (ゼロ)に設定します。

  8. 「構成」メニューから「メモリー」を選択します。

    「SGAメモリー」セクションで、「管理モード」の現在の値が「手動」であることに注意してください。これは、手動共有メモリー管理が有効であることを示しています。

  9. 様々なSGAコンポーネントの値の設定の詳細は、『Oracle Database管理者ガイド』を参照してください。

5.4.7 メモリー設定の変更: 手動共有メモリー管理

手動共有メモリー管理のメモリー設定を変更する前に、Oracle Enterprise Manager Database Express (EM Express)の「バッファ・キャッシュ・アドバイザ」グラフを使用して、異なるデータベース・キャッシュ・サイズを使用することにより節約される読取りの推定割合を予測します。この項では、自動メモリー管理が無効、手動共有メモリー管理が有効になっていると想定しています。

異なるデータベース・キャッシュ・サイズに対して節約される読取りの割合を予測するには、次の手順を実行します。

  1. EM Expressの「構成」メニューから「メモリー」を選択します。

    メモリー管理ページが表示されます。「メモリー設定」セクションの「SGAメモリー」サブセクションの「管理モード」の値は「手動」です。これは、手動共有メモリー管理がデータベースに対して有効であることを示しています。

  2. 「バッファ・キャッシュ・アドバイザ」グラフ(「メモリー設定」セクションの右側に表示される)を使用して、潜在的なデータベース・キャッシュ・サイズに対して節約される読取りの割合を予測します。

    「バッファ・キャッシュ・アドバイザ」グラフでは、次のように表示されます。

    • 初期化パラメータDB_CACHE_SIZEの潜在的な値(MB)は、グラフの水平軸で表されます。初期化パラメータDB_CACHE_SIZEの現在の設定は、青色の点で示されます。

    • 節約された読取りに対応する値は、グラフの垂直軸で表されます。描画された値は、初期化パラメータDB_CACHE_SIZEの現在の設定に対する比率として表されます。

      負の値は、(Oracleに割り当てられたメモリーが現在の設定より小さいときの)読取りの増加の割合を表し、正の値は、(Oracleに割り当てられたメモリーが現在の設定より大きいときの)読取りの減少の割合を表します。

    グラフの橙色の線は、初期化パラメータDB_CACHE_SIZEに指定できる異なる値を描画します。橙色の線上の任意の点をクリックすると、その点で表されるDB_CACHE_SIZE値に対して節約される読取りの割合の予測が表示されます。

    この図の「バッファ・キャッシュ・アドバイザ」グラフでは、初期化パラメータDB_CACHE_SIZEの現在の値を増加させることより、節約される読取りの割合が増加しないことを示しています。

  3. 初期化パラメータDB_CACHE_SIZEの値を変更するには、次の手順を実行します。

    1. メモリー管理ページで「メモリーの構成」をクリックします。

      初期化パラメータ・ページが表示されます。

    2. 初期化パラメータDB_CACHE_SIZEを選択して、「設定」をクリックします。

      初期化パラメータの設定ページが表示されます。

    3. 「有効範囲」フィールドに、この変更の有効範囲を入力します。

      メモリー、SPFileまたは両方の範囲の指定の詳細は、初期化パラメータの表示と変更を参照してください。

    4. 「値」フィールドに初期化パラメータDB_CACHE_SIZEの新しい値を入力します。

    5. 「OK」をクリックします。

      確認メッセージが表示されます。

5.4.8 メモリー設定の変更: 自動PGAメモリー管理

自動プログラム・グローバル領域(PGA)メモリー管理のメモリー設定を変更するには、Oracle Enterprise Manager Database Express (EM Express)の「PGAアドバイザ」グラフを使用してインスタンスPGAのサイズを変更する必要があります。この項では、自動メモリー管理が無効、自動PGAメモリー管理が有効になっていると想定しています。

注意:

自動メモリー管理を無効化すると、デフォルトで自動PGAメモリー管理が有効化されたままになります。

インスタンスPGAのサイズを変更するには、次のようにします。

  1. EM Expressの「構成」メニューから「メモリー」を選択します。

    メモリー管理ページが表示されます。データベースで自動共有メモリー管理または手動共有メモリー管理のいずれかが有効になっている場合は、「PGAアドバイザ」グラフが「メモリー設定」セクションの右側に2番目のグラフとして表示されます。

  2. 「PGAアドバイザ」グラフを使用して、潜在的なデータベース・キャッシュ・サイズに対して推定されるキャッシュ・ヒット率を予測します。

    「PGAアドバイザ」グラフでは、次のように表示されます。

    • 初期化パラメータPGA_AGGREGATE_TARGETの潜在的な値は、グラフの水平軸で表されます。また、単位サイズ(MBGBなど)も水平軸で示されます。初期化パラメータPGA_AGGREGATE_TARGETの現在の設定は、青色の点で示されます。

    • 推定されたキャッシュ・ヒット率に対応する値は、グラフの垂直軸で表されます。描画された値は、初期化パラメータPGA_AGGREGATE_TARGETの現在の設定に対する比率として表されます。

    グラフの橙色の線は、初期化パラメータPGA_AGGREGATE_TARGETに指定できる異なる値を描画します。橙色の線上の任意の点をクリックすると、その点で表されるPGA_AGGREGATE_TARGET値に対するキャッシュ・ヒット率の推定が表示されます。

    この図の「PGAアドバイザ」グラフでは、初期化パラメータPGA_AGGREGATE_TARGETの現在の値を増加させることより、キャッシュ・ヒット率が増加しないことを示しています。

  3. 初期化パラメータPGA_AGGREGATE_TARGETの値を変更するには、次の手順を実行します。

    1. メモリー管理ページで「メモリーの構成」をクリックします。

      「初期化パラメータ」ページが表示されます。

    2. 初期化パラメータPGA_AGGREGATE_TARGETを選択して、「設定」をクリックします。

      初期化パラメータの設定ページが表示されます。

    3. 「有効範囲」フィールドに、この変更の有効範囲を入力します。

      メモリー、SPFileまたは両方の範囲の指定の詳細は、初期化パラメータの表示と変更を参照してください。

    4. 「値」フィールドに初期化パラメータPGA_AGGREGATE_TARGETの新しい値を入力します。

    5. 「OK」をクリックします。

      確認メッセージが表示されます。

関連項目:

5.5 Oracleインスタンスの管理: Oracle By Example Series

Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。

Oracleインスタンスの管理に関するOBEを参照するには、ご使用のWebブラウザで次のURLを入力します。

https://apexapps.oracle.com/pls/apex/f?p=44785:24:::NO:24:P24_CONTENT_ID:16828