この手順では、Oracle Solaris Cluster の長い形式の保守コマンドを使用します。多くのコマンドには短縮形もあります。コマンド名の形式を除き、コマンドは同一です。
始める前に
次の前提条件を満たしていることを確認します。
/etc/netmasks ファイルに、すべての論理ホスト名の IP アドレスのサブネットとネットマスクのエントリがある。必要に応じて、/etc/netmasks ファイルを編集して、不足しているエントリがある場合は追加します。
ボリュームマネージャーを使用している場合、クラスタのボリュームマネージャーが、Oracle Database ソフトウェアを実行する可能性があるすべての Oracle Solaris Cluster ノードからアクセスできる共有ストレージのボリュームを提供するように構成されている。
ボリュームマネージャーを使用している場合、Oracle Database ソフトウェアがそのデータベースに使用するストレージボリュームに raw デバイスとファイルシステムが作成されている。
Oracle Database ソフトウェアが、Oracle Database を実行する可能性のあるすべてのクラスタノードからアクセスできるようにインストールされている。
UNIX オペレーティングシステムのカーネル変数が Oracle Database 用に構成されている。
Oracle Database ソフトウェアが、Oracle Database を実行する可能性のあるすべてのクラスタノードに対して構成されている。
データサービスパッケージがインストールされている。
次の情報を用意してください。
データサービスをマスターするクラスタノードの名前。
クライアントがデータサービスにアクセスするために使用する論理ホスト名。通常は、クラスタをインストールする際に、この IP アドレスを設定します。ネットワークリソースの詳細については、Oracle Solaris Cluster Concepts Guide を参照してください。
構成する予定があるリソースの Oracle Database アプリケーションバイナリへのパス。
データベースのタイプ。
HA for Oracle Database に対して、次のように SUNW.oracle_server と SUNW.oracle_listener の 2 つのリソースタイプを登録します。
# clresourcetype register SUNW.oracle_server # clresourcetype register SUNW.oracle_listener
Oracle Solaris ZFS ファイルシステムを使用している場合は、Oracle Solaris Cluster ノードの準備方法で高可用性ローカル ZFS ファイルシステムを構成したときに、リソースグループが作成されているため、この段階は必要ありません。この手順のほかのステップで作成したリソースは、このリソースグループに追加されます。
オプションで、次のようにデータサービスを –n オプションで実行できるクラスタノードのセットを選択できます。
# clresourcegroup create [-n node-zone-list] resource-group
リソースグループの名前を指定します。この名前には任意のものを選択できますが、クラスタ内のリソースグループで一意である必要があります。
この確認は、Oracle Solaris Cluster のインストール中に行う必要があります。
# clreslogicalhostname create -g resource-group [-h logical-hostname] logical-hostname-rs
論理ホスト名を指定します。この論理ホスト名は、ネームサービスデータベースに存在する必要があります。logical-hostname と logical-hostname-rs が同一の場合、logical-hostname はオプションです。
作成する論理ホスト名リソースに割り当てる名前を指定します。
# clresourcetype register SUNW.HAStoragePlus
# clresource create -g resource-group -t SUNW.HAStoragePlus \ -p GlobalDevicePaths=device-path \ -p FilesystemMountPoints=mount-point-list \ -p AffinityOn=TRUE hastp-rs
GlobalDevicePaths 拡張プロパティーまたは FilesystemMountPoints 拡張プロパティーのいずれかを設定する必要があります。
データベースが raw デバイスにある場合は、GlobalDevicePaths 拡張プロパティーをグローバルデバイスのパスに設定します。
データベースがクラスタファイルシステムにある場合は、クラスタファイルシステムおよびローカルファイルシステムのマウントポイントを指定します。
リソースは有効状態で作成されます。
# clresourcegroup online -M resource-group
オンラインになったリソースグループを管理状態にします。
Oracle Database サーバーリソース:
# clresource create -g resourcegroup \ -t SUNW.oracle_server \ -p Alert_log_file=path-to-log \ -p Connect_string=user/passwd \ -p Oracle_sid=instance \ -p Oracle_home=Oracle_home \ -p Restart_type=entity-to-restart \ [-p Dataguard_role=role] \ [-p Standby_mode=mode] \ -p Resource_dependencies_offline_restart=storageplus-resource \ resource
Oracle Database リスナーリソース:
# clresource create -g resource-group \ -t SUNW.oracle_listener \ -p Listener_name=listener \ -p Oracle_home=Oracle_home \ -p Resource_dependencies_offline_restart=storageplus-resource \ resource
リソースを配置するリソースグループの名前を指定します。
追加するリソースのタイプを指定します。
$ORACLE_HOME 下にある、サーバーメッセージログのパスを設定します。
障害モニターがデータベースへの接続に使用するユーザーとパスワードを指定します。これらの設定は、Oracle Database アクセス権の設定方法で設定したアクセス権と一致する必要があります。Oracle Solaris 認証を使用する場合は、ユーザー名とパスワードの代わりにスラッシュ (/) を入力します。
Oracle Database システム識別子を設定します。
Oracle Database ホームディレクトリへのパスを設定します。
Oracle Database リスナーインスタンスの名前を設定します。この名前は、listener.ora の対応するエントリと一致する必要があります。
障害への応答が再起動されたときに、サーバー障害モニターが再起動させるエンティティーを指定します。entity-to-restart は、次のように設定します。
このリソースだけが再起動されるように指定するには、entity-to-restart を RESOURCE_RESTART に設定します。デフォルトでは、このリソースのみが再起動されます。
このリソースを含むリソースグループのすべてのリソースが再起動されるように指定するには、entity-to-restart を RESOURCE_GROUP_RESTART に設定します。
entity-to-restart を RESOURCE_GROUP_RESTART に設定すると、障害がない場合でも、リソースグループのほかのすべてのリソース (Apache や DNS など) が再起動されます。したがって、リソースグループには、Oracle Database サーバーリソースが再起動したときに再起動される必要があるリソースだけを含めます。
データベースインスタンスの役割を指定します。role を次のように変更します。
スタンバイインスタンスが構成されていないプライマリデータベースインスタンスのリソースを作成するには、role を NONE に変更します。この値はデフォルト値です。
スタンバイデータベースインスタンスが構成されているプライマリデータベースインスタンスのリソースを作成するには、role を PRIMARY に変更します。
スタンバイデータベースインスタンスのリソースを作成するには、role を STANDBY に変更します。
スタンバイデータベースインスタンスのモードを指定します。Dataguard_role を NONE または PRIMARY に変更すると、Standby_mode の値は無視されます。
論理スタンバイデータベースを指定するには、mode を LOGICAL に変更します。この値はデフォルト値です。
物理スタンバイデータベースを指定するには、mode を PHYSICAL に変更します。
スナップショットスタンバイデータベースを指定するには、mode を SNAPSHOT に変更します。
作成するリソースの名前を指定します。
リソースは有効状態で作成されます。
この例は、2 ノードのクラスタでの HA for Oracle Database の登録方法を示しています。コマンドで使用する名前の例は、次のとおりです。
phys-schost-1、phys-schost-2
schost-1
resource-group-1 (フェイルオーバーリソースグループ)
hastp-rs
oracle-server-1、oracle-listener-1
ora-lsnr (リスナー)、ora-srvr (サーバー)
使用例 1-2 ゾーンクラスタで実行する HA for Oracle Database の登録Create the failover resource group to contain all of the resources . # clresourcegroup create resource-group-1Add the logical hostname resource to the resource group . # clreslogicalhostname create -g resource-group-1 schost-1Register the SUNW.HAStoragePlus resource type. # clresourcetype register SUNW.HAStoragePlusAdd a resource of type SUNW.HAStoragePlus to the resource group. # clresource create -g resource-group-1 \ -t SUNW.HAStoragePlus \ -p FileSystemMountPoints=/global/oracle,/global/ora-data/logs,/local/ora-data \ -p AffinityOn=TRUE \ hastp-rsBring the resource group online in a managed state # clresourcegroup online -M resource-group-1Register the Oracle Database resource types. # clresourcetype register SUNW.oracle_server # clresourcetype register SUNW.oracle_listenerAdd the Oracle Database application resources to the resource group. # clresource create -g resource-group-1 \ -t SUNW.oracle_server \ -p Alert_log_file=/global/oracle/message-log \ -p Connect_string=scott/tiger \ -p Oracle_home=/global/oracle \ -p Oracle_sid=ora-srvr \-p Dataguard_role=STANDBY \ -p Standby_mode=PHYSICAL \ -p Resource_dependencies_offline_restart=hastp-rs \ oracle-server-1 # clresource create -g resource-group-1 \ -t SUNW.oracle_listener \ -p Oracle_home=/global/oracle \ -p Listener_name=ora-lsnr \ oracle-listener-1
この例は、ゾーンクラスタでの HA for Oracle Database の登録方法を示しています。グローバルクラスタから発行されるコマンドで使用される名前の例は、次のとおりです。
phys-schost-1、phys-schost-2
zonecluster1、zonecluster2
zchost-1
resource-group-1 (フェイルオーバーリソースグループ)
hastp-rs
oracle-server-1、oracle-listener-1
ora-lsnr (リスナー)、ora-srvr (サーバー)
Create the failover resource group to contain all of the resources .) # clresourcegroup create -Z zonecluster1 resource-group-1Add the logical hostname resource to the resource group .) # clreslogicalhostname create -Z zonecluster1 -g resource-group-1 zchost-1Register the SUNW.HAStoragePlus resource type. ) # clresourcetype register -Z zonecluster1 SUNW.HAStoragePlusAdd a resource of type SUNW.HAStoragePlus to the resource group. ) # clresource create -Z zonecluster1 \ -g resource-group-1 \ -t SUNW.HAStoragePlus \ -p FileSystemMountPoints=/global/oracle,/global/ora-data/logs,/local/ora-data \ -p AffinityOn=TRUE \ hastp-rsBring the resource group online in a managed state # clresourcegroup online -Z zonecluster1 -M resource-group-1Register the Oracle Database resource types. ) # clresourcetype register -Z zonecluster1 SUNW.oracle_server # clresourcetype register -Z zonecluster1 SUNW.oracle_listenerAdd the Oracle Database application resources to the resource group.) # clresource create -Z zonecluster1 \ -g resource-group-1 \ -t SUNW.oracle_server \ -p Alert_log_file=/global/oracle/message-log \ -p Connect_string=scott/tiger \ -p Oracle_home=/global/oracle \ -p Oracle_sid=ora-srvr \ -p Dataguard_role=STANDBY \ -p Standby_mode=PHYSICAL \ oracle-server-1 # clresource create -Z zonecluster1 \ -g resource-group-1 \ -t SUNW.oracle_listener \ -p Oracle_home=/global/oracle \ -p Listener_name=ora-lsnr \ oracle-listener-1