Oracle® Real Application Clustersインストレーション・ガイド 11gリリース2 (11.2) for Microsoft Windows x64 (64-Bit) B58877-06 |
|
前 |
次 |
この章では、Oracle Real Application Clusters(Oracle RAC)インストールの構成について説明します。
この章の内容は次のとおりです。
Oracle Net Configuration Assistant(NETCA)およびOracle Database Configuration Assistant(DBCA)は、データベースの作成要件を満たすように、またOracle Enterprise ManagerによるOracle RACデータベースの検出が可能になるように環境を構成します。
注意: 構成ファイルは、クラスタ・データベースの各ノードに作成されます。 |
Oracle RACのインストールの完了後は、ホスト名を変更しないようにしてください(ドメイン修飾の追加または削除を含む)。ノード名はOracle Clusterwareのインストール中にホスト名から作成され、データベース・プロセスで広範に使用されます。ホスト名が変更されているノードは、クラスタから削除して新しいホスト名で追加しなおす必要があります。
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"
各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_BASE
、ORACLE_HOME
およびORACLE_SID
などの環境変数の値を記録し、またインストールを実行するユーザーに対してPATH
環境変数の値を更新します。LinuxシステムおよびUNIXシステムでは、このような環境変数をユーザー・セッションまたはユーザー・プロファイルに手動で設定する必要があります。
%ORACLE_HOME%
(デフォルトのOracleホーム)の現在の設定を変更するには、次の手順を実行します。
OUI(リリース10.n以上)を実行します。
「インストールされた製品」ボタンをクリックします。
ウィンドウ上部にある、「環境」タブをクリックします。
デフォルトにするOracleホーム・ディレクトリをリストの最上位に移動します。
変更を適用して、インストーラを終了します。
この手順では、レジストリのデフォルトのORACLE_HOME
変数の値が、選択した値に変更されます。これによって、各製品の%ORACLE_HOME%\bin
ディレクトリが、PATH
環境変数に正しい順序で表示されます。
DBCAが作成するデータベース・コンポーネントには、次のものがあります。
シングル・インスタンスおよびクラスタ・データベースの両方の環境では、Oracle Databaseは表領域という小さな論理領域に分割されています。各表領域は、共有記憶域にある1つ以上のデータ・ファイルに対応しています。表7-1に、Oracle RACデータベースで使用する表領域名、およびその表領域に含まれるデータの種類を示します。
表7-1 Oracle Real Application Clustersデータベースで使用する表領域名
表領域名 | 内容 |
---|---|
必須の表領域で、データベースに必要な表、ビューおよびストアド・プロシージャの定義を含む、データ・ディクショナリで構成されます。この表領域内の情報は自動的にメンテナンスされます。 |
|
必須の補助システム表領域で、多くのOracle Database機能および製品によって使用されます。この表領域には、 |
|
ユーザー作成の表領域で、アプリケーション・データで構成されています。表を作成しデータを入力するにつれて、この領域にデータが書き込まれます。 |
|
必須の表領域で、SQL文の処理時に作成された一時表および索引が含まれます。非常に大規模な表に対する |
|
システム管理の表領域で、インスタンスごとのUNDOデータが含まれます。各Oracle RACインスタンスは、表領域名のnに異なる値を使用します。これらの表領域は、自動UNDO管理に使用されます。 |
|
システム表領域で、ロールバック・セグメントが含まれます。自動UNDO管理を使用しない場合は、 |
関連項目: SYSTEM、SYSAUXおよび他の表領域の詳細は、 『Oracle Database管理者ガイド』 を参照してください。 |
Oracle RACのインストール時に事前構成済データベース・テンプレートまたはデータベース構成タイプを選択した場合、これらの表領域名は変更できません。ただし、Oracle RACのインストール時に「詳細」データベース構成タイプを選択した場合は、表領域の名前を変更できます。データベース構成タイプの詳細は、「Oracle Database構成タイプの選択」を参照してください。
前述のとおり、各表領域には1つ以上のデータ・ファイルがあります。事前定義済データベース構成タイプによって作成されるデータ・ファイル名は、記憶域タイプ(Oracle Automatic Storage Management(Oracle ASM)、ファイル・システムなど)によって異なります。
Windowsプラットフォームでは、表7-2に示すデータ・ファイルのシンボリック・リンク名および他のデータベース・ファイルを使用します。インストール時に「詳細」データベース構成タイプを選択した場合は、異なるシンボリック・リンク名を指定できます。
表7-2 Windowsプラットフォームにおけるデータベース・ファイルのシンボリック・リンク名
データベースは、共有記憶域に格納されている2つの制御ファイルを使用して構成されています。各データベースには、一意の制御ファイルが1つ必要であり、データベースに構成されているその他の制御ファイルは、元の制御ファイルと同一のコピーです。
制御ファイルが使用できなくなった場合、その破損した制御ファイルにアクセスしようとするデータベース・インスタンスは失敗します。様々なディスクに制御ファイルを多重化する(多重コピーを作成する)ことによって、データベースは冗長性を実現でき、それによってシングル・ポイント障害を避けることができます。
関連項目: 制御ファイルの詳細は、『Oracle Database概要』を参照してください。 |
各データベース・インスタンスには、2つ以上のオンラインREDOログ・ファイルが必要です。データベース・インスタンスのオンラインREDOログ・ファイルは、REDOスレッドと呼ばれます。オンラインREDOログ・ファイルの単一セットの競合を避けるために、各Oracle RACデータベース・インスタンスには、それぞれ固有のREDOスレッドがあります。インスタンス障害が発生しても、障害が発生していないインスタンスは、オンラインREDOログ・ファイルにアクセスできる必要があります。したがって、Oracle RACデータベースのオンラインREDOログ・ファイルは、共有記憶域またはOracle ASMに配置される必要があります。記憶域としてファイル・システムを使用する場合、ファイル・システムは共有またはクラスタ・ファイル・システムである必要があります。
オンラインREDOログ・ファイルの事前構成済のデータベース構成タイプによって作成される生成ファイル名は、使用される記憶域のタイプによって異なることがあります。クラスタ・ファイル・システムまたはOracle ASMを使用している場合を除き、インストール時またはデータベースの作成時に、各オンラインREDOログ・ファイルの記憶域の場所としてRAWデバイス名を指定する必要があります。
関連項目:
|
Oracle Databaseは、UNDO表領域に、ロールバック情報やUNDO情報を格納します。UNDO表領域の管理には、UNDO表領域の自動管理モードであり、UNDO表領域の管理を容易にする、自動UNDO管理を使用することをお薦めします。
Oracle ASMおよびOracle Managed Files(OMF)を自動UNDO管理とともに使用する場合、初めて起動されたインスタンスはUNDO表領域を持ちませんが、別のインスタンスによって自動的に作成されたそのインスタンス用のUNDO表領域を持つことになります。これは、オンラインREDOログについても同じです。
関連項目:
|
Oracle Databaseの初期化パラメータの保存には、サーバー・パラメータ・ファイル(SPFILE)を使用することをお薦めします。Oracle ASM SPFILEを含む、Oracle ASMのすべてのSPFILEを保存することをお薦めします。SPFILEは共有記憶域に置いて、クラスタ・データベースのすべてのインスタンスがこのパラメータ・ファイルにアクセスできるようにする必要があります。
Oracle Database Vaultでは、ベースラインとなるデータベース監査方針がインストールされます。この方針は、Oracle Database Vaultの表に格納されているアクセス制御構成情報、Oracleデータ・ディクショナリに格納されている情報(ロールバック・セグメント、表領域など)、システム権限の使用、およびOracle Label Securityの構成に適用されます。Oracle Database Vaultをインストールすると、セキュリティに関するデータベース初期化パラメータはデフォルト値で初期化されます。
関連項目: Oracle Database VaultをインストールすることによってOracle RACデータベース構成が受ける影響の詳細は、『Oracle Database Vault管理者ガイド』を参照してください。 |
ほとんどの環境に対応するように、Oracle Databaseサーバーとクライアントのネットワーク要素が事前構成されています。デフォルトでは、簡易接続ネーミング・メソッドが有効化され、リポジトリは不要です。簡易接続以外のネーミング・メソッドを使用する場合は、Oracle Net Servicesの追加の構成が必要となる場合があります。
次の項では、Oracle RACデータベースのためのOracle Net Servicesの構成について説明します。
各データベースは、1つ以上のサービスで表されます。サービスは、サービス名(sales.example.com
など)によって識別されます。クライアントはサービス名を使用して、自身がアクセスする必要があるデータベースを識別します。データベース・サービスとネットワーク内でのその場所についての情報は、クライアントに対して透過的です。
データベース接続の作成にサービス名を使用する際に必要な情報はリポジトリに格納されており、1つ以上のネーミング・メソッドで表されます。ネーミング・メソッドとは、クライアント・アプリケーションがデータベース・サービスへの接続を試みるときに、接続識別子(サービス名など)を接続記述子に解決するために使用する解決方法です。Oracle Net Servicesは、いくつかの種類のネーミング・メソッドを提供しています。これらは、各クライアント上のローカル構成またはネットワーク上のすべてのクライアントがアクセスできる集中化された構成をサポートしています。
Oracle Database 11gリリース2(11.2)のデータベース・サービスは、LOCAL_LISTENER
とREMOTE_LISTENER
パラメータに指定されたリスナーに自動的に登録されます。登録時に、PMONは情報(サービス名、インスタンス名、ワークロード情報など)をリスナーに送信します。この機能は、サービス登録と呼ばれます。
サービスは、そのワークロード(現在処理している作業の量)をローカル・リスナーとSCANリスナーに登録することで、自身のセッションを調整します。クライアントはSCANリスナーによって、特定のサービスのインスタンスを実行する、負荷が最も低いノードのローカル・リスナーへとリダイレクトされます。この機能は、ロード・バランシングと呼ばれます。ローカル・リスナーは、クライアントをディスパッチャ・プロセスに送るか(データベースが共有サーバー用に構成されていた場合)、またはクライアントを専用サーバー・プロセスに送ります。
Oracleインスタンスの起動後にリスナーが起動し、リスナーがサービス登録に使用可能になると、次回にOracle Databaseプロセス・モニター(PMON)が検出ルーチンを起動するまで登録は行われません。デフォルトでは、PMON検出ルーチンは60秒ごとに起動されます。60秒の遅延を変更するには、SQL文ALTER SYSTEM REGISTER
を使用します。この文によって、PMONはすぐにサービスを登録します。
注意: リスナーの起動直後にこの文を実行するスクリプトを作成することをお薦めします。インスタンスが登録され、サービスが現在登録されている場合、またはリスナーが停止している場合にこの文を実行しても、何も処理されません。 |
関連項目: サービス登録の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
次の項で説明するように、Oracle Net Servicesとリスナーを構成できます。
GNSを有効にした場合、リスナーを手動で構成する必要はありません。
GNS構成では、クラスタに1つのGNSデーモンが割り当てられます。GNSによって管理されるクラスタ・ドメインへのサービス要求はGNSのVIPアドレスにルーティングされ、そこで要求はGNSデーモンへとルーティングされます。
GNSデーモンは登録をリスニングします。SCAN VIPは、ノードで使用が開始された際に自身のアドレスをGNSに登録します。GNSは、DNSからSCANの要求を受信すると、登録されたアドレスをDNSに戻します。
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ホームのローカル・リスナーとデータベースの関連付けは自動的に更新されます。
関連項目:
|
ローカル・リスナーは、データベース接続要求と、外部プロシージャや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
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)では使用できません。 |
tnsnames.ora
ファイルは、各ノードに作成され、ネット・サービス名のリポジトリとして使用されます。各ネット・サービス名は、接続識別子に関連付けられています。接続識別子は、ユーザー定義の名前を接続記述子にマップする識別子です。接続記述子には、次の情報が含まれます。
プロトコル・アドレスを介するリスナーの位置を含む、サービスへのネットワーク・ルート
データベース・サービスの名前に設定される値を持つ、SERVICE_NAME
パラメータ
注意: 指定できるサービス名は1つのみであるため、tnsnames.ora ファイルで使用するSERVICE_NAME パラメータは1つです。データベース初期化ファイルにはservice_names パラメータもあります。service_names データベース・パラメータにはデフォルトで、初期化パラメータ・ファイルのdb_name とdb_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\admin
とOracle_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は、次の項で説明するように、接続用のネット・サービス名を作成します。
データベースのインスタンスに接続するクライアントは、接続記述子の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-6
のtnsnames.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) ) )
データベースの作成後に、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への接続」を参照してください。
関連項目:
|
Oracle RACデータベースは、接続時ロード・バランシング機能とフェイルオーバー機能に重要なメリットを提供します。スタンドアロンのOracle Databaseは、共有サーバー・ディスパッチャ・プロセス間で接続を分散することでロード・バランシングを実現します。
Oracle RACデータベースは、クラスタの単一クライアント・アクセス名(SCAN)によってロード・バランシングを拡大し、クラスタ・データベースのすべてのインスタンスにわたって接続を平均化します。また、SCANによってデータベースに場所の独立性がもたらされるため、クライアント構成は特定のデータベースまたはデータベース・インスタンスがどのノードで実行されているかに依存しません。
Oracle RACのロード・バランシング機能については、次の項を参照してください。
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アドレスのリストを更新する必要はありません。
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
パラメータの値を変更する必要があります。
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に示されている矢印に相当します。
各インスタンスのPMONプロセスは、ローカル・ノード上のデフォルトのリスナーと、REMOTE_LISTENER
データベース・パラメータで指定された各SCANリスナーにデータベース・サービスを登録します。リスナーは、インスタンスとディスパッチャによって処理されている作業の量に基づいて動的に更新されます。
クライアントは、次の書式の接続記述子を使用して、データベース接続要求を発行します。
orausr/@scan_name:1521/sales.example.com
注意: 簡易接続ネーミング・メソッドを使用する場合は、クライアントのsqlnet.ora ファイルに、NAMES.DIRECTORY_PATH パラメータで指定されたネーミング・メソッドのリストのEZCONNECT が含まれていることを確認します。 |
クライアントは、DNSを使用してscan_name
を解決します。SCANに割り当てられる3つのアドレスがDNSから戻された後、クライアントは1つ目のIPアドレスに接続要求を送信します。接続要求が失敗すると、クライアントは次のIPアドレスを使用して接続を試行します。
接続要求が成功すると、クライアントはsales
データベースをホストするクラスタのSCANリスナーに接続します。SCANリスナーは、インスタンスsales1
およびsales2
のワークロードと、これらが実行されているノードのワークロードを比較します。node2
はnode1
よりも負荷が小さいため、SCANリスナーはnode2
を選択し、そのノードのリスナーのアドレスをクライアントに送信します。
クライアントは、node2
のローカル・リスナーに接続します。ローカル・リスナーは、データベース接続のための専用サーバー・プロセスを起動します。
クライアントは、node2の専用サーバー・プロセスに直接接続し、sales2
データベース・インスタンスにアクセスします。
関連項目:
|
DBCAは、デフォルトで、Oracle RACデータベースを共有サーバーではなく専用サーバーで構成します。ただし、DBCAの使用時に共有サーバー・オプションを選択すると、DBCAは共有サーバーを構成します。共有サーバーが構成されていると、Oracle RACでは、専用サーバーと共有サーバーの両方の処理が使用されます。
関連項目:
|