2.2 データベース・サービスの理解

Oracle Databaseは、クライアントに対してはサービスとして表示されます。データベースには、1つ以上のサービスを対応付けることができます。

次の図では、それぞれが固有のクライアント向けデータベース・サービスを提供する、2つのデータベースを示します。一方のサービスsales.us.example.comでは、販売担当者が販売データベースにアクセスできます。もう一方のサービスfinance.us.example.comでは、財務アナリストが財務データベースにアクセスできます。

図2-3 各データベースに1つのサービス

図2-3の説明が続きます
「図2-3 各データベースに1つのサービス」の説明

販売データベースと財務データベースは、サービス名、sales.us.example.comおよびfinance.us.example.comによってそれぞれ識別されます。サービス名はデータベースの論理表現です。インスタンスを起動すると、インスタンスはそれ自体を1つ以上のサービス名を使用してリスナーに登録します。クライアント・プログラムまたはデータベースがリスナーに接続すると、これらはサービスへの接続を要求します。

サービス名は複数のデータベース・インスタンスを識別することができ、インスタンスは複数のサービスに属することができます。このため、リスナーはクライアントとインスタンスとの間の仲介役を果し、接続要求を適切なインスタンスに渡します。サービスに接続するクライアントは、必要なインスタンスを指定する必要がありません。

サービス名は、サーバー・パラメータ・ファイルのSERVICE_NAMES初期化パラメータで指定します。サーバー・パラメータ・ファイルを使用すると、ALTER SYSTEMコマンドを使用して初期化パラメータを変更でき、変更内容は停止して起動した後も維持されます。DBMS_SERVICEパッケージを使用して、サービスを作成することもできます。サービス名のデフォルトはグローバル・データベース名で、データベース名(DB_NAME初期化パラメータ )およびドメイン名(DB_DOMAIN初期化パラメータ)から構成されています。sales.us.example.comの場合、データベース名はsalesで、ドメイン名はus.example.comです。

ノート:

Oracle Database 19c以降、SERVICE_NAMESパラメータをお客様が使用することは非推奨になりました。サービスを管理するには、SRVCTLまたはGDSCTLコマンドライン・ユーティリティ、またはDBMS_SERVICEパッケージを使用することをお薦めします。

次の図では、1つのデータベースに関連付けられた複数のサービスに接続するクライアントを示します。

図2-4 1つのデータベースへの複数サービスの対応付け

図2-4の説明が続きます
「図2-4 1つのデータベースへの複数サービスの対応付け」の説明

1つのデータベースに複数サービスを対応付けると、次のような機能が得られます。

  • 単一のデータベースを、異なる方法であらゆるクライアントが識別できます。

  • データベース管理者は、システム・リソースを制限したり、確保できます。このレベルの制御では、これらのサービスの1つを要求するクライアントに、より適切にリソースを割り当てることが可能です。

関連項目: