Oracle® Real Application Clustersインストレーション・ガイド 12c リリース1 (12.1) for Microsoft Windows B72964-07 |
|
前 |
次 |
Oracle Real Application Clusters (Oracle RAC)データベースは、多くの点でシングル・インスタンスのOracle Databaseと異なります。
Oracle Net Configuration Assistant(NetCA)およびDatabase Configuration Assistant(DBCA)は、Oracle RACデータベースの作成およびOracle Enterprise Manager検出に必要な要件を満たすように環境を構成します。
注意:
構成ファイルは、クラスタ・データベースの各ノードに作成されます。Oracle RACのインストールの完了後は、ホスト名を変更しないようにしてください(ドメイン修飾の追加または削除を含む)。ノード名はOracle Clusterwareのインストール中にホスト名から作成され、データベース・プロセスで広範に使用されます。ホスト名が変更されているノードは、クラスタから削除して新しいホスト名で追加しなおす必要があります。
管理者は、多くの場合、データベースの停止または起動、記憶域の構成などの特別な操作を実行します。これらの管理決定を担当する一人の管理者のみがこれらの操作を実行する必要があるため、Oracle DatabaseまたはOracle Automatic Storage Management (Oracle ASM)のシステム権限には、セキュアな認証スキームが必要です。
特別なオペレーティング・システム・グループのメンバーシップを使用すると、管理者は、ユーザー名とパスワードを使用するのではなく、オペレーティング・システムを通してOracle DatabaseまたはOracle ASMを認証できます。このことはオペレーティング・システム認証と呼ばれます。クラスタ内のOracle Databaseはそれぞれが独自のオペレーティング・システム権限グループを持つことができるため、オペレーティング・システム認証は、クラスタ上のOracle Databaseごとに分離できます。クラスタ上に配置できるOracle Grid Infrastructureインストールは1つだけであるため、Oracle ASM用のオペレーティング・システム権限グループのセットは1つしか存在できません。
オペレーティング・システム・グループは、Oracle Grid InfrastructureとOracle Databaseのインストール時に、インストーラによって作成されます。これらのオペレーティング・システム・グループには、Oracle DatabaseおよびOracle ASMに対するシステム権限を管理するために、オペレーティング・システム認証を可能にする論理ロールが指定されます。Oracle Grid Infrastructureでは、オペレーティング・システム認証を使用してOracle Databaseを管理します。このアクセスを有効化するには、Net Servicesプロファイル・ファイル(sqlnet.ora)の説明に従い、sqlnet.ora
ファイル内のAUTHENTICATION_SERVICES
パラメータを、値NTSを含めるように設定する必要があります。
1つのオペレーティング・システム・グループを論理グループ(メンバーにOracle DatabaseおよびOracle ASMのすべてのシステム権限が付与されている)として使用するか、またはシステム権限を複数のオペレーティング・システム・グループに委任できます。論理システム権限ごとに、個別のオペレーティング・システム・グループを指定することをお薦めします。別のオペレーティング・システム・グループを使用することにより、データベース管理者に1つ以上の管理者システム権限のサブセットを付与できるようになります。これらのデータベース管理者は、SYSDBAシステム権限を必要とせずに、標準のデータベース管理タスクを実行できるようになります。
表1-1にシステム権限グループをリストします。
関連項目:
オペレーティング・システム・グループおよびOracle Databaseのシステム権限の詳細は、『Oracle Database管理者ガイド』を参照してください。
オペレーティング・システム・グループおよびOracle ASMのシステム権限の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。
Oracle RACでは、すべてのクラスタ・ノードのタイムゾーン設定が同じである必要があります。
クラスタ用Oracle Grid Infrastructureのインストール時に、インストール・プロセスによって、Oracle Universal Installer (OUI)が実行しているノード上でOracleインストール・ユーザーのタイムゾーン設定が決定されます。OUIでは、Oracle Clusterwareが管理するすべてのプロセスのデフォルトのタイムゾーン設定として、すべてのノード上でこのタイムゾーン値が使用されます。このデフォルト設定は、データベース、Oracle ASMおよびその他の管理対象プロセスで使用されます。
ただし、SQL*Plusでインスタンスを起動する場合、Oracle RACが使用するタイムゾーン値がOracle Clusterwareタイムゾーンと同じであることを確認する必要があります。次のコマンドを実行すると、Oracle Clusterwareがデータベースに使用するタイムゾーンを変更できます。
srvctl setenv database -env 'TZ=time zone
データベースを作成すると、指定したファイルの位置にSPFILEが作成されます。Oracle ASMディスク・グループまたはクラスタ・ファイル・システムをこの場所に指定できます。
クラスタ・データベース内のすべてのインスタンスは、起動時に同じSPFILEを使用します。SPFILEはバイナリ・ファイルであるため、エディタを使用して直接編集しないでください。かわりに、Oracle Enterprise ManagerまたはSQL文ALTER SYSTEM
を使用して、SPFILEパラメータ設定を変更します。
関連項目:
SPFILEの作成と変更の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。各Oracle製品は固有のOracleホームにインストールします。
%ORACLE_BASE%
の値はレジストリ(HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
など)に格納されています。また、ORACLE_HOME
およびORACLE_SID
の値もレジストリに格納されています。これらのディレクトリのシンボリック・リンク(UNIXプラットフォームで使用されているリンクなど)は、Windowsプラットフォームではサポートされません
Oracle Universal Installer (OUI)では、レジストリのORACLE_BASE
、ORACLE_HOME
およびORACLE_SID
などの環境変数の値を記録し、またインストールを実行するユーザーに対してPATH
環境変数の値を更新します。LinuxシステムおよびUNIXシステムでは、このような環境変数をユーザー・セッションまたはユーザー・プロファイルに手動で設定する必要があります。
関連項目:
レジストリ・キーの詳細は、『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』を参照してください。Oracle Universal Installer (OUI)を使用して、現在のOracleホームを変更します。
ORACLE_HOME
変数の値が、選択した値に変更されます。これによって、各製品の%ORACLE_HOME%\bin
ディレクトリが、PATH
環境変数に正しい順序で表示されます。プラガブル・データベース(PDB)は、Oracle Netクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトの移植可能な集合です。
PDBはCDBに接続できます。CDBには、複数のPDBを含めることができます。各PDBは個別のデータベースとしてネットワーク上に示されます。
Oracle Database 12c以上では、マルチテナント・コンテナ・データベース(CDB)として、またはOracle Database(非CDB)として、データベースを作成する必要があります。これは、Oracle RACデータベースにも適用されます。インストール・プロセスの唯一の違いは、Oracle RACデータベースをCDBとして作成するか、または非CDBとして作成するかです。
CDBとしてOracle RACデータベースを作成し、1つ以上のPDBをCDBに接続する場合、デフォルトでは、Oracle RAC CDBのいずれのインスタンス上でも、PDBは自動的には起動されません。PDBに割り当てられた最初の動的データベース・サービス(データベース名と同じ名前のデフォルト・データベース・サービス以外)によって、サービスが実行されているインスタンス上でそのPDBが使用可能になります。
PDBがOracle RAC CDBの複数のインスタンスで使用可能かどうかは、通常、PDB上で実行されているサービスによって管理されます。インスタンス上でPDBを手動で起動することによって、Oracle RAC CDBの各インスタンス上でPDBアクセスを手動で有効化できます。
関連項目:
PDBの詳細は、『Oracle Database概要』を参照してください。
PDBの管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
Oracle RAC CDBの管理の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
Database Configuration Assistant (DBCA)では、様々なデータベース・コンポーネントを作成します。
シングル・インスタンスおよびクラスタ・データベースの両方の環境では、Oracle Databaseは表領域という小さな論理領域に分割されています。
各表領域は、共有記憶域にある1つ以上のデータ・ファイルに対応しています。
表6-1 Oracle Real Application Clustersデータベースで使用する表領域名
表領域名 | 内容 |
---|---|
|
補助システム表領域で、 |
|
データベースに必要な表、ビューおよびストアド・プロシージャの定義を含む、データ・ディクショナリで構成されます。この表領域内の情報は自動的にメンテナンスされます。 |
|
SQL文の処理時に作成された一時表および索引が含まれます。非常に大規模な表に対する |
|
DBCAが自動UNDO管理用に作成する、インスタンスごとのUNDO表領域が含まれます。 |
|
アプリケーション・データで構成されます。表を作成しデータを入力するにつれて、この領域にデータが書き込まれます。 |
|
データベース作成時にサンプル・スキーマを含めることを選択した場合は、それらが格納されます。 |
OUIで事前構成済データベース構成オプションを使用する場合、これらの表領域名は変更できません。ただし、詳細なデータベース作成方法を使用する場合は、表領域名を変更できます。
前述のとおり、各表領域には、共有ファイル・システムに存在する1つ以上のデータ・ファイルがあります。事前定義済データベース構成オプションによって作成されるデータ・ファイル名は、記憶域タイプ(Oracle ASM、クラスタ・ファイル・システムなど)によって異なります。
関連項目:
SYSTEM
、SYSAUX
および他の表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。
データベース構成タイプの詳細は、Oracle Database構成タイプの選択を参照してください。
データベースは、共有記憶域に格納されている2つの制御ファイルを使用して構成されています。
各データベースには、一意の制御ファイルが1つ必要であり、データベースに構成されているその他の制御ファイルは、元の制御ファイルと同一のコピーです。制御ファイルが使用できなくなった場合、その破損した制御ファイルにアクセスしようとするデータベース・インスタンスは失敗します。様々なディスクに制御ファイルを多重化する(多重コピーを作成する)ことによって、データベースは冗長性を実現でき、それによってシングル・ポイント障害を避けることができます。
関連項目:
Oracle Database概要の制御ファイルの概要に関する項
Oracle Database管理者ガイドの制御ファイルの管理に関する項
各データベース・インスタンスには、2つ以上のオンラインREDOログ・ファイルが必要です。データベース・インスタンスのオンラインREDOログ・ファイルは、REDOスレッドと呼ばれます。
オンラインREDOログ・ファイルの単一セットの競合を避けるために、各Oracle RACデータベース・インスタンスには、それぞれ固有のREDOスレッドがあります。インスタンス障害が発生しても、障害が発生していないインスタンスは、オンラインREDOログ・ファイルにアクセスできる必要があります。したがって、Oracle RACデータベースのオンラインREDOログ・ファイルは、共有記憶域またはOracle ASMに配置される必要があります。記憶域としてファイル・システムを使用する場合、ファイル・システムは共有またはクラスタ・ファイル・システムである必要があります。
事前構成済データベース構成オプションによって作成されるREDOログ・ファイルのファイル名は、記憶域タイプによって異なります。
関連項目:
オンラインREDOログ・ファイルの詳細は、『Oracle Database概要』を参照してください。
オンラインREDOログ・ファイルの記憶域の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
Oracle Databaseは、UNDO表領域に、ロールバック情報やUNDO情報を格納します。
UNDO表領域を管理するには、自動UNDO管理を使用することをお薦めします。自動UNDO管理は、手動UNDO管理より簡単に管理できる、UNDO表領域の自動化された管理モードです。
Oracle ASMおよびOracle Managed Filesを自動UNDO管理とともに使用する場合、初めて起動されたインスタンスはUNDO表領域を持ちませんが、別のインスタンスによって自動的に作成されたそのインスタンス用のUNDO表領域を持つことになります。これは、オンラインREDOログについても同じです。
関連項目:
自動UNDO管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
UNDO表領域の管理については、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
Oracle Databaseの初期化パラメータの保存には、サーバー・パラメータ・ファイル(SPFILE)を使用することをお薦めします。
Oracle ASM SPFILEを含む、Oracle ASMのすべてのSPFILEを保存することをお薦めします。SPFILEは共有記憶域に置いて、クラスタ・データベースのすべてのインスタンスがこのパラメータ・ファイルにアクセスできるようにする必要があります。
関連項目:
パラメータ・ファイルの作成および使用の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。Oracle Databaseに接続するときは、接続記述子またはネット・サービス名を使用できます。
Oracle RACデータベースの場合、単一クライアント・アクセス名(SCAN)を使用して、Oracle RACデータベースの使用可能な任意のインスタンスに接続することもできます。ユーザーは、クライアント/サーバー構成を使用するか、または接続プーリングを任意に使用し、1つ以上の中間層を介してOracle RACデータベースにアクセスします。
sales.example.com
など)によって識別されます。 tnsnames.ora
ファイルを構成するかわりに、単一クライアント・アクセス名(SCAN)を使用してデータベースに接続するようにOracle Real Application Clusters (Oracle RAC)データベース・クライアントを構成することをお薦めします。 LOCAL_LISTENER
およびREMOTE_LISTENER
に指定されたリスナーに自動的に登録されます。各データベースは、1つ以上のサービスで表されます。サービスは、サービス名(sales.example.com
など)によって識別されます。
クライアントはサービス名を使用して、自身がアクセスする必要があるデータベースを識別します。インストール中に、Oracle RACデータベースは、データベースと同じ名前を持つデフォルトのデータベース・サービスを使用して構成されます。このサービスは、データベース管理タスクの実行に使用できます。クライアントおよびアプリケーションのデータベースへの接続用に、追加のサービスを作成する必要があります。
サービス名は複数のデータベース・インスタンスに関連付けることができ、インスタンスは複数のサービスに関連付けることができます。リスナーはクライアントとデータベース・インスタンスとの間の仲介役を果し、接続要求を適切なインスタンスに渡します。サービスに接続するクライアントは、接続先のインスタンスを指定する必要がありません。
各ネット・サービス名は、接続記述子に関連付けられます。接続記述子は、データベースの場所とデータベース・サービスの名前を提供します。
接続記述子には、リスナーの1つ以上のプロトコル・アドレスと、接続先サービスの接続情報が含まれています。
データベース接続作成のためのサービス名を使用する際に必要な情報は、リポジトリに格納することができ、1つ以上のネーミング・メソッドで使用されます。ネーミング・メソッドとは、クライアント・アプリケーションがサービス名を接続記述子に解決するために使用する解決方法です。Oracle Net Servicesは、いくつかの種類のネーミング・メソッドを提供しています。これらは、各クライアント上のローカル構成またはネットワーク上のすべてのクライアントがアクセスできる集中化された構成をサポートしています。
簡易接続ネーミング・メソッドを使用すると、TCP/IP環境でtnsnames.oraファイルまたはその他のリポジトリ内をサービス名で検索する必要がなくなります。
簡易接続では、クライアントはホスト名と、オプションのポートおよびサービス名で構成される単純なTCP/IPアドレスの接続文字列を使用します。このメソッドを使用する場合、ネーミングまたはディレクトリ・システムは必要ありません。例については、例: SCANを使用したOracle RACへの接続を参照してください。
ほとんどの環境に対応するように、Oracle Databaseサーバーとクライアントのネットワーク要素が事前構成されています。デフォルトでは、簡易接続ネーミング・メソッドが有効化され、リポジトリは不要です。簡易接続以外のネーミング・メソッドを使用する場合は、Oracle Net Servicesの追加の構成が必要となる場合があります。
SCANは、ドメイン・ネーム・サービス(DNS)またはグリッド・ネーミング・サービス(GNS)のいずれかにある、1つ以上3つ以下のIPアドレスに登録されたドメイン名です。
SCANは、ドメイン・ネーム・サービス(DNS)またはグリッド・ネーミング・サービス(GNS)のいずれかにある、1つ以上3つ以下のIPアドレスに登録されたドメイン名です。
Oracle Grid Infrastructureのインストール時に、いくつかのOracle ClusterwareリソースがSCAN用に作成されます。
SCAN仮想IP (VIP)は、SCANが解決するIPアドレスごとに作成されます
SCANリスナーは、SCAN VIPごとに作成されます
SCAN VIPへの依存性は、SCANリスナー用に構成されます
SCANは、次の2つのオプションのうち1つを使用して定義されます。
SCANをDNSで定義
SCANを手動で構成し、名前解決にDNSを使用する場合、ネットワーク管理者は、クラスタのパブリック・ネットワークと同じネットワーク上で3つのIPアドレスに解決されるSCANに対して単一の名前を作成する必要があります。SCAN名は、ドメインの接尾辞を使用せずに解決できる必要があります(たとえば、アドレスsales1-scan.example.com
は、sales1-scan
を使用して解決できる必要があります)。Oracle ClusterwareはSCANを解決するため、SCANをネットワーク・インタフェースに割り当てることはできません。
デフォルトのSCANは、cluster_name-scan.domain_name
です。たとえば、GNSを使用しないクラスタでは、クラスタ名がsales1
で、ドメインがexample.com
である場合、デフォルトのSCANアドレスはsales1-scan.example.com:1521
です。
SCANをGNSで定義
GNSおよびDHCPを使用している場合、Oracle Clusterwareでは、クラスタの構成時に指定されるSCAN名のVIPアドレスが構成されます。ノードVIPおよび3つのSCAN VIPは、GNSを使用時している場合、DHCPサーバーから取得されます。新しいサーバーがクラスタに追加されると、Oracle Clusterwareでは、必要なVIPアドレスはDHCPサーバーから動的に取得されてクラスタ・リソースが更新され、GNSを介してサーバーにアクセスできるようになります。
クラスタに接続するクライアントが、Oracle Grid Infrastructure 11gリリース2 (11.2)より前のリリースで使用されていたノードVIPではなく、SCAN名を使用するように構成することをお薦めします。SCANを使用してOracle RACデータベースに接続するクライアントは、特定のデータベースまたはデータベース・インスタンスをホストする各ノードのアドレスで構成する必要がありません。たとえば、クラスタにポリシー管理型のサーバー・プールを構成した場合、サーバー・プールにどのノードが割り当てられているかにかかわらず、SCANを使用してデータベースへ接続することによって、そのデータベースのサーバー・プールに接続できます。データベースに接続しているクライアントを再構成することなく、データベースに対してノードの追加または削除を行うことができます。
関連項目:
SCANの構成および要件の詳細は、Oracle Grid Infrastructureインストレーション・ガイドfor Microsoft Windows x64 (64–bit)を参照してください。SCANの仮想IPアドレス(VIP)は、ノードのVIPと同様に機能します。ただし、ノードVIPとは異なり、SCAN VIPはクラスタ内の任意のノードで実行できます。
ノードVIPの名前やアドレスではなくSCANを使用して接続するクライアント(ユーザーまたはアプリケーション)は、クラスタに対してノードが追加または削除されたとき、あるいはデータベース・インスタンスが別のノードで実行されたときに、そのローカルのtnsnames.ora
ファイルのノードの名前やアドレスのリストを更新する必要はありません。
注意:
DNSに3つのSCAN VIPを構成しても、それだけでは接続のフェイルオーバーは保証されません。かわりに、Oracleクライアントは戻されたSCAN VIPを使用して、接続要求を別のSCANリスナーにフェイルオーバーします。SCAN VIPへの接続が失敗した場合、クライアントは次に戻されたSCAN VIPアドレスを使用して接続します。そのため、SCANを使用する接続では、Oracle Client 11g リリース2以上のクライアントを使用することをお薦めします名前解決にGNSを使用する場合、インストール時にはSCAN名のみを提供します(sales1-scan
など)。GNSは、3つのIPアドレスのDHCPアドレス・リースを取得し、これらのアドレスをSCANに解決します。GNSデーモンは登録をリスニングします。SCAN VIPは、ノードで使用が開始された際に自身のアドレスをGNSに登録します。
GNSによって管理されるクラスタ・ドメインへのサービス要求はGNSのVIPアドレスにルーティングされ、そこで要求はクラスタのGNSデーモンへとルーティングされます。GNSは、DNSからSCANの要求を受信すると、SCANリスナーの登録されたアドレスをDNSに戻します。DNSによって、クライアントに3つのSCAN VIPアドレスが戻されます。
関連項目:
SCANの名前、リスナーおよびクライアント・サービス要求の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。Oracle Grid Infrastructureのインストールでは、SCANを解決するために割り当てられるSCAN VIPアドレスと同数のSCANリスナーが作成されます。
高可用性とスケーラビリティのため、SCANは3つのVIPアドレスに解決することをお薦めします。SCANを3つのアドレスに解決する場合は、3つのSCAN VIPと3つのSCANリスナーが作成されます。
各SCANリスナーは、対応するSCAN VIPに依存します。SCANリスナーは、SCAN VIPがノード上で使用可能になるまでは起動できません。
SCANリスナーのアドレスは、外部のドメイン・ネーム・サービス(DNS)、またはクラスタ内のグリッド・ネーミング・サービス(GNS)のいずれかを介して解決されます。SCANリスナーおよびSCAN VIPは、クラスタ内の任意のノードで実行できます。SCAN VIPを実行しているノードに障害がある場合、SCAN VIPおよび関連付けられているリスナーは、クラスタ内の別のノードにフェイルオーバーされます。クラスタ内の使用可能なノード数が3未満になった場合、1つのサーバーが2つのSCAN VIPとSCANリスナーをホストします。
関連項目:
SCANリスナーの詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。tnsnames.ora
ファイルを構成するかわりに、単一クライアント・アクセス名(SCAN)を使用してデータベースに接続するようにOracle Real Application Clusters (Oracle RAC)データベース・クライアントを構成することをお薦めします。
Oracle Database 11gリリース2より前のOracle RACリリースのノード仮想IP (VIP)アドレスを使用してクラスタに接続するように構成されたクライアントは、既存の接続アドレスを引き続き使用できるため、SCANを使用する必要はありません。以前のリリースのOracle Databaseをアップグレードすると、データベースはローカル・リスナーだけではなく、SCANリスナーにも登録されるので、クライアントがSCANを使用してそのデータベースに接続できるようになります。
Oracle Database 12cのデータベース・クライアントは、SCANを使用してデータベースに接続します。簡易接続メソッドには接続の確立のタイムアウトおよび再試行回数を指定する機能がないため、SCANでは簡易接続メソッドを使用しないことをお薦めします。かわりに、アプリケーションではOracle Net接続記述子を次の書式で使用する必要があります。
(DESCRIPTION = (CONNECT_TIMEOUT=90) (RETRY_COUNT=20)(RETRY_DELAY=3) (TRANSPORT_CONNECT_TIMEOUT=3) ( ADDRESS = (PROTOCOL = TCP)(HOST=scan)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=service_name)))
scanは、クラスタのSCANを表します。ポート番号を指定しない場合、デフォルト値の1521がTCPポート識別子に使用されます。service_nameは動的データベース・サービスの名前です。
Domain Name System (DNS)を使用している場合は、DNSからクライアントに3つのSCAN VIPアドレスがすべて戻されます。
グリッド・ネーミング・サービス(GNS)を使用している場合は、DNSのゾーン委任がGNSにルックアップ要求を送信するため、クライアントに3つのSCAN VIPアドレスがすべて戻されます。
クライアント・ソフトウェアは戻されたSCAN VIPアドレスのいずれかを使用してSCANリスナーに問い合せます。
SCANリスナーがクライアントから接続要求を受け取ると、SCANリスナーはクラスタ内で最も負荷の小さい、要求されたサービスを提供しているインスタンスを識別します。次に、最も負荷の小さいインスタンスが実行中のノードのローカル・リスナーに接続要求をリダイレクトし、クライアントにローカル・リスナーのアドレスを付与します。次に、ローカル・リスナーは、データベース・インスタンスへの接続を作成します。
Oracle RACデータベースは、複数のリスナーを使用して、使用可能なインスタンスにクライアント要求を振り向けます。
Oracle Databaseは、ローカル・リスナーを介して接続要求を受け取ります。ローカル・リスナーはクライアント要求を仲介して、サーバーに渡します。リスナーはプロトコル・アドレスで構成されており、同じプロトコル・アドレスで構成されたクライアントは、そのリスナーに接続要求を送信できます。接続が確立されると、クライアントとOracle Databaseは互いに直接通信します。
ローカル・リスナー(デフォルトのリスナー)は、Oracle Grid Infrastructureのインストール時にGridホームに配置されます。ローカル・リスナーは、データベース接続要求と、外部プロシージャやOracle XML Database (XDB)要求などのデータベース接続以外の要求に応答するように構成されています。データベースが起動されると、データベース・エージェント・プロセス(oraagent.exe
(以前のracgimon
))は、LOCAL_LISTENER
パラメータにOracle Netサービス名を必要としない接続記述子を設定します。GridホームのリスナーのエンドポイントとなるLOCAL_LISTENER
の値が計算されます。
1つのlistener.ora
ファイルには、それぞれが一意の名前を持つ複数のOracle Databaseリスナーを構成できます。データベース・リスナーに対して複数のリスナーを構成できるのは、トップレベルの各構成パラメータにリスナー名の接尾辞があるか、または構成パラメータがリスナー名そのものであるためです。データベースを複数のローカル・リスナーに登録されるように構成するには、LOCAL_LISTENER
パラメータを手動で変更する必要があります。
注意:
ほとんどのユーザーの環境では、ノードごとに1つのリスナーのみを実行することをお薦めします。Oracle RACデータベースでは、データベース・パラメータREMOTE_LISTENER
は、SCANリスナーを識別します。データベースは、これらのパラメータに含まれる接続記述情報を使用して、ローカル・リスナーとSCANリスナーに登録されます。Oracle Database 11g リリース2以降のインスタンスは、リモート・リスナーとしてはSCANリスナーにのみ登録されます。アップグレードしたデータベースは、リモート・リスナーとしてSCANリスナーに登録されるとともに、引き続きすべてのノード・リスナーにも登録されています。
Oracle RACデータベースのREMOTE_LISTENER
パラメータは常にSCANアドレスに設定されます。たとえば、クラスタのSCANがmyscanで、クラスタのGNSサブドメインがmycluster.example.com
である場合、REMOTE_LISTENER
パラメータには次の値が保持されます。
myscan.mycluster.example.com:1521
注意:
Oracle RACデータベースのREMOTE_LISTENER
パラメータを、ホスト名(HOST=scan
)にSCANを使用する単一アドレスを持つOracle Net別名に設定しないでください。Oracle Database 12c リリース1 (12.1)のデータベース・サービスは、データベース初期化パラメータLOCAL_LISTENER
およびREMOTE_LISTENER
に指定されたリスナーに自動的に登録されます。
登録時に、リスナー登録(LREG)プロセスは情報(サービス名、インスタンス名、ワークロード情報など)をリスナーに送信します。この機能は、サービス登録と呼ばれます。
Oracleインスタンスの起動後にリスナーが起動し、リスナーがサービス登録に使用可能になると、次回にOracle Database LREGプロセスが検出ルーチンを起動するまで登録は行われません。デフォルトでは、LREG検出ルーチンは60秒ごとに起動されます。60秒の遅延を変更するには、SQL文ALTER SYSTEM REGISTER
を使用します。この文によって、LREGはすぐにサービスを登録します
注意:
リスナーの起動直後にALTER SYSTEM REGISTER
文を実行するスクリプトを作成することをお薦めします。インスタンスが登録され、すべてのサービスが現在登録されている場合、またはリスナーが停止している場合にこの文を実行しても、何も処理されません。関連項目:
サービス登録の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。サービス名を使用しているOracle RACデータベースにSCANを使用して接続する場合は、環境に基づいて次のアクションが発生します。
番号が付けられたアクションは、手順の後の図に示されている矢印に対応しています。
各インスタンスのLREGプロセスは、ローカル・ノード上のデフォルトのリスナーと、REMOTE_LISTENER
データベース・パラメータで指定された各SCANリスナーにデータベース・サービスを登録します。リスナーは、インスタンスとディスパッチャによって処理されている作業の量に基づいて動的に更新されます。
クライアントは、次の書式の接続記述子を使用して、データベース接続要求を発行します。
orausr/@scan_name:1521/webapp
注意:
簡易接続ネーミング・メソッドを使用する場合は、クライアントのsqlnet.ora
ファイルに、NAMES.DIRECTORY_PATH
パラメータで指定されたネーミング・メソッドのリストのEZCONNECT
が含まれていることを確認します。クライアントは、DNSを使用してscan_nameを解決します。SCANに割り当てられる3つのアドレスがDNSから戻された後、クライアントは1つ目のIPアドレスに接続要求を送信します。接続要求が失敗すると、クライアントは次のIPアドレスを使用して接続を試行します。
接続要求が成功すると、クライアントは、sales
データベースをホストし、webapp
サービスを提供するインスタンスを持つクラスタのSCANリスナーに接続します(この例ではsales1
およびsales2
)。SCANリスナーは、インスタンスsales1
およびsales2
のワークロードと、これらが実行されているノードのワークロードを比較します。SCANリスナーがnode2
はnode1
よりも負荷が小さいと判断すると、SCANリスナーはnode2
を選択し、そのノードのリスナーのアドレスをクライアントに送信します。
クライアントは、node2
のローカル・リスナーに接続します。ローカル・リスナーは、データベース接続のための専用サーバー・プロセスを起動します。
クライアントは、node2
の専用サーバー・プロセスに直接接続し、sales2
データベース・インスタンスにアクセスします。
Oracle RACデータベースは、接続時ロード・バランシング機能とフェイルオーバー機能に重要なメリットを提供します。
Oracle RACデータベースには、2つのタイプのロード・バランシング(クライアント側およびサーバー側のロード・バランシング)を実装できます。
サービスは、そのワークロード(現在処理している作業の量)をローカル・リスナーとSCANリスナーに登録することで、自身のセッションを調整します。クライアントはSCANリスナーによって、特定のサービスのインスタンスを実行する、負荷が最も低いノードのローカル・リスナーへとリダイレクトされます。この機能は、ロード・バランシングと呼ばれます。ローカル・リスナーは、クライアントをディスパッチャ・プロセスに送るか(共有サーバーを使用するようにデータベースを構成した場合)、またはクライアントを専用サーバー・プロセスに送ります。
クライアント側のロード・バランシングは、リスナー全体で接続要求のバランスをとります。サーバー側のロード・バランシングの場合、SCANリスナーはロード・バランシング・アドバイザを使用して、現在サービスを提供している最適なインスタンスに接続要求を送ります。
関連項目:
SCANおよびその構成の詳細は、『Oracle Grid Infrastructureインストレーション・ガイド』を参照してください。
フェイルオーバー、ロード・バランシングおよびロード・バランシング・アドバイザの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
クライアントがSCANを使用して接続要求を発行すると、3つのSCANアドレスがクライアントに戻されます。
1つ目のアドレスに障害がある場合は、SCANへの接続要求が次のアドレスにフェイルオーバーされます。複数のアドレスを使用することによって、最初のインスタンスに障害があっても、クライアントはデータベースのインスタンスに接続できます。
Oracle RACはノードVIPアドレスを使用したフェイルオーバーを提供します。これは、同じデータベース・サービスに対するクライアント接続要求を管理するために、複数のノードで複数のリスナーを構成することで実現します。ノードで障害が発生すると、VIPへのサービス接続は動作可能なノードに透過的に再接続されるため、VIPを介して接続するクライアントに障害を迅速に通知できます。アプリケーションおよびクライアントが透過的アプリケーション・フェイルオーバー・オプションを使用して構成されている場合、そのクライアントは動作可能なノードに再接続されます。
スタンドアロンのOracle Databaseは、共有サーバー・ディスパッチャ・プロセス間で接続を分散することでロード・バランシングを実現します。
Oracle Database Configuration Assistant (DBCA)は、デフォルトでOracle RACデータベースを共有サーバーではなく専用サーバーで構成します。ただし、DBCAの使用時に共有サーバー・オプションを選択すると、DBCAは共有サーバーを構成します。共有サーバーが構成されていると、Oracle RACでは、専用サーバーと共有サーバーの両方の処理が使用されます。
関連項目:
共有サーバーの構成の詳細は、Oracle Database Net Services管理者ガイドを参照してください。ほとんどの環境に対応するように、Oracle Databaseサーバーとクライアントのネットワーク要素が事前構成されています。
デフォルトでは、簡易接続ネーミング・メソッドが有効化され、リポジトリは不要です。簡易接続以外のネーミング・メソッドを使用する場合は、Oracle Net Servicesの追加の構成が必要となる場合があります。
LOCAL_LISTENER
およびREMOTE_LISTENER
パラメータに指定されたリスナーに自動的に登録されます。 tnsnames.ora
ファイルが作成されます。 sqlnet.ora
ファイルを作成します。Oracle Database 12c リリース1 (12.1)のデータベース・サービスは、LOCAL_LISTENER
とREMOTE_LISTENER
パラメータに指定されたリスナーに自動的に登録されます。
登録時に、リスナー登録(LREG)プロセスは情報(サービス名、インスタンス名、ワークロード情報など)をリスナーに送信します。
Oracleインスタンスの起動後にリスナーが起動し、リスナーがサービス登録に使用可能になると、次回にOracle Database LREGプロセスが検出ルーチンを起動するまで登録は行われません。デフォルトでは、LREG検出ルーチンは60秒ごとに起動されます。60秒の遅延を変更するには、SQL文ALTER SYSTEM REGISTER
を使用します。この文によって、LREGはすぐにサービスを登録します。
注意:
リスナーの起動直後にALTER SYSTEM REGISTER
文を実行するスクリプトを作成することをお薦めします。インスタンスが登録され、すべてのサービスが現在登録されている場合、またはリスナーが停止している場合にこの文を実行しても、何も処理されません。関連項目:
サービス登録の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。インストール・プロセスでは各ノードにtnsnames.ora
ファイルが作成されます。
tnsnames.ora
ファイルは、ネット・サービス名のリポジトリとして機能します。各ネット・サービス名は、接続識別子に関連付けられています。接続識別子は、ユーザー定義の名前を接続記述子にマップする識別子です。接続記述子には、次の情報が含まれます。
プロトコル・アドレスを介するリスナーの位置を含む、サービスへのネットワーク・ルート
データベース・サービスの名前に設定される値を持つ、SERVICE_NAME
パラメータ
注意:
指定できるサービス名は1つのみであるため、tnsnames.ora
ファイルで使用するSERVICE_NAME
パラメータは1つです。SERVICE_NAME
パラメータは、service_names
データベース初期化パラメータとは異なります。service_names
データベース・パラメータにはデフォルトで、初期化パラメータ・ファイルのdb_name
とdb_domain
パラメータからなるグローバル・データベース名が設定されています。SRVCTLまたはOracle Enterprise Manager Cloud Controlを使用してサービス名を追加すると、データベースに対して追加されたクラスタ管理サービスがリストされます。tnsnames.ora
ファイルは、Grid_home\network\admin
とOracle_home\network\admin
の両方のディレクトリにあります。Oracle Grid Infrastructureがインストールされている場合、デフォルトでは、Gridホームからtnsnames.ora
ファイルが読み取られます。
Oracle Clusterware 11g リリース2以上では、リスナーの対応付けにtnsnames.ora
ファイルのエントリは必要ありません。リスナー対応付けは、次のように構成されます。
Oracle Database Configuration Assistant (DBCA)によってLOCAL_LISTENER
パラメータが設定されなくなりました。データベースを起動するOracle Clusterwareエージェントは、LOCAL_LISTENER
パラメータを動的に設定し、このパラメータに別名ではなく実際の値を設定します。そのため、tnsnames.ora
ファイルのlistener_alias
エントリは不要になります。
REMOTE_LISTENER
パラメータは、DBCAによって、SCANとSCANポートを参照するように構成され、tnsnames.ora
のエントリは不要です。Oracle Clusterwareではscanname:scanport
に簡易接続ネーミング・メソッドを使用するため、tnsnames.ora
ファイルにREMOTE_LISTENER
パラメータに対するリスナーの関連付けは不要です。
例6-1 Oracle RACデータベースへの2つ目のリスナーの追加
orcl1
という名前のデータベースを作成した場合、ポート2012をリスニングする2つ目のリスナーを追加するには、次のようなコマンドを使用してデータベースを両方のリスナーに起動時に登録します。
SQL> alter system set local_listener='(DESCRIPTION=( ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.61)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.61)(PORT=2012))))' scope=BOTH SID='OCRL1';
関連項目:
『Oracle Database管理者ガイド』
tnsnames.ora
ファイルの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
Oracle Database Configuration Assistantにより、データベース・インスタンスに接続するためのネット・サービス名が作成されます。
Oracle RACのインスタンスに接続するクライアントは、接続記述子のSCANを使用します。
ネット・サービス名を使用して、Oracle RACに接続することもできます。Oracle Database Configuration Assistant (DBCA)で作成されるデフォルトのデータベース・サービスによって、Oracle Enterprise ManagerがOracle RACデータベースを検出できるようになりますが、このサービスはクライアント接続には使用しないでください。
DBCAを使用してマルチテナント・コンテナ・データベース(CDB)であるOracle RACデータベースを作成すると、DBCAによってそのデータベースと同じ名前のデータベース・サービスが作成されます。このデータベース・サービスを使用するクライアントはOracle RAC CDBの任意のデータベース・インスタンスに接続できます。ただし、DBCAを使用してプラガブル・データベース(PDB)を既存のCDBに接続する場合は、DBCAは新しいPDB用のデータベース・サービスを作成しません。
ネット・サービス名は、データベース、データベース・インスタンスまたはリスナーが実行されるサーバーの完全修飾ドメイン名を必要としません。SCANはDNSまたはGNSによって解決され、クライアントに3つのアドレスが戻されます。次に、クライアントは、接続が確立されるまで各アドレスに接続要求を連続して送信します。
例6-2 データベース接続用のネット・サービス名エントリ
この例は、tnsnames.ora
ファイルで使用される接続記述子を示しています。この場合の接続識別子は、クラスタ・ドメインmycluster.example.com
と同じです。個々のサーバーのアドレス、仮想インターネット・プロトコル(VIP)・アドレスまたはクラスタ・ノード名を指定するかわりに、接続記述子はSCAN (myscan.mycluster.example.com
)を使用します。
mycluster.example.com = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host=myscan.mycluster.example.com) (PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myApp) ) )
Oracle Clusterwareは、ネット・サービス名mycluster.example.com
を使用する接続要求を、myApp
データベース・サービスが実行されているmycluster
データベースの任意のデータベース・インスタンスに解決します。インスタンスが実行されている特定のクラスタ・ノードは、クライアントに対して非表示です。
データベースの特定のインスタンスに接続するクライアントは、そのインスタンスのネット・サービス名を使用します。
例6-3 インスタンス接続用のネット・サービス名エントリの例
この例では、接続識別子は、インスタンス名mycluster1.example.com
と同じです。接続記述子は、SCANを使用してクラスタ内のインスタンスを特定します。ネット・サービス名mycluster1.example.com
へのクライアント接続は、mycluster
データベースのmycluster1
データベース・インスタンスに接続されます。Oracle Clusterwareは、その接続をインスタンスが実行されているクラスタ・ノードに解決します。インスタンスが実行されている特定のクラスタ・ノードは、クライアントに対して非表示です。
mycluster1.example.com= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=myscan.mycluster.example.com)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=mycluster.example.com) (INSTANCE_NAME=mycluster1) ) )
Oracle RAC環境では、Oracle AgentでOracle DatabaseのOracleリスナーを管理することをお薦めします。
注意:
GNSを有効にした場合、リスナーを手動で構成する必要はありません。listener.ora
ファイルは、リスナーの構成ファイルです。 ローカル・リスナー(デフォルトのリスナー)は、Oracle Grid Infrastructureのインストール時にGridホームに配置されます。
listener.ora
ファイルは、Grid_home\network\admin
ディレクトリにあります。必要な場合は、Gridホーム・リスナーのlistener.ora
ファイルを編集して、ノード・リスナーとSCANリスナー用のリスナー・パラメータを定義できます。エンドポイントは、リスナー・エージェントによって自動的に管理されているので変更しないでください。
Oracle Databaseの作成時、LOCAL_LISTENER
パラメータは、データベースのローカル・リスナーを指すように自動的に構成されます。LOCAL_LISTENER
には手動で値を設定できます。LOCAL_LISTENER
パラメータの値を変更すると、データベース・エージェント・プロセスはこの値を自動更新しません。このパラメータは設定せずに、データベース・エージェント・プロセスで自動的にメンテナンスできるようにすることをお薦めします。LOCAL_LISTENER
を設定しなければ、Database Agentプロセスによって、リスナーのポートまたはIPアドレスが変更された場合でも、Gridホームのローカル・リスナーとデータベースの関連付けは自動的に更新されます。
関連項目:
tnsnames.ora
ファイルで定義されるリスナーの関連付けの詳細は、ネット・サービス名およびtnsnames.oraファイルを参照してください。
listener.oraファイルの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
リスナーの概要と構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
リモート・リスナーとは、あるコンピュータ上にあるリスナーのことで、別のコンピュータ上にあるデータベース・インスタンスに接続をリダイレクトします。
たとえば、SCANリスナーはリモート・リスナーです。Oracle RAC環境では、Oracle AgentでデータベースのOracleリスナーを管理することをお薦めします。
関連項目:
tnsnames.ora
ファイルで定義されるリスナーの関連付けの詳細は、ネット・サービス名およびtnsnames.oraファイルを参照してください。
listener.oraファイルの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
リスナーの概要と構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
listener.ora
ファイルは、リスナーの構成ファイルです。
listener.ora
ファイルには、接続要求を受け入れるプロトコル・アドレス、リスニングするデータベース・サービスとその他のサービスのリスト、およびリスナーにより使用される制御パラメータを含めることができます。Oracle ClusterwareおよびOracle Real Application Clusters (Oracle RAC)により使用されるリスナーの構成は、サーバー制御ユーティリティ(SRVCTL)のコマンドまたはOracle Net Configuration Assistant (NETCA)を使用して変更できます。listener.ora
ファイルを手動で編集する必要はありません。
各リスナーは、リスニングするエンドポイントを指定する1つ以上のプロトコル・アドレスで構成されます。リスナー・エージェントはエンドポイントをリスナーで動的に更新します。Oracle Database 11g リリース2からは、listener.ora
ファイルにIPCキーおよび次の情報のみが含まれるようになりました。
(ADDRESS = (PROTOCOL=TCP)(HOST=)(PORT=1521))
前述の例で、プロトコルADDRESS
は、暗黙的にローカル・ノードのHOSTエンドポイントとなります。Oracle RACデータベースの場合、listener.oraファイルはすべてのノードで同じです。ポート番号など、リスニングしているエンドポイントは、リスナーに動的に登録されます。
Oracle RACをインストールする前の、Oracle Grid Infrastructureのインストール中、NETCAはGridホームにLISTENER
と呼ばれるデフォルトのリスナーを作成して起動します。このリスナーは、デフォルトのプロトコル・リスニング・アドレスで構成されます。このリスナーは、インストール中に指定した1つのプロトコル・アドレスに送信された接続要求に応答するように構成されます。
Oracle RACのインストール中に、Oracle RACデータベースはGridホームのリスナーを使用して、Oracle RACデータベースに関するサービス情報を構成します。データベース・サービスは、その情報(サービス名、インスタンス名、ロード情報など)をリスナーに自動的に登録します。動的なサービス登録よって、データベース・サービスの静的な構成が不要になります。ただし、Oracle Enterprise Managerを使用する予定の場合は、静的なサービス構成が必要です。
例6-4 Oracle RACノードのlistener.oraファイルの例
次は、インストール後のmycluster
クラスタのlistener.ora
ファイルの例で、node1
という名前のノードおよびSCANリスナーのエントリが含まれています。
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_ SCAN1)))) # line added by Agent LISTENER_NODE1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent # listener.ora.mycluster Network Configuration File: C:\app\oracle\product\12.1.0\dbhome_1\network\admin\listener.ora.mycluster # Generated by Oracle configuration tools. LISTENER_NODE1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_NODE1=ON # line added by Agent ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON # line added by Agent ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
Oracle Universal Installerは、データベース・ソフトウェアのインストール後にOracle Net Configuration Assistant (NETCA)を起動します。NETCAは、Oracle Net Servicesプロファイルまたはsqlnet.ora
ファイルを作成します。
Oracle Grid Infrastructureインストールでは、sqlnet.ora
ファイルはデフォルトでGrid_home\network\admin
ディレクトリにあります。
Oracle RACデータベース・インスタンスのローカル・リスナーの場合、sqlnet.ora
ファイルのデフォルトの場所は%ORACLE_HOME%\network\admin
ディレクトリです。このディレクトリには、デフォルトのsqlnet.ora
ファイルがあります。サンプルのsqlnet.ora
ファイルはサブディレクトリsample
にあります。
Oracle RACソフトウェアのインストール時、NETCAによって、sqlnet.ora
ファイルに次のエントリが作成されます(%ORACLE_BASE%
は、Oracle RACインストール用のOracleベース・ディレクトリへのパスです)。
NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT) ADR_BASE =%ORACLE_BASE%
AUTHENTICATION_SERVICES
パラメータ(前述の例には示されていない)は、ユーザーのデータベース・アクセスの認証方法を指定します。値NTS
は、Microsoft Windowsに備わっている認証を使用して、データベースへのアクセスを認可する必要があることを示します。Oracle Automatic Storage Management (Oracle ASM)を使用しているOracle DatabaseおよびOracle Grid Infrastructureによって管理されているデータベースでは、Windowsネイティブ認証を使用する必要があり、これはデフォルトで有効になります。
NAMES.DIRECTORY_PATH
パラメータは、接続識別子を接続記述子に解決するために使用するネーミング・メソッドの優先順序を指定します。ADR_BASE
パラメータは、自動診断リポジトリ(ADR)がデータベースで有効である場合に、トレーシング・インシデントとロギング・インシデントが格納されるベース・ディレクトリを指定します。
関連項目:
sqlnet.ora
ファイルの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
認証の詳細は、『Oracle Database概要』を参照してください。
データベースの接続性を考慮したクライアントの構成方法の詳細は、『Oracle Database Clientインストレーション・ガイドfor Microsoft Windows』を参照してください。
ADRの詳細は、『Oracle Database管理者ガイド』を参照してください。