ヘッダーをスキップ
Oracle® Real Application Clustersインストレーション・ガイド
11gリリース2 (11.2) for Microsoft Windows x64 (64-Bit)
B58877-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

7 Oracle Real Application Clusters用にインストールされた構成の理解

この章では、Oracle Real Application Clusters(Oracle RAC)インストールの構成について説明します。

この章の内容は次のとおりです。

7.1 Oracle RAC構成の理解

Oracle Net Configuration Assistant(NETCA)およびOracle Database Configuration Assistant(DBCA)は、データベースの作成要件を満たすように、またOracle Enterprise ManagerによるOracle RACデータベースの検出が可能になるように環境を構成します。


注意:

構成ファイルは、クラスタ・データベースの各ノードに作成されます。

Oracle RACのインストールの完了後は、ホスト名を変更しないようにしてください(ドメイン修飾の追加または削除を含む)。ノード名はOracle Clusterwareのインストール中にホスト名から作成され、データベース・プロセスで広範に使用されます。ホスト名が変更されているノードは、クラスタから削除して新しいホスト名で追加しなおす必要があります。

7.2 クラスタ・ノードでのタイムゾーン設定の理解

Oracle RACでは、すべてのクラスタ・ノードのタイムゾーン設定が同じである必要があります。Oracle Clusterwareのインストール中に、インストール・プロセスは、Oracle Universal Installer(OUI)が実行されるノードでOracle Grid Infrastructureインストール所有者のタイムゾーン設定を確認し、そのタイムゾーン値をOracle Clusterwareが管理するすべてのプロセスのデフォルトのタイムゾーン設定として、すべてのノードで使用します。このデフォルト設定は、データベース、Oracle Automatic Storage Management(Oracle ASM)およびその他の管理対象プロセスで使用されます。

SQL*Plusを使用してインスタンスを起動する場合は、Oracle RACが使用するタイムゾーン値が、データベース用にOracle Clusterwareで構成されているタイムゾーン値と同じであることを確認する必要があります。次のコマンドを実行してOracle Clusterwareがデータベースに使用するタイムゾーンを変更できます。time zoneは変更後のタイムゾーンです。

srvctl setenv database -T "TZ=time zone"

7.3 Windowsでの複数のOracleホーム・ディレクトリの動作

各Oracle製品は、それぞれに専用のOracleホームにインストールされる必要があります。つまり、各製品は、他のOracle製品とは異なるディレクトリ構造にインストールされる必要があります。%ORACLE_BASE%の値はレジストリ(HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0など)に格納されています。また、ORACLE_HOMEおよびORACLE_SIDの値もレジストリに格納されています。これらのディレクトリのシンボリック・リンク(UNIXプラットフォームで使用されているリンクなど)は、Windowsプラットフォームではサポートされません。


関連項目:

レジストリ・キーの詳細は、『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』を参照してください。

Oracle Universal Installer (OUI)では、レジストリのORACLE_BASEORACLE_HOMEおよびORACLE_SIDなどの環境変数の値を記録し、またインストールを実行するユーザーに対してPATH環境変数の値を更新します。LinuxシステムおよびUNIXシステムでは、このような環境変数をユーザー・セッションまたはユーザー・プロファイルに手動で設定する必要があります。

%ORACLE_HOME%(デフォルトのOracleホーム)の現在の設定を変更するには、次の手順を実行します。

  1. OUI(リリース10.n以上)を実行します。

  2. 「インストールされた製品」ボタンをクリックします。

  3. ウィンドウ上部にある、「環境」タブをクリックします。

  4. デフォルトにするOracleホーム・ディレクトリをリストの最上位に移動します。

  5. 変更を適用して、インストーラを終了します。

この手順では、レジストリのデフォルトのORACLE_HOME変数の値が、選択した値に変更されます。これによって、各製品の%ORACLE_HOME%\binディレクトリが、PATH環境変数に正しい順序で表示されます。

7.4 DBCAで作成したデータベース・コンポーネントの理解

DBCAが作成するデータベース・コンポーネントには、次のものがあります。

7.4.1 表領域およびデータ・ファイル

シングル・インスタンスおよびクラスタ・データベースの両方の環境では、Oracle Databaseは表領域という小さな論理領域に分割されています。各表領域は、共有記憶域にある1つ以上のデータ・ファイルに対応しています。表7-1に、Oracle RACデータベースで使用する表領域名、およびその表領域に含まれるデータの種類を示します。

表7-1 Oracle Real Application Clustersデータベースで使用する表領域名

表領域名 内容

SYSTEM

必須の表領域で、データベースに必要な表、ビューおよびストアド・プロシージャの定義を含む、データ・ディクショナリで構成されます。この表領域内の情報は自動的にメンテナンスされます。

SYSAUX

必須の補助システム表領域で、多くのOracle Database機能および製品によって使用されます。この表領域には、DRSYSCWMLITEXDBODMOEM_REPOSITORYおよびSYSTEM表領域に以前格納されていたコンテンツが含まれます。

USERS

ユーザー作成の表領域で、アプリケーション・データで構成されています。表を作成しデータを入力するにつれて、この領域にデータが書き込まれます。

TEMP

必須の表領域で、SQL文の処理時に作成された一時表および索引が含まれます。非常に大規模な表に対するANALYZE COMPUTE STATISTICSのように大量のソートが必要なSQL文、あるいはGROUP BYORDER BYまたはDISTINCTを含むSQL文を使用する場合に、この表領域の拡張が必要な場合があります。

UNDOTBSn

システム管理の表領域で、インスタンスごとのUNDOデータが含まれます。各Oracle RACインスタンスは、表領域名のnに異なる値を使用します。これらの表領域は、自動UNDO管理に使用されます。

RBS

システム表領域で、ロールバック・セグメントが含まれます。自動UNDO管理を使用しない場合は、RBS表領域を構成する必要があります。RBS表領域は、以前のバージョンのOracle Databaseとの互換性が必要な場合にのみ使用する必要があります。



関連項目:

SYSTEMSYSAUXおよび他の表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。

Oracle RACのインストール時に事前構成済データベース・テンプレートまたはデータベース構成タイプを選択した場合、これらの表領域名は変更できません。ただし、Oracle RACのインストール時に「詳細」データベース構成タイプを選択した場合は、表領域の名前を変更できます。データベース構成タイプの詳細は、「Oracle Database構成タイプの選択」を参照してください。

前述のとおり、各表領域には1つ以上のデータ・ファイルがあります。事前定義済データベース構成タイプによって作成されるデータ・ファイル名は、記憶域タイプ(Oracle Automatic Storage Management(Oracle ASM)、ファイル・システムなど)によって異なります。

Windowsプラットフォームでは、表7-2に示すデータ・ファイルのシンボリック・リンク名および他のデータベース・ファイルを使用します。インストール時に「詳細」データベース構成タイプを選択した場合は、異なるシンボリック・リンク名を指定できます。

表7-2 Windowsプラットフォームにおけるデータベース・ファイルのシンボリック・リンク名

Windowsシンボリック・リンク名 表領域または他のデータベース・ファイル名

db_name_system

SYSTEM

db_name_SYSAUX

SYSAUX

db_name_users

USERS

db_name_temp

TEMP

db_name_undotbs1

UNDOTBS1

db_name_undotbs2

UNDOTBS2

db_name_rbs

RBS

db_name_example

EXAMPLE

db_name_indx

INDX

db_name_spfile

SPFILE

db_name_control1

1つ目の制御ファイル

db_name_control2

2つ目の制御ファイル

db_name_redoinstance_number_log_number

instance_numberはインスタンスの番号であり、log_numberはREDOログ番号(1または2)です。

オンラインREDOログ・ファイル

各データベース・インスタンスには、2つ以上のオンラインREDOログ・ファイルが必要です。データベース名がdbである場合、1つ目のデータベース・インスタンスのオンラインREDOログ・ファイルのシンボリック・リンク名は次のようになります。

db_redo1_1

db_redo1_2

2つ目のインスタンスのオンラインREDOログ・ファイルのリンク名は次のようになります。

db_redo2_1

db_redo2_2


7.4.2 制御ファイル

データベースは、共有記憶域に格納されている2つの制御ファイルを使用して構成されています。各データベースには、一意の制御ファイルが1つ必要であり、データベースに構成されているその他の制御ファイルは、元の制御ファイルと同一のコピーです。

制御ファイルが使用できなくなった場合、その破損した制御ファイルにアクセスしようとするデータベース・インスタンスは失敗します。様々なディスクに制御ファイルを多重化する(多重コピーを作成する)ことによって、データベースは冗長性を実現でき、それによってシングル・ポイント障害を避けることができます。


関連項目:

制御ファイルの詳細は、『Oracle Database概要』を参照してください。

7.4.3 オンラインREDOログ・ファイル

各データベース・インスタンスには、2つ以上のオンラインREDOログ・ファイルが必要です。データベース・インスタンスのオンラインREDOログ・ファイルは、REDOスレッドと呼ばれます。オンラインREDOログ・ファイルの単一セットの競合を避けるために、各Oracle RACデータベース・インスタンスには、それぞれ固有のREDOスレッドがあります。インスタンス障害が発生しても、障害が発生していないインスタンスは、オンラインREDOログ・ファイルにアクセスできる必要があります。したがって、Oracle RACデータベースのオンラインREDOログ・ファイルは、共有記憶域またはOracle ASMに配置される必要があります。記憶域としてファイル・システムを使用する場合、ファイル・システムは共有またはクラスタ・ファイル・システムである必要があります。

オンラインREDOログ・ファイルの事前構成済のデータベース構成タイプによって作成される生成ファイル名は、使用される記憶域のタイプによって異なることがあります。クラスタ・ファイル・システムまたはOracle ASMを使用している場合を除き、インストール時またはデータベースの作成時に、各オンラインREDOログ・ファイルの記憶域の場所としてRAWデバイス名を指定する必要があります。


関連項目:

  • オンラインREDOログ・ファイルの詳細は、『Oracle Database概要』を参照してください。

  • オンラインREDOログ・ファイルの記憶域の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。


7.5 Oracle RACでのUNDO表領域の管理

Oracle Databaseは、UNDO表領域に、ロールバック情報やUNDO情報を格納します。UNDO表領域の管理には、UNDO表領域の自動管理モードであり、UNDO表領域の管理を容易にする、自動UNDO管理を使用することをお薦めします。

Oracle ASMおよびOracle Managed Files(OMF)を自動UNDO管理とともに使用する場合、初めて起動されたインスタンスはUNDO表領域を持ちませんが、別のインスタンスによって自動的に作成されたそのインスタンス用のUNDO表領域を持つことになります。これは、オンラインREDOログについても同じです。


関連項目:

  • 自動UNDO管理の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • UNDO表領域の管理については、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。


7.6 初期化パラメータ・ファイルの使用

Oracle Databaseの初期化パラメータの保存には、サーバー・パラメータ・ファイル(SPFILE)を使用することをお薦めします。Oracle ASM SPFILEを含む、Oracle ASMのすべてのSPFILEを保存することをお薦めします。SPFILEは共有記憶域に置いて、クラスタ・データベースのすべてのインスタンスがこのパラメータ・ファイルにアクセスできるようにする必要があります。


関連項目:

パラメータ・ファイルの作成および使用については、第5章「Oracle Real Application Clusters環境でのサーバー・パラメータ・ファイルの構成」を参照してください。

7.7 Oracle Database Vaultのデフォルトの監査方針および初期化パラメータ

Oracle Database Vaultでは、ベースラインとなるデータベース監査方針がインストールされます。この方針は、Oracle Database Vaultの表に格納されているアクセス制御構成情報、Oracleデータ・ディクショナリに格納されている情報(ロールバック・セグメント、表領域など)、システム権限の使用、およびOracle Label Securityの構成に適用されます。Oracle Database Vaultをインストールすると、セキュリティに関するデータベース初期化パラメータはデフォルト値で初期化されます。


関連項目:

Oracle Database VaultをインストールすることによってOracle RACデータベース構成が受ける影響の詳細は、『Oracle Database Vault管理者ガイド』を参照してください。

7.8 Oracle Net Servicesの構成ファイルの理解

ほとんどの環境に対応するように、Oracle Databaseサーバーとクライアントのネットワーク要素が事前構成されています。デフォルトでは、簡易接続ネーミング・メソッドが有効化され、リポジトリは不要です。簡易接続以外のネーミング・メソッドを使用する場合は、Oracle Net Servicesの追加の構成が必要となる場合があります。

次の項では、Oracle RACデータベースのためのOracle Net Servicesの構成について説明します。

7.8.1 Oracle RACデータベースのデータベース・サービス

各データベースは、1つ以上のサービスで表されます。サービスは、サービス名(sales.example.comなど)によって識別されます。クライアントはサービス名を使用して、自身がアクセスする必要があるデータベースを識別します。データベース・サービスとネットワーク内でのその場所についての情報は、クライアントに対して透過的です。

データベース接続の作成にサービス名を使用する際に必要な情報はリポジトリに格納されており、1つ以上のネーミング・メソッドで表されます。ネーミング・メソッドとは、クライアント・アプリケーションがデータベース・サービスへの接続を試みるときに、接続識別子(サービス名など)を接続記述子に解決するために使用する解決方法です。Oracle Net Servicesは、いくつかの種類のネーミング・メソッドを提供しています。これらは、各クライアント上のローカル構成またはネットワーク上のすべてのクライアントがアクセスできる集中化された構成をサポートしています。

Oracle Database 11gリリース2(11.2)のデータベース・サービスは、LOCAL_LISTENERREMOTE_LISTENERパラメータに指定されたリスナーに自動的に登録されます。登録時に、PMONは情報(サービス名、インスタンス名、ワークロード情報など)をリスナーに送信します。この機能は、サービス登録と呼ばれます。

サービスは、そのワークロード(現在処理している作業の量)をローカル・リスナーとSCANリスナーに登録することで、自身のセッションを調整します。クライアントはSCANリスナーによって、特定のサービスのインスタンスを実行する、負荷が最も低いノードのローカル・リスナーへとリダイレクトされます。この機能は、ロード・バランシングと呼ばれます。ローカル・リスナーは、クライアントをディスパッチャ・プロセスに送るか(データベースが共有サーバー用に構成されていた場合)、またはクライアントを専用サーバー・プロセスに送ります。

Oracleインスタンスの起動後にリスナーが起動し、リスナーがサービス登録に使用可能になると、次回にOracle Databaseプロセス・モニター(PMON)が検出ルーチンを起動するまで登録は行われません。デフォルトでは、PMON検出ルーチンは60秒ごとに起動されます。60秒の遅延を変更するには、SQL文ALTER SYSTEM REGISTERを使用します。この文によって、PMONはすぐにサービスを登録します。


注意:

リスナーの起動直後にこの文を実行するスクリプトを作成することをお薦めします。インスタンスが登録され、サービスが現在登録されている場合、またはリスナーが停止している場合にこの文を実行しても、何も処理されません。


関連項目:

サービス登録の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

7.8.2 リスナー構成ファイル(listener.ora)の構成

次の項で説明するように、Oracle Net Servicesとリスナーを構成できます。

7.8.2.1 グリッド・ネーミング・サービスとリスナー

GNSを有効にした場合、リスナーを手動で構成する必要はありません。

GNS構成では、クラスタに1つのGNSデーモンが割り当てられます。GNSによって管理されるクラスタ・ドメインへのサービス要求はGNSのVIPアドレスにルーティングされ、そこで要求はGNSデーモンへとルーティングされます。

GNSデーモンは登録をリスニングします。SCAN VIPは、ノードで使用が開始された際に自身のアドレスをGNSに登録します。GNSは、DNSからSCANの要求を受信すると、登録されたアドレスをDNSに戻します。

7.8.2.2 ローカル・リスナー

Oracle Database 11gリリース2(11.2)から、ローカル・リスナー(デフォルトのリスナー)は、Oracle Grid Infrastructureのインストール時にGridホームに配置されるようになりました。listener.oraファイルは、Grid_home\network\adminディレクトリにあります。Oracle Net Services構成ファイルを含むディレクトリを指すようにTNS_ADMIN環境変数またはレジストリ値を設定することによって、listener.oraファイルにデフォルト以外の場所を使用できます。

Oracle Databaseの作成時、LOCAL_LISTENERパラメータは、データベースのローカル・リスナーを指すように自動的に構成されます。データベース・エージェント・プロセス(oraagent.exe(以前のracgimon))は、LOCAL_LISTENERパラメータにOracle Netサービス名を必要としない接続記述子を設定します。

LOCAL_LISTENERには手動で値を設定できます。LOCAL_LISTENERを設定すると、データベース・エージェント・プロセスはこの値を自動更新しません。このパラメータは設定せずに、データベース・エージェント・プロセスで自動的にメンテナンスできるようにすることをお薦めします。LOCAL_LISTENERを設定しなければ、リスナーのポートまたはIPアドレスが変更された場合でも、Gridホームのローカル・リスナーとデータベースの関連付けは自動的に更新されます。


関連項目:

  • tnsnames.oraファイルで定義されるリスナーの関連付けの詳細は、「ネット・サービス名(tnsnames.oraファイル)」を参照してください。

  • listener.oraファイルの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

  • リスナーの概要と構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。


7.8.2.3 Oracle Databaseによるリスナー・ファイル(listener.ora)の使用

ローカル・リスナーは、データベース接続要求と、外部プロシージャやOracle XML Database (XDB)要求などのデータベース接続以外の要求に応答するように構成されています。listener.oraファイルは、リスナーの構成ファイルです。これには、接続要求を受け入れるプロトコル・アドレス、リスニングするデータベース・サービスとデータベース以外のサービスのリストおよびリスナーにより使用される制御パラメータを含めることができます。Oracle ClusterwareおよびOracle RACにより使用されるリスナーの構成は、サーバー制御ユーティリティ(SRVCTL)コマンドまたはNETCAを使用して変更できます。listener.oraファイルを手動で編集する必要はありません。

Oracle RACをインストールする前の、Oracle Grid Infrastructureのインストール中、NETCAはGridホームにLISTENERと呼ばれるデフォルトのリスナーを作成して起動します。このリスナーは、デフォルトのプロトコル・リスニング・アドレスで構成されます。このリスナーは、インストール中に指定した1つのプロトコル・アドレスに送信された接続要求に応答するように構成されます。

Oracle RACのインストール中に、Oracle RACデータベースはGridホームのリスナーを使用して、Oracle RACデータベースに関するサービス情報を構成します。データベース・サービスは自動的に登録されるため、listener.oraファイルでの構成は必要ありません。動的なサービス登録よって、データベース・サービスの静的な構成が不要になります。ただし、Oracle Enterprise Managerを使用する予定の場合は、静的なサービス構成が必要です。

各リスナーは、リスニングするエンドポイントを指定する1つ以上のプロトコル・アドレスで構成されます。プロトコル・アドレスは、リスナーがリスニングするプロトコルと、アドレス、ホスト、ポートなどの他のプロトコル固有の情報を定義します。Oracle Database 11gリリース2からは、listener.oraファイルにIPCキーおよび次の情報のみが含まれるようになりました。

(ADDRESS = (PROTOCOL=TCP)(HOST=)(PORT=1521))

前述の例で、プロトコルADDRESSは、暗黙的にローカル・ノードのHOSTエンドポイントとなります。Oracle RACデータベースの場合、listener.oraファイルはすべてのノードで同じです。ポート番号など、リスニングしているエンドポイントは、リスナーに動的に登録されます。

例7-1 Oracle RACノードのlistener.oraファイルの例

次は、インストール後の状態の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\11.2.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

7.8.2.4 DBCAを使用したデータベースの複数のリスナーの構成

1つのlistener.oraファイルには、それぞれが一意の名前を持つ複数のリスナーを構成できます。複数のリスナーを構成できるのは、トップレベルの各構成パラメータにリスナー名の接尾辞があるか、または構成パラメータがリスナー名そのものであるためです。


注意:

ほとんどのユーザーの環境では、ノードごとに1つのリスナーのみを実行することをお薦めします。

DBCAを使用すると、Oracle RACデータベースを登録するリスナーを構成できます。DBCAがノードで複数のリスナーを検出した場合、リスナーのリストが表示されます。データベースに登録するリスナーを1つまたはすべて選択できます。


注意:

lsnrctlコマンドを使用してOracle Database 11gリリース2 (11.2)のローカル・リスナーおよびSCANリスナーを管理するには、ORACLE_HOME環境変数にGridホームのパスを設定します。以前のリリースで使用していたOracleホームの位置からlsnrctlコマンドを使用しないでください。この位置はOracle Database 11gリリース2 (11.2)では使用できません。

7.8.3 ネット・サービス名(tnsnames.oraファイル)

tnsnames.oraファイルは、各ノードに作成され、ネット・サービス名のリポジトリとして使用されます。各ネット・サービス名は、接続識別子に関連付けられています。接続識別子は、ユーザー定義の名前を接続記述子にマップする識別子です。接続記述子には、次の情報が含まれます。

  • プロトコル・アドレスを介するリスナーの位置を含む、サービスへのネットワーク・ルート

  • データベース・サービスの名前に設定される値を持つ、SERVICE_NAMEパラメータ


    注意:

    指定できるサービス名は1つのみであるため、tnsnames.oraファイルで使用するSERVICE_NAMEパラメータは1つです。データベース初期化ファイルにはservice_namesパラメータもあります。service_namesデータベース・パラメータにはデフォルトで、初期化パラメータ・ファイルのdb_namedb_domainパラメータからなるグローバル・データベース名が設定されています。

例7-2 tnsnames.oraファイルの例

tnsnames.oraファイルの例を次に示します。これには単一のネット・サービス名エントリが含まれます。ネット・サービス名の接続識別子はsalesです。sales接続識別子に関連付けられているデータベース・サービスはmyAppです。接続識別子は、ADDRESSで始まる行に含まれる情報です。

#  tnsnames.ora Network Configuration File:
C:\app\grid\11.2.0\network\admin\tnsnames.ora
#  Generated by Oracle configuration tools.

sales =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = myscan.mycluster.example.com)(PORT = 1522))
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = myApp)
    )
  )

tnsnames.oraファイルは、Grid_home\network\adminOracle_home\network\adminの両方のディレクトリにあります。Oracle Grid Infrastructureがインストールされている場合、デフォルトでは、Gridホームからtnsnames.oraファイルが読み取られます。

例7-3 Oracle RACデータベースのtnsnames.oraエントリの例

次は、インストールの後のOracle RAC 11gリリース2(11.2)のデータベースのtnsnames.oraファイルに格納されているネット・サービス名の例です。データベース名はRACDBで、クラスタ名はmyclusterであり、GNSはクラスタ用に構成されています。

RACDB =
   (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST=myscan.mycluster.example.com)(PORT=1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = RACDB)
      )
    )

Oracle Clusterware 11gリリース2以上では、リスナーの対応付けにtnsnames.oraファイルのエントリは必要ありません。リスナー対応付けは、次のように構成されます。

  • 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パラメータに対するリスナーの関連付けは不要です。


関連項目:

tnsnames.oraファイルの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

DBCAは、次の項で説明するように、接続用のネット・サービス名を作成します。

7.8.3.1 データベース接続用のネット・サービス名

データベースのインスタンスに接続するクライアントは、接続記述子のSCANを使用する必要があります。また、ネット・サービス名を使用して、データベースに接続することもできます。DBCAで作成されるネット・サービス名によって、Oracle Enterprise ManagerがOracle RACデータベースを検出できるようになります。

クラスタに対して3つのSCANアドレスが構成され、サーバーに割り当てられます。クライアントがSCANを使用して接続要求を発行すると、3つのSCANアドレスがクライアントに戻されます。1つ目のアドレスに障害がある場合は、SCAN名への接続要求が次のアドレスにフェイルオーバーされます。複数のアドレスを使用することによって、最初のインスタンスに障害があっても、クライアントはデータベースのインスタンスに接続できます。

例7-4 データベース接続用のネット・サービス名エントリの例

この例は、tnsnames.oraファイルで使用される接続記述子を示しています。ここでの接続識別子は、データベース名mycluster.example.comと同じです。個々のサーバー、仮想インターネット・プロトコル(VIP)・アドレスまたはクラスタ・ノード名を指定するかわりに、接続記述子はSCAN(myscan.mycluster.example.com)を使用します。

ネット・サービス名mycluster.example.comを使用する接続は、myAppデータベース・サービスを実行するmyclusterデータベースのいずれのデータベース・インスタンスにも接続されます。

mycluster.example.com =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = host=myscan.mycluster.example.com)
      (PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = myApp)
    )
  )

ネット・サービス名は、データベース、データベース・インスタンスまたはリスナーが実行されるサーバーの物理アドレスを認識する必要はありません。SCANはDNSによって解決され、クライアントに3つのIPアドレスが戻されます。その後、クライアントは、接続が確立されるまで各アドレスを連続して試行します。

例7-5 簡易接続ネーミング・メソッドを使用したOracle RACへの接続

クライアントはSCANおよび簡易接続ネーミング・メソッドを使用することで、tnsnames.oraファイルを構成せずに、Oracle RACデータベースに接続できます。SCANがmyscan.mycluster.example.comであるクラスタでOracle RACデータベースが実行されている場合は、次のような接続記述子を使用して、データベース・サービスRACDB.example.comに対する接続リクエストを使用できます。

username/@myscan.mycluster.example.com:1521/RACDB.example.com

7.8.3.2 インスタンス接続用のネット・サービス名

データベースの特定のインスタンスに接続するクライアントは、そのインスタンスのネット・サービス名を使用します。例7-6tnsnames.oraエントリが使用されると、Oracle Enterprise Managerはクラスタ内のデータベース・インスタンスを検出できます。これらのエントリは、インスタンスの起動および停止にも使用されます。

例7-6 インスタンス接続用のネット・サービス名エントリの例

この例は、特定のデータベース・インスタンスへの接続に使用されるネット・サービス名を示しています。接続識別子は、インスタンス名mycluster1.example.comと同じです。接続記述子はSCANを使用して、インスタンスを特定します。ネット・サービス名mycluster1.example.comを使用する接続は、myclusterデータベースのmycluster1データベース・インスタンスに接続され、インスタンスが実行されているノードを認識する必要はありません。

mycluster1.example.com=
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST=myscan.mycluster.example.com)(PORT=1521))
    (CONNECT_DATA=
      (SERVICE_NAME=mycluster.example.com)
      (INSTANCE_NAME=mycluster1)
    )
  )

7.8.4 Net Servicesプロファイル(sqlnet.oraファイル)

データベースの作成後に、OUIによってNETCAが起動されます。NETCAは、Oracle Net Servicesプロファイルまたはsqlnet.oraファイルを作成します。Oracle Grid Infrastructureインストールでは、sqlnet.oraファイルは、デフォルトで次のディレクトリにあります。

Grid_home\network\admin

%ORACLE_HOME%\network\adminディレクトリの場合、デフォルトのsqlnet.oraファイル以外にも、sampleサブディレクトリにサンプルのsqlnet.oraファイルがあります。

インストール時、NETCAによって、sqlnet.oraファイルに次のエントリが作成されます。%ORACLE_BASE%は、Oracle RACインストール用のOracleベース・ディレクトリへのパスです。

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)
ADR_BASE =%ORACLE_BASE%

AUTHENTICATION_SERVICESパラメータは、データベースにアクセスするユーザーの認証方法を指定します。値NTSは、Microsoft Windowsに備わっているオペレーティング・システム認証を使用して、データベースへのアクセスを認可する必要があることを示します。NAMES.DIRECTORY_PATHパラメータは、接続識別子を接続記述子に解決するために使用するネーミング・メソッドの優先順序を指定します。ADR_BASEパラメータは、自動診断リポジトリ(ADR)がデータベースで有効である場合に、トレーシング・インシデントとロギング・インシデントが格納されるベース・ディレクトリを指定します。

簡易接続ネーミング・メソッドを使用すると、TCP/IP環境でtnsnames.oraファイル内をサービス名で検索する必要がなくなります。簡易接続では、クライアントはホスト名と、オプションのポートおよびサービス名で構成される単純なTCP/IPアドレスの接続文字列を使用します。このメソッドを使用する場合、ネーミングまたはディレクトリ・システムは必要ありません。例については、例7-5「簡易接続ネーミング・メソッドを使用したOracle RACへの接続」を参照してください。


関連項目:

  • sqlnet.oraファイルの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • 認証の詳細は、『Oracle Database概要』を参照してください。

  • データベースの接続性を考慮したクライアントの構成方法の詳細は、『Oracle Database Clientインストレーション・ガイドfor Microsoft Windows』を参照してください。

  • ADRの詳細は、『Oracle Database管理者ガイド』を参照してください。


7.9 Oracle RACデータベースでのSCANの使用

Oracle RACデータベースは、接続時ロード・バランシング機能とフェイルオーバー機能に重要なメリットを提供します。スタンドアロンのOracle Databaseは、共有サーバー・ディスパッチャ・プロセス間で接続を分散することでロード・バランシングを実現します。

Oracle RACデータベースは、クラスタの単一クライアント・アクセス名(SCAN)によってロード・バランシングを拡大し、クラスタ・データベースのすべてのインスタンスにわたって接続を平均化します。また、SCANによってデータベースに場所の独立性がもたらされるため、クライアント構成は特定のデータベースまたはデータベース・インスタンスがどのノードで実行されているかに依存しません。

Oracle RACのロード・バランシング機能については、次の項を参照してください。

7.9.1 SCANの理解

SCANは完全修飾名(ホスト名.ドメイン名)で、SCANリスナーに割り当てられたすべてのアドレスに解決するように構成されています。SCANのデフォルト値は、cluster_name.GNS_sub_domain、または(GNSが使用されていない場合)cluster_name-scan.domain_nameです。たとえば、GNSを使用しないクラスタでは、クラスタ名がsalesRACで、ドメインがexample.comである場合、デフォルトのSCANアドレスはsalesRAC-scan.example.com:1521です。

SCANは、3つのIPアドレスに解決されるようDNSで構成され、DNSでは必ずラウンド・ロビン・アルゴリズムを使用してこれらのアドレスを返します。これは、SCANがDNSにより解決される場合、毎回異なる順序でクライアントにIPアドレスが返されるということです。


注意:

ラウンド・ロビン・アルゴリズムを使用してDNSにSCANを構成しても、接続のフェイルオーバーは保証されません。かわりに、接続のフェイルオーバーは、Oracleクライアントによって処理されます。SCANを使用する接続では、Oracle Client 11gリリース2を使用することをお薦めします。

SCANによってデータベースに場所の独立性がもたらされるため、クライアント構成には、特定のデータベースまたはデータベース・インスタンスをホストする各ノードのアドレスを含める必要はありません。たとえば、クラスタにポリシー管理型のサーバー・プールを構成した場合、サーバー・プールにどのノードが割り当てられているかにかかわらず、SCANによってサーバー・プールのデータベースに接続できます。

Oracle Grid Infrastructureのインストール時に、いくつかのOracle ClusterwareリソースがSCAN用に作成されます。

  • SCAN VIPは、SCANが解決するIPアドレスごとに作成されます

  • SCANリスナーは、SCAN VIPごとに作成されます

  • SCAN VIPへの依存性は、SCANリスナー用に構成されます

SCAN VIPはクラスタ内のいずれのノードでも実行可能であることを除き、SCAN VIPはノードVIPのように機能します。また、SCAN VIPは3つあるが、クラスタ内にあるノードが2つのみである場合、同じサーバーで実行できるSCAN VIPは2つになります。ノードVIPではなくSCANを使用して接続するクライアント(ユーザーまたはアプリケーション)は、クラスタに対してノードが追加または削除されたときに、そのローカルのtnsnames.oraファイルのVIPアドレスのリストを更新する必要はありません。

7.9.2 SCANリスナーとリスナー登録の理解

Oracle Grid Infrastructureのインストールでは、SCANを解決するために割り当てられるIPアドレスと同数のSCANリスナーが作成されます。高可用性とスケーラビリティのため、SCANは3つのアドレスに解決することをお薦めします。SCANを3つのアドレスに解決する場合は、3つのSCANリスナーが作成されます。

SCANリスナーのアドレスは、ラウンド・ロビン方式を使用して、ドメイン・ネーム・サービス(DNS)で、またはグリッド・ネーミング・サービス(GNS)のクラスタ内で解決されます。SCANリスナーはクラスタ内の任意のノードで実行できます。

データベース・パラメータLOCAL_LISTENERはローカル・データベース・リスナーのリスニング・エンドポイントを指定し、データベース・パラメータREMOTE_LISTENERパラメータはSCANリスナーを識別します。データベースは、これらのパラメータに含まれる接続記述情報を使用して、ローカル・リスナーとSCANリスナーに登録されます。Oracle RAC 11g リリース2以降のインスタンスは、リモート・リスナーとしてはSCANリスナーにのみ登録されます。アップグレードしたデータベースは、リモート・リスナーとしてSCANリスナーに登録されるとともに、引き続きすべてのノード・リスナーにも登録されています。

Oracle Database 11gリリース2から、REMOTE_LISTENERパラメータにはSCANアドレスが常に設定されます。ホスト名にSCAN(HOST=scan)を使用する単一アドレスのOracle Net別名は設定しないでください。たとえば、クラスタのSCANがmyscanで、クラスタのGNSサブドメインがmycluster.example.comである場合、REMOTE_LISTENERパラメータには次の値が保持されます。

myscan.mycluster.example.com:1521

データベース・エージェント・プロセス(以前のracgimon)は、ローカル・ノードのノードVIPアドレスに接続記述子を指定することで、Oracle RACデータベース用にLOCAL_LISTENER初期化パラメータを自動的に構成します。この設定を変える必要はありません。REMOTE_LISTENERパラメータには、SCANとSCANポートを設定する必要があります。SCANポートを変更する場合は、SQL文ALTER SYSTEM SET REMOTE_LISTENERを使用して、REMOTE_LISTENERパラメータの値を変更する必要があります。

7.9.3 フェイルオーバー、ロード・バランシングおよびSCANの理解

Oracle RACはノードVIPアドレスを使用したフェイルオーバーを提供します。これは、同じデータベース・サービスに対するクライアント接続要求を管理するために、複数のノードで複数のリスナーを構成することで実現します。ノードで障害が発生すると、VIPへのサービス接続は動作可能なノードに透過的に再接続されるため、VIPを介して接続するクライアントに障害を迅速に通知できます。アプリケーションおよびクライアントが透過的アプリケーション・フェイルオーバー・オプションを使用して構成されている場合、そのクライアントは動作可能なノードに再接続されます。

Oracle Database 11gリリース2より前のOracle RACリリースのVIPアドレスを使用するように構成されたクライアントは、既存の接続アドレスを引き続き使用できるため、SCANを使用する必要はありません。以前のリリースのOracle DatabaseをアップグレードするとSCANリスナーに登録されるため、クライアントがSCANを使用してそのデータベースに接続できるようになります。

Oracle RACデータベースには、2つのタイプのロード・バランシング(クライアント側およびサーバー側のロード・バランシング)を実装できます。クライアント側のロード・バランシングは、リスナー全体で接続要求のバランスをとります。サーバー側のロード・バランシングの場合、SCANリスナーはロード・バランシング・アドバイザを使用して、現在サービスを提供している最適なインスタンスに接続要求を送ります。

サービス名を使用しているOracle RACデータベースにSCANを使用して接続する場合は、環境に基づいて次のアクションが発生します。番号が付けられたアクションは、図7-1に示されている矢印に相当します。

  1. 各インスタンスのPMONプロセスは、ローカル・ノード上のデフォルトのリスナーと、REMOTE_LISTENERデータベース・パラメータで指定された各SCANリスナーにデータベース・サービスを登録します。リスナーは、インスタンスとディスパッチャによって処理されている作業の量に基づいて動的に更新されます。

  2. クライアントは、次の書式の接続記述子を使用して、データベース接続要求を発行します。

    orausr/@scan_name:1521/sales.example.com
    

    注意:

    簡易接続ネーミング・メソッドを使用する場合は、クライアントのsqlnet.oraファイルに、NAMES.DIRECTORY_PATHパラメータで指定されたネーミング・メソッドのリストのEZCONNECTが含まれていることを確認します。

  3. クライアントは、DNSを使用してscan_nameを解決します。SCANに割り当てられる3つのアドレスがDNSから戻された後、クライアントは1つ目のIPアドレスに接続要求を送信します。接続要求が失敗すると、クライアントは次のIPアドレスを使用して接続を試行します。

  4. 接続要求が成功すると、クライアントはsalesデータベースをホストするクラスタのSCANリスナーに接続します。SCANリスナーは、インスタンスsales1およびsales2のワークロードと、これらが実行されているノードのワークロードを比較します。node2node1よりも負荷が小さいため、SCANリスナーはnode2を選択し、そのノードのリスナーのアドレスをクライアントに送信します。

  5. クライアントは、node2のローカル・リスナーに接続します。ローカル・リスナーは、データベース接続のための専用サーバー・プロセスを起動します。

  6. クライアントは、node2の専用サーバー・プロセスに直接接続し、sales2データベース・インスタンスにアクセスします。

図7-1 SCANを使用するOracle RAC接続のロード・バランシング・アクション

図7-1の説明が続きます。
「図7-1 SCANを使用するOracle RAC接続のロード・バランシング・アクション」の説明


関連項目:

  • SCANとその構成の詳細は、『Oracle Grid Infrastructureインストレーション・ガイドfor Microsoft Windows x64(64-Bit)』を参照してください。

  • フェイルオーバー、ロード・バランシングおよびロード・バランシング・アドバイザの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。


7.9.4 Oracle RACデータベースにおける共有サーバー使用の理解

DBCAは、デフォルトで、Oracle RACデータベースを共有サーバーではなく専用サーバーで構成します。ただし、DBCAの使用時に共有サーバー・オプションを選択すると、DBCAは共有サーバーを構成します。共有サーバーが構成されていると、Oracle RACでは、専用サーバーと共有サーバーの両方の処理が使用されます。


関連項目:

  • インスタンス間登録、共有サーバーと専用サーバーの構成、および接続時ロード・バランシングの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • Oracle RAC環境における接続ロード・バランシングの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。