Oracle Real Application Clusters(以下"Oracle RAC"と表記します) を使用したシステム構成、TROの設定、およびデータベースの設定について説明します。なお、Oracle Databaseのバージョンは11gR2を前提に説明します。
Oracle RACの構築方法については、Oracleのマニュアルを参照してください。
DBサーバ側には、Oracle DatabaseおよびOracle Database Grid Infrastructureをインストールします。
連携することができるバージョンについては、インストールガイドを参照してください。
DBクライアント側には、Oracle Database Clientをインストールします。インストールタイプは、Instant Client、管理者、ランタイムが使用できます。
Oracle Database Clientのバージョンに合わせて、本製品の"Oracleのバージョンレベルのエントリ操作"を行う必要があります。Oracle Database Clientのバージョンが11gR2の場合の例を以下に示します。
/opt/FJSVlnktr/bin/lxrtmoralnk.sh 11.2.0 |
lxrtmoralnk 1120 |
バージョンエントリの詳細については、ソフトゥエア説明書を参照してください。
DBクライアント側のバージョンは、DBサーバ側のデータベースへの接続をサポートしているものにする必要があります。詳細はOracleのマニュアルを参照してください。
認証の種類は以下のとおりです。ローカル接続と同じです。
データベースの認証機構
システム構成を以下に示します。
図30.8 Oracle RACの構成(TRO)

Oracle RACは複数のノード(サーバ)から構成されます。個々のノードでは、リスナーおよびインスタンスが動作し、共用ディスク上のデータにアクセスします。
DBクライアントからの接続要求は、SCAN(Single Client Access Name)が受け付けます。SCANは3個のSCANリスナーから構成されており、個々のSCANリスナーはIPアドレスを持っています。DBクライアントからは、SCANを代表する名前(SCAN名)をホスト名とする1台のDBサーバとして見えます。
1個の接続要求はいずれかのSCANリスナーが受け付け、いずれかのノードに振り分けます。たとえば、SCAN2が要求を受け付けて、1番目のノードに振り分けます。別の接続要求に対しては、別のルートで振り分けられる可能性があります。
また、名前解決を行うためのGNS(Grid Naming Service)が動作しており、SCAN名から実際に要求を受け付けるSCANのIPアドレスに変換します。
SCANおよびGNSについては、Oracleのマニュアルを参照してください。
DNSサーバのIPアドレスをOS(例:hostsファイル)に登録しておきます。
ネット・サービスなどによりネット・サービス名(SCAN名/ポート番号/サービス名の組み合わせ)を定義しておきます。
TROのDBサービス定義にネット・サービス名を指定することにより、Oracleクライアントを通してDBサーバにデータを格納します。
DNSおよびDHCPの役割を持つサーバを用意します。
DNSには、DNSのネットワークドメイン配下となるGNSサブドメインを登録します。DBクライアントからSCAN名について名前解決の要求を受けると、GNSからIPアドレスを取得してDBクライアントに返却します。
また、DHCPとして割り当てる範囲のIPアドレス(DBサーバ内で使用する仮想IPアドレス)を用意します。
2ノード、GNSを使用するネットワークの構成例を以下に示します。なお、ここでは、各ノードをそれぞれ"ノード1"、"ノード2"と表現します。
ノード/サーバ | タイプ | 名前 | IPアドレス | 名前解決 |
|---|---|---|---|---|
ノード1 | パブリック | lrac1.linktro.com | 192.168.0.11 | DNS |
仮想 | - | DHCP割り当て | GNS | |
プライベート | lrac1priv.linktro.com | 192.168.1.11 | DNS | |
ノード2 | パブリック | lrac2.linktro.com | 192.168.0.12 | DNS |
仮想 | - | DHCP割り当て | GNS | |
プライベート | lrac2priv.linktro.com | 192.168.1.12 | DNS | |
SCAN | 仮想 | scan.grid.linktro.com | DHCP割り当て | GNS |
GNS | - | gns-vip.linktro.com | 192.168.0.3 | DNS |
DNS/DHCP | - | dns.linktro.com | 192.168.0.2 | - |
DNSサーバのIPアドレスを、DBサーバを構成する各ノードおよびDBクライアントに登録します。SCANおよび各IPアドレスの名前解決はGNSにより行われます。
ネットワークとしてパブリックネットワークとプライベートネットワークが必要です。詳細については、Oracleのマニュアルを参照してください。
なお、GNSやSCANリスナーを使用しない運用もできます。詳細については、Oracleのマニュアルを参照してください。
DNSサーバおよびDHCPサーバを構築します。DNSサーバおよびDHCPサーバを同一サーバに構築する例を以下に説明します。
固定IPアドレスを登録します。DNSのホスト名が"dns.linktro.com"、DNSのIPアドレスが"192.168.0.2"の場合の例を以下に示します。
サーバ | 名前 | IPアドレス |
|---|---|---|
GNS | gns-vip.linktro.com | 192.168.0.3 |
ノード1(パブリック) | lrac1.linktro.com | 192.168.0.11 |
ノード1(プライベート) | lrac1priv.linktro.com | 192.168.1.11 |
ノード2(パブリック) | lrac2.linktro.com | 192.168.0.12 |
ノード2(プライベート) | lrac2priv.linktro.com | 192.168.1.12 |
DNSのネットワークドメイン配下となるGNSサブドメインを登録します。
DNSのネットワークドメインが"linktro.com"の場合の例を以下に示します。
grid.linktro.com |
GNSサブドメイン配下の名前に対してGNSサーバに名前解決を依頼するように設定します。
DNSの構築方法の詳細については、各OSのマニュアルを参照してください。
DHCPサーバから動的に割り当てるIPアドレスの範囲を登録します。
登録するIPアドレスの範囲の例を以下に示します。
192.168.0.21~192.168.0.254 |
DHCPサーバの構築方法の詳細については、各OSのマニュアルを参照してください。
Oracle RACを構築する前に、各ノードにDNSサーバを登録します。
その後、Oracle RACを構築し、Oracle RACを構成する各プロセスを起動します。
デフォルトでは、Oracle RACが構築された状態で各ノードを起動すると、各プロセスが自動的に起動します。詳細については、Oracleのマニュアルを参照してください。
Database Configuration Assistantで入力するおもな情報の例を以下に示します。その他の情報については、Oracleのマニュアルを参照してください。
画面 | 入力/選択内容 |
|---|---|
インストールオプション | クラスタ用のGrid Infrastructureのインストールおよび構成 |
インストールタイプ | 拡張インストール |
Gridプラグ・アンド・プレイの情報 | |
クラスタノードの構成 | ホスト名:lrac1.linktro.com、lrac2.linktro.com |
ネットワーク・インタフェースの使用方法の指定 | eth0/192.168.0.0/パブリック |
項目 | 入力/選択内容 |
|---|---|
クラスタ名 | lrac-cluster |
SCAN名 | scan.grid.linktro.com |
SCANポート | 1521 |
GNSの構成 | チェックする |
GNSサブドメイン | grid.linktro.com |
GNS VIPアドレス | 192.168.0.3 |
プロファイル・パラメータ(sqlnet.oraファイル)を設定してください。
SQLNET.EXPIRE_TIMEの例を以下に示します。
SQLNET.EXPIRE_TIME=10 |
ネットワークの切断などによってデータベースから切断されたあとに再接続が完了すると、RT14203メッセージが出力されます。しかし、Oracleの内部で接続情報が残っていると、再接続が完了したにもかかわらず、逐次差分反映処理が進まないことがあります。
SQLNET.EXPIRE_TIMEを指定することにより、この現象を軽減できます。この値を設定しているにも関わらず現象が頻発する場合は、値を小さくすることを推奨します。また、データベースを再起動すると、内部の接続情報は初期化されるため、データベースを再起動することを推奨します。
DBクライアント側のデータベースの設定を行います。詳細については、Oracleのマニュアルを参照してください。
ローカル・ネット・サービスなど(例:Net Configuration Assistant)により、ネット・サービス名を設定します。設定した内容はローカル・ネーミング・パラメータ(tnsnames.oraファイル)に反映されます。
tnsnames.oraファイルの例を以下に示します。ここでは"DB1"がネット・サービス名となります。
DB1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan.grid.linktro.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
) |
また、ネット・サービス名の定義で指定されているホスト名を解決するため、DNSサーバを登録します。DNSサーバの登録方法については、各OSのマニュアルを参照してください。
Oracleのコマンドなど(例:sqlplusコマンド)により、目的のデータベースに接続できることを確認してください。
FAILOVER_MODEパラメータを設定しないでください。
FAILOVER_MODEパラメータを設定した場合、逐次差分反映処理が異常終了することがあります。また、DB動作環境定義キーワードで指定した再接続のリトライが、データベースから切断されたときに行われません。
他のアプリケーションでFAILOVER_MODEパラメータが必要な場合は、ネット・サービス名を分けてください。(例:"DB1"ではFAILOVER_MODEなし、"DB2"ではFAILOVER_MODEあり、DATABASEオペランドには"DB1"を指定、他のアプリケーションでは"DB2"を指定)
FAILOVER_MODEパラメータについては、Oracleのマニュアルを参照してください。
プロファイル・パラメータ(sqlnet.oraファイル)を設定してください。
SQLNET.RECV_TIMEOUTの例を以下に示します。
SQLNET.RECV_TIMEOUT=3 |
RT14102メッセージでのデータベースシステムのメッセージとしてORA-12535またはORA-12609が頻発する場合は、この値を大きくしてください。
Oracle Database ClientのインストールタイプがInstantClientの場合、tnsnames.oraファイルおよびsqlnet.oraファイルを作成し、そのファイルが存在するディレクトリを、環境変数TNS_ADMINに指定する必要があります。
Oracle Database Clientのインストールタイプが管理者またはランタイムの場合、それぞれのファイルはデフォルトのディレクトリに存在します。デフォルトのディレクトリに存在するファイルを使用する場合、環境変数TNS_ADMINは不要です。
DBクライアント側でTROに必要な環境変数を設定します。詳細については、"4.3.1 環境変数の設定"を参照してください。
DBクライアント側でDB動作環境定義キーワードを指定します。
リモート接続に関するDB動作環境定義キーワードは以下のとおりです。
キーワード | 概要 |
|---|---|
接続方式を指定します。 | |
Oracleデータベースのロックの獲得の待機時間を指定します。 | |
切断された場合の、再接続のリトライを行う回数を指定します。 | |
再接続のリトライを行う間隔を指定します。 |
例を以下に示します。
CONNECT_TYPE:REMOTE |
また、他のDB動作環境定義キーワードも必要に応じて指定してください。
詳細については、"4.3.2 DB動作環境定義の作成"を参照してください。
DBクライアント側でDBサービス定義を作成します。
DBサービス定義を設定します。DBサービス定義の文法については、"第8章 DBサービス定義"を参照してください。
ローカル接続とリモート接続では、STOREGROUP定義文のDATABASEオペランドに指定する内容が異なります。
ローカル接続の場合は、Oracleインスタンス識別子を指定します。
例を以下に示します。
DATABASE = ORCL |
指定方法は2種類あります。
DBクライアントの設定により作成したtnsnames.oraファイルで示すネット・サービス名を指定します。
例を以下に示します。
DATABASE = DB1 |
DBサーバのホスト名、ポート番号、サービス名を直接指定します。
例を以下に示します。
DATABASE = scan.grid.linktro.com:1521/ORCL |
なお、DBサーバのホスト名やサービス名にドメイン名(".~.com"など)を含むことにより128バイトを超える場合、この指定は使えません。ネット・サービス名を使用してください。
DBクライアント側で逐次差分反映を開始します。
逐次差分反映の開始は、lxrtmdbコマンドにより行います。詳細については、"7.3.4 lxrtmdbコマンド"を参照してください。
リモート接続では、データベースの認証機構のみ使用可能であるため、lxrtmdbコマンドには-uオプションを指定する必要があります。
例を以下に示します。
lxrtmdb -s DBSVC1 -r STRGRP1 -o -u user1/passwd1 |
Oracle RACにおける注意事項を説明します。
DBサーバ側でファイアウォールを運用している場合、DBサーバとDBクライアントの通信に使用するポートを許可するよう、DBサーバ側に設定します。リスナーで使用するポートを許可してください。
デフォルトの場合、ポートは以下となります。
1521/tcp |
GNSを使用せずにSCANを使用する場合の構成について説明します。
GNSを使用する場合との違いは、以下のとおりです。
すべてのIPアドレスは固定。
名前解決はDNSまたはhostsファイルによって行う。
tnsnames.oraファイルにてネット・サービス名を定義する際、Oracle RACを構成する各ノードを指定する。
逐次差分反映を開始する前に、以下が動作することを確認してください。
sqlplus ユーザ/パスワード@ネット・サービス名 |
DBサービス定義のDATABASEオペランドには、ネット・サービス名を指定します。
Oracle RACの構築方法については、Oracleのマニュアルを参照してください。
SCANを使用しない構成について説明します。
この構成は、以下の場合に使います。
Oracle Databaseのバージョンが11gR1以前
Oracle Databaseのバージョンが11gR2以降でSCANを使わない
GNSおよびSCANを使用する場合との違いは、以下のとおりです。
すべてのIPアドレスは固定。
名前解決はDNSまたはhostsファイルによって行う。
tnsnames.oraファイルにてネット・サービス名を定義する際、Oracle RACを構成する各ノードを指定する。
逐次差分反映を開始する前に、以下が動作することを確認してください。
sqlplus ユーザ/パスワード@ネット・サービス名 |
DBサービス定義のDATABASEオペランドには、ネット・サービス名を指定します。
Oracle RACの構築方法については、Oracleのマニュアルを参照してください。
"第6部 クラスタシステム"で示す運用待機型クラスタシステムとOracle RACの組み合わせについて説明します。
この構成の概要は今のとおりです。
図30.9 運用待機型クラスタシステムとOracle RACを組み合わせた構成

Oracle RACを構築します。
運用待機型クラスタシステムを構築します。
ローカルデータベースを使用するクラスタ構成(詳細は"第6部 クラスタシステム"を参照)と比較すると、データベースがDBサーバに移動した形になります。
DBクライアント側ではいずれかのノードが運用中となります。
PRIMECLUSTERとの組み合わせ![]()
![]()
DBクライアント側をPRIMECLUSTERで構築します。
ローカルデータベースへ接続するPRIMECLUSTERの構成との違いは、以下のとおりです。
クラスタアプリケーションに、TNSリスナーおよびOracleインスタンスを登録しません。
Oracleクライアント(ネット・サービス名など)の設定を行います。
その他の設定(DBサービス定義、DB動作環境定義など)は、"30.2.1 Oracle RAC"で説明している内容となります。
ローカルデータベースでの構成については、"28.2.1.8.5 クラスタアプリケーションの設定"を参照してください。
フェールオーバー クラスタリングとの組み合わせ![]()
DBクライアント側をフェールオーバー クラスタリングで構築します。
ローカルデータベースへ接続するフェールオーバー クラスタリングの構成との違いは、以下のとおりです。
TRO用の"サービスまたはアプリケーション"に、Oracle TNS ListenerおよびOracle Databaseを登録しません。TRMサービスの依存先は、クライアント アクセス ポイントとなります。
Oracleクライアント(ネット・サービス名など)の設定を行います。
その他の設定(DBサービス定義、DB動作環境定義など)は、"30.2.1 Oracle RAC"で説明している内容となります。
ローカルデータベースでの構成については、"28.4.1.6.2 リソースの登録"を参照してください。