ヘッダーをスキップ
Oracle Real Application Clustersインストレーション・ガイド
11gリリース1(11.1)for Microsoft Windows
E05877-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

6.1 Oracle Real Application Clustersに構成された環境の理解

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


注意:

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

6.2 Oracle Real Application ClustersのOracle Cluster Registry

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

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

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

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

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

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

表領域名 内容

SYSTEM

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

SYSAUX

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

USERS

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

TEMP

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

UNDOTBSn

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

RBS

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


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

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

アドバンスト・データベース構成オプションを使用して、異なるシンボリック名を指定できます。

Windowsベースのシステムでは、データ・ファイルおよび他のデータベース・ファイルの名前にシンボリック・リンク名が使用されます(表6-2を参照)。

表6-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_redo_instance_number log_number

instance_numberはインスタンス番号、log_numberはインスタンスのログ番号(1または2)

REDOログ・ファイル

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

db_redo1_1

db_redo1_2

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

db_redo2_1

db_redo2_2


6.3.2 制御ファイル

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

6.3.3 REDOログ・ファイル

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

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

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

6.4 Oracle Real Application ClustersでのUNDO表領域の管理

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


参照:

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

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

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


参照:

パラメータ・ファイルの作成および使用については、第5章「Oracle Real Application Clustersデータベース用のパラメータの管理」を参照してください。

6.6 Oracle Real Application Clustersでのサービス登録関連パラメータの構成

Oracle RACの主要な2つのメリットは、接続時ロード・バランシング機能とフェイルオーバー機能です。 Oracle RACでは、シングル・インスタンスのOracle Databaseのロード・バランシング機能(接続がローカル・ディスパッチャ間で分散される)が拡張され、1つのクラスタ・データベース内のすべてのインスタンス間で接続数が平衡化されます。 さらに、Oracle RACのフェイルオーバー機能は、複数のノード上で複数のリスナーを構成し、同じデータベース・サービスに対するクライアント接続要求を管理します。接続時ロード・バランシング機能とフェイルオーバー機能では、クラスタ・データベース内の冗長なリソースが活用できるため、可用性が向上します。ただし、これらの機能にはインスタンス間登録が必要です。

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

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

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

DISPATCHERS="(protocol=tcp)"

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

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

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

参照:

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

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

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

6.7.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))

6.7.2 複数のリスナー

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

6.7.3 Oracleによるリスナー(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=
    (address=(protocol=ipc)(key=extproc))
    (address=(protocol=tcp)(host=node1-vip)(port=1521)(IP=FIRST))
    (address=(protocol=tcp)(host=node1-ip)(port=1521)(IP=FIRST)))
sid_list_listener_node1=
  (sid_list=
    (sid_desc=
      (sid_name=plsextproc)
      (oracle_home=C:\app\oracle\product\11.1.0\db_1)
      (program=extproc)))

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

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

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

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


参照:

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

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

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

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

表6-3 ネット・サービス名の接続

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

データベース接続

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

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

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

db.us.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.us.example.com)))

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

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

mydatabase.us.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.us.example.com)
   )
   )

インスタンス接続

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

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

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

リモート・リスナー

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

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

REMOTE_LISTENER=listeners_db_unique_name

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


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

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

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

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

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

sid.local_listener=listener_sid


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

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

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

サービスのエントリ

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

db_svc1.us.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.us.example.com)
  )
  )

db_svc2.us.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.us.example.com)
        (failover_mode =
        (type=select)
        (method=basic)
           (retries=180)
           (delay=5)
     )
     )
     )

db_svc3.us.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.us.example.com)
        (failover_mode=
        (backup=db_svc3_preconnect.us.example.com)
        (type=select)
        (method=preconnect)
        (retries=180)
        (delay=5)
   )
   )
   )

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

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

db_svc3_preconnect.us.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.us.amce.com)
      (failover_mode =
        (backup = db_svc3.us.example.com)
        (type = select)
        (method = basic)
        (retries = 180)
        (delay = 5)
      )
    )
  )

外部プロシージャ

外部プロシージャに接続するためのエントリです。これによって、Oracle Database 11gデータベースは、外部プロシージャに接続できます。

extproc_connection_data.us.example.com=
 (description=
  (address_list=
    (address=(protocol=ipc)(key=extproc0))
  (connect_data=
    (sid=plsextproc)))

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

事前構成済データベース構成のインストール時に構成されたtnsnames.oraファイルの例を次に示します。

db.us.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.us.example.com)))

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

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

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

extproc_connection_data.us.example.com=
 (description=
  (address_list=
    (address=(protocol=ipc)(key=extproc)))
  (connect_data=
    (sid=plsextproc)
    (presentation=RO)))

参照:

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

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

sqlnet.oraファイルは、次のものを使用して自動的に構成されます。

事前構成済データベース構成のインストール時に作成されたsqlnet.oraファイルの例を次に示します。

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

参照:

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