ヘッダーをスキップ
Oracle Real Application Clustersインストレーション・ガイド
11gリリース1(11.1)for Linux and UNIX Systems
E05832-04
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

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

7.1 Oracle RACに構成された環境の理解

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


注意:

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

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

7.2 Oracle RACのOracle Cluster Registry

DBCAは、作成するクラスタ・データベースの構成情報を格納するために、Oracle Cluster Registry(OCR)を使用します。OCRは、クラスタ・ファイル・システム環境内で共有されます。クラスタ・ファイル・システムを使用していない場合は、このファイルを共有ディスク・デバイス・ファイルにする必要があります。OCRは、Oracle Universal Installer(OUI)によって、Oracle Clusterwareのインストール時に自動的に初期化されます。

7.3 Oracle RAC用のoratabファイル構成

Oracleは、oratab構成ファイルに各Oracle RACデータベースのエントリを作成します。oratabファイルは、インストール時にroot.shスクリプトによって作成され、データベースの作成時または削除時にDatabase Configuration Assistantによって更新されます。Oracle Enterprise Managerは、サービス検出時に、このファイルを使用してOracle RACデータベースの名前を確認します。また、再起動時にそのデータベースを自動的に起動するかどうかも確認します。

データベースのエントリの構文は、次のとおりです。

$DB_UNIQUE_NAME:$ORACLE_HOME:N

コロン(:)はフィールドの終了記号として使用されます。改行は、エントリの終了を示します。シャープ記号(#)で始まる行はコメントです。環境変数$DB_UNIQUE_NAMEは、Oracle RACデータベースのOracleシステム識別子(SID)です。RACデータベースの$DB_UNIQUE_NAME識別子は企業内で一意である必要があります。$ORACLE_HOMEは、データベースへのディレクトリ・パス、Nは、システムの再起動時にデータベースを起動しないことを示します。たとえば、データベース名salesのエントリは、次のとおりです。

sales:u01/app/oracle/sales:N

7.4 Database Configuration Assistantで作成したデータベース・コンポーネント

この項では、DBCAによって作成されたデータベース・コンポーネントについて説明します。内容は次のとおりです。

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

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

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

表領域名 内容

SYSTEM

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

SYSAUX

補助システム表領域で、DRSYS(Oracle Text用のデータを含む)、CWMLITE(OLAPスキーマを含む)、XDB(XML機能用)、ODM(Oracle Data Mining用)、TOOLS(Oracle Enterprise Manager表を含む)、INDEXEXAMPLEおよびOEM-REPO表領域を含みます。

USERS

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

TEMP

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

UNDOTBSn

DBCAが自動UNDO管理用に作成する、インスタンスごとのUNDO表領域です。

RBS

自動UNDO管理を使用しない場合、Oracle Databaseはロールバック・セグメント用にRBS表領域を使用します。


OUIで事前構成済データベース構成オプションを使用する場合、これらの表領域名は変更できません。ただし、詳細なデータベース作成方法を使用する場合は、表領域名を変更できます。

前述のとおり、各表領域には1つ以上のデータ・ファイルがあります。事前定義済データベース構成オプションによって作成されるデータ・ファイル名は、記憶域タイプ(ASM、OFS、ブロック・デバイス、RAWデバイスなど)によって異なります。

7.4.2 制御ファイル

データベースは、共有記憶域に格納されている2つの制御ファイルを使用して設定されています。

7.4.3 REDOログ・ファイル

各インスタンスは、共有記憶域に格納されている2つ以上のREDOログ・ファイルを使用して設定されています。クラスタ・ファイル・システムを使用する場合、これらのファイルは共有ファイル・システムのファイルです。クラスタ・ファイル・システムを使用しない場合、これらのファイルはブロック・デバイスまたはRAWデバイスです。ASMを使用する場合、これらのファイルは、ASMディスク・グループに格納されます。

事前構成済データベース構成オプションによって作成されるREDOログ・ファイルのファイル名は、記憶域タイプによって異なります。クラスタ・ファイル・システムを使用していない場合は、ブロック・デバイス名またはRAWデバイス名を入力する必要があります。

ブロック・デバイスまたはRAWデバイスを使用している場合に詳細なデータベース作成を行うには、「データベース記憶域」ページでREDOログ・ファイルを指定し、デフォルトのファイル名を正しいブロック・デバイス名、RAWデバイス名またはシンボリック・リンク名に置き換えます。

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

Oracle Databaseは、UNDO表領域に、ロールバック情報やUNDO情報を格納します。UNDO表領域を管理するには、自動UNDO管理を使用することをお薦めします。自動UNDO管理は、手動UNDO管理より簡単に管理できる、自動化されたUNDO表領域管理モードです。


参照:

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

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

サーバー・パラメータ・ファイル(SPFILE)を使用することをお薦めします。このファイルは、共有ディスクのサーバーにあり、クラスタ・データベースのすべてのインスタンスは、このパラメータ・ファイルにアクセスできます。


参照:

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

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

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


参照:

データベース監査方針の詳細は、『Oracle Database Vault管理者ガイド』を参照してください。

7.8 サービス登録関連パラメータの構成

Oracle RACの主要な2つのメリットは、接続時ロード・バランシング機能とフェイルオーバー機能です。

Oracle RACでは、シングル・インスタンスのOracle Databaseのロード・バランシング機能(接続がローカル・ディスパッチャ間で分散される)が拡張され、1つのクラスタ・データベース内のすべてのインスタンス間で接続数が平衡化されます。

Oracle RACのフェイルオーバー機能は、複数のノード上で複数のリスナーを構成し、同じデータベース・サービスに対するクライアント接続要求を管理します。Oracle RACでは、ノードまたはインターコネクトに障害が発生すると、関連付けられている仮想IPアドレス(VIP)が動作可能なノードに割り当てられ、そのVIPを介して接続しているクライアントに、障害が迅速に通知されます。アプリケーションおよびクライアントが透過的アプリケーション・フェイルオーバー・オプションを使用して構成されている場合、そのクライアントは動作可能なノードに再接続されます。

接続時ロード・バランシング機能とフェイルオーバー機能では、クラスタ・データベース内の冗長なリソースが活用できるため、可用性が向上します。ただし、これらの機能にはインスタンス間登録が必要です。

Oracle RACでのインスタンス間登録が発生するのは、インスタンスのプロセス・モニター(PMON)がローカル・リスナーおよび他のすべてのリスナーに登録された場合です。この場合、クラスタ・データベース内のすべてのインスタンスが、クラスタ・データベースのインスタンスが実行されているノードで動作しているすべてのリスナーに登録されます。これによって、すべてのリスナーがすべてのインスタンス間で接続を管理でき、ロード・バランシングとフェイルオーバーの両方が可能となります。

インスタンス間登録では、LOCAL_LISTENER初期化パラメータとREMOTE_LISTENER初期化パラメータの構成が必要です。LOCAL_LISTENERパラメータはローカル・リスナーを識別し、REMOTE_LISTENERパラメータはリスナーのグローバル・リストを識別します。REMOTE_LISTENERパラメータは動的です。インスタンスの追加や削除などクラスタ・データベースを再構成すると、Oracle Databaseは、REMOTE_LISTENERの設定を動的に変更します。

DBCAがデフォルトで構成するのは、専用サーバーを使用する環境のみです。ただし、DBCAの使用時に共有サーバー・オプションを選択すると、Oracleは共有サーバーを構成します。この場合、Oracle Databaseは専用サーバーと共有サーバーの両方のプロセスを使用します。共有サーバーが構成されると、DISPATCHERSパラメータは、次の例に示すように指定されます。

DISPATCHERS="(protocol=tcp)"

DISPATCHERS初期化パラメータのLISTENER属性が前述の例のように指定されていない場合、PMONプロセスは、すべてのディスパッチャに関する情報を、LOCAL_LISTENERパラメータとREMOTE_LISTENERパラメータで指定されているリスナーに登録します。

ただし、LISTENER属性が指定されている場合、PMONプロセスはディスパッチャ情報を、そのLISTENER属性に指定されているリスナーに登録します。この場合は、LISTENER属性の設定によって、指定したディスパッチャのREMOTE_LISTENERの設定値が、次の例に示すように変更されます。

DISPATCHERS="(protocol=tcp)(listener=listeners_db_name)"

注意:

前述の例およびこの章で使用しているdb_nameという表記は、DBCAのプロンプトで入力したデータベース名(またはOracle SID)、またはCREATE DATABASE文のDATABASEキーワードに対して作成したエントリを表します。


参照:

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

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

次の項で説明するとおり、listener.oraファイルの2種類のリスナーを構成できます。

7.9.1 ローカル・リスナー

DBCAの「初期化パラメータ」ページの「接続モード」タブを使用して専用サーバー・モードを構成した場合、リスナーでデフォルト以外のアドレス・ポートを使用すると、DBCAによってLOCAL_LISTENERパラメータが自動的に構成されます。

REMOTE_LISTENER初期化パラメータを設定して専用サーバー・モードを構成している場合は、インスタンス固有のLOCAL_LISTENER初期化パラメータも構成する必要があります。

たとえば、LOCAL_LISTENERパラメータを構成するには、次のエントリを初期化パラメータ・ファイルに追加します。この例では、listener_sidは、tnsnames.oraファイルまたはOracle Names Serverを通じてリスナー・アドレスに変換されます。

sid.local_listener=listener_sid

tnsnames.oraファイルには、次のエントリが必要です。

listener_sid=(address=(protocol=tcp)(host=node1-vip)(port=1522))

7.9.2 複数のリスナー

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

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

サービスは、クライアント・アプリケーションのかわりに接続要求を受信するサーバー上でプロセスを実行し、リスナー・ファイルのエントリを使用して、セッションを調整します。このプロセスは、データベース構成時の選択に応じて、専用プロセスまたは共有サーバー・プロセスのいずれかになります。リスナーは、データベース・サービスまたはデータベース以外のサービスのプロトコル・アドレスに送信された接続要求に応答するように構成されています。

データベース・サービスまたはデータベース以外のサービスのプロトコル・アドレスは、リスナー構成ファイルlistener.ora内に構成されます。同じアドレスで構成されたクライアントは、リスナーを通じてサービスに接続できます。

事前構成済データベース構成のインストール中に、Oracle Net Configuration AssistantはLISTENER NODENAMEというデフォルトのリスナーを作成して起動します。リスナーは、データベース用のデフォルトのプロトコル・リスニング・アドレスで構成されます。「拡張インストール」では、Oracle Net Configuration Assistantから1つ以上のリスナーの作成を求めるプロンプトが表示されます。このリスナーは、指定した1つのプロトコル・アドレスに送信された接続要求に応答するように構成されます。

両方のインストール・モードでは、Oracle RACデータベースについてのサービス情報が構成されます。Oracle Database 11gリリース1(11.1)では、データベース・サービスによって、サービス名、インスタンス名、負荷情報などがリスナーに自動的に登録されます。

この機能はサービス登録と呼ばれ、listener.oraファイルの構成は必要ありません。リスナーを作成すると、Oracle Net Configuration Assistantがリスナーを起動します。node1という名前のノードのエントリを持つlistener.oraファイルの例を次に示します。

LISTENER_NODE1=
 (DESCRIPTION_LIST =
 (DESCRIPTION=
    (ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1521)(IP = FIRST))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 140.87.25.116)(PORT = 1521)(IP = FIRST)))
SID_LIST_LISTENER_NODE1=
  (SID_LIST=
    (SID_DESC=
      (SID_NAME=)
      (ORACLE_HOME=/u01/app/oracle/11/db_1)

7.9.3.1 リスナー登録およびPMON検出

Oracleインスタンスの起動後にリスナーが起動し、リスナーがサービス登録用に表示されると、次のOracle Databaseプロセス・モニター(PMON)検出ルーチンが起動されるまで登録は行われません。デフォルトでは、PMON検出ルーチンは60秒間隔で実行されます。

60秒の遅延を変更するには、SQL文ALTER SYSTEM REGISTERを使用します。この文によって、PMONプロセスはすぐにサービスを登録します。

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


参照:

リスナーおよびlistener.oraファイルの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

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

tnsnames.oraファイルは、ネット・サービス名を持つ各ノードに作成されます。接続識別子は、接続記述子にマップされる識別子です。接続記述子には、次の情報が含まれます。

DBCAは、接続用のネット・サービス名を表7-2に示すように作成します。

表7-2 ネット・サービス名の接続

ネット・サービス名のタイプ 説明

データベース接続

データベースのインスタンスに接続するクライアントは、そのデータベースのネット・サービス名のエントリを使用します。このエントリによって、Oracle Enterprise Managerは、Oracle RACデータベースを検出できます。

リスナー・アドレスは、データベースのインスタンスを実行する各ノードに構成されます。LOAD_BALANCEオプションによって、アドレスがランダムに選択されます。選択したアドレスに障害がある場合は、FAILOVERオプションによって、接続要求が次のアドレスにフェイルオーバーされます。したがって、インスタンスに障害が発生しても、クライアントは別のインスタンスを使用して接続を維持できます。

次の例では、クライアントはdb.example.comを使用して、ターゲット・データベースのdb.example.comに接続します。

db.example.com=
 (description=
  (load_balance=on)
   (address=(protocol=tcp)(host=node1-vip)(port=1521)
   (address=(protocol=tcp)(host=node2-vip)(port=1521)
  (connect_data=
     (service_name=db.example.com)))

注意: FAILOVER=ONは、デフォルトでアドレスのリストに設定されます。このため、FAILOVER=ONパラメータを明示的に指定する必要はありません。

8文字(DB_DOMAINは含まず)を超えるグローバル・データベース名を入力してDB_UNIQUE_NAMEを設定すると、次のようなネット・サービス・エントリが作成されます。

mydatabase.example.com=
  (description =
     (address = (protocol = tcp)(host = node1-vip)(port = 1521))
     (address = (protocol = tcp)(host = node2-vip)(port = 1521))
  (load_balance = yes)
     (connect_data =
   (server = dedicated)
   (service_name = mydatabase.example.com)
   )
   )

インスタンス接続

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

次の例では、Oracle Enterprise Managerはdb1.example.comを使用して、node1上のdb1という名前のインスタンスに接続します。

db1.example.com=
 (description=
  (address=(protocol=tcp)(host=node1-vip)(port=1521))
  (connect_data=
    (service_name=db.example.com)
    (instance_name=db1)))

リモート・リスナー

「サービス登録関連パラメータの構成」で説明したように、REMOTE_LISTENERパラメータは動的なパラメータで、リスナーのグローバル・リストを指定します。クラスタ・データベースを再構成すると、Oracle DatabaseはREMOTE_LISTENERの設定を変更します。

使用中のサーバーが共有か専用かに関係なく、リモート・リスナーのリストは、REMOTE_LISTENERパラメータを使用して指定されます。次に例を示します。

REMOTE_LISTENER=listeners_db_unique_name

これによって、インスタンスは、他のノード上のリモート・リスナーに登録でき、listeners_db_unique_nameは、tnsnames.oraファイルなどのネーミング・メソッドを介して解決されます。

次の例では、listeners_db.example.comは、クラスタ・データベースにインスタンスが含まれているノードで使用可能なリスナーのリストに解決されます。

listeners_db.example.com=
(address_list=
   (address=(protocol=tcp)(host=node1-vip)(port=1521))
   (address=(protocol=tcp)(host=node2-vip)(port=1521)))

インスタンスでは、このリストを使用して、情報を登録するリモート・リスナーのアドレスを確認します。

デフォルト以外のリスナー

「ローカル・リスナー」および「複数のリスナー」で説明したように、デフォルト以外のリスナーが構成される場合、LOCAL_LISTENERパラメータはinitsid.oraファイルまたはSPFILEに設定されます。次に例を示します。

sid.local_listener=listener_sid


listener_sid変数は、tnsnames.oraファイルなどのネーミング・メソッドを介してリスナー・アドレスに解決されます。

次の例では、listener_db1.example.comは、デフォルト以外のリスナー・アドレスに解決されます。

listener_db1.example.com=
   (address=(protocol=tcp)(host=node1-vip)(port=1522))

サービスのエントリ

DBCAの「サービス」ページを使用して高可用性サービスを構成すると、次のようなネット・サービス・エントリが作成されます。次の例に示す3つのサービスdb_svc1db_svc2およびdb_svc3には、それぞれNONEBASICおよびPRECONNECTというTAFポリシーがあります。

db_svc1.example.com=
  (description =
    (address=(protocol=tcp)(host=node1-vip)(port=1521))
    (address=(protocol=tcp)(host=node2-vip)(port=1521))
    (load_balance=yes)
    (connect_data=
        (server = dedicated)
        (service_name = db_svc1.example.com)
  )
  )

db_svc2.example.com=
  (description=
    (address=(protocol=tcp)(host=node1-vip)(port=1521))
    (address=(protocol=tcp)(host=node2-vip)(port=1521))
    (load_balance=yes)
    (connect_data =
        (server = dedicated)
        (service_name=db_svc2.example.com)
        (failover_mode =
        (type=select)
        (method=basic)
           (retries=180)
           (delay=5)
     )
     )
     )

db_svc3.example.com=
    (description=
      (address=(protocol=tcp)(host=node1-vip)(port=1521))
      (address=(protocol=tcp)(host=node2-vip)(port=1521))
      (load_balance=yes)
      (connect_data=
        (server=dedicated)
        (service_name=db_svc3.example.com)
        (failover_mode=
        (backup=db_svc3_preconnect.example.com)
        (type=select)
        (method=preconnect)
        (retries=180)
        (delay=5)
   )
   )
   )

サービスのエントリ(続き)

サービスにPRECONNECTというTAFポリシーがある場合、service_name_preconnect net serviceエントリも作成されます。次に例を示します。

db_svc3_preconnect.example.com =
  (description =
    (address = (protocol = tcp)(host = node1-vip)(port = 1521))
    (address = (protocol = tcp)(host = node2-vip)(port = 1521))
    (load_balance = yes)
    (connect_data =
      (server = dedicated)
      (service_name = db_svc3_preconnect.example.com)
      (failover_mode =
        (backup = db_svc3.example.com)
        (type = select)
        (method = basic)
        (retries = 180)
        (delay = 5)
      )
    )
  )

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

この例は、事前構成済データベース構成のインストール時に作成されるサンプルのtnsnames.oraファイルです。

db.example.com=
 (description=
  (load_balance=on)
   (address=(protocol=tcp)(host=node1-vip)(port=1521))
   (address=(protocol=tcp)(host=node2-vip)(port=1521))
  (connect_data=
     (service_name=db.example.com)))

db1.example.com=
 (description=
  (address=(protocol=tcp)(host=node1-vip)(port=1521))
  (connect_data=
    (service_name=db.example.com)
    (instance_name=db1)))

db2.example.com=
 (description=
  (address=(protocol=tcp)(host=node2-vip)(port=1521))
  (connect_data=
    (service_name=db.example.com)
    (instance_name=db2)))

listeners_db.example.com=
(address_list=
   (address=(protocol=tcp)(host=node1-vip)(port=1521))
   (address=(protocol=tcp)(host=node2-vip)(port=1521)))

参照:

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

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

Oracle Universal Installerによって、データベースのインストール後にOracle Net Configuration Assistantが起動され、Net Servicesプロファイル(sqlnet.oraファイル)が構成されます。

デフォルトでは、sqlnet.oraファイルは次のディレクトリに格納されます。

$ORACLE_HOME/network/admin

このディレクトリには、インストール時に生成されるデフォルトのsqlnet.oraファイルの他に、sampleディレクトリにサンプルsqlnet.oraファイルも格納されています。

インストール時に、Oracle Net Configuration Assistantによって次のエントリがsqlnet.oraファイルに作成されます。

NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)

NAMES.DIRECTORY_PATHパラメータは、接続識別子を接続記述子に解決するために使用するネーミング・メソッドの優先順序を指定します。

ネーミング・メソッドの順序は、ディレクトリ・ネーミング(カスタム・インストールまたはアドバンスト・データベース構成オプションの場合のみ)、tnsnames.oraファイル、簡易接続、ホスト・ネーミングになります。

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


参照:

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