この手順では、Oracle Solaris Cluster の保守コマンドを使用して、クラスタ Oracle ASM インスタンスを含む HA for Oracle Database を登録および構成する手順について説明します。
オプションでサードパーティーのボリュームマネージャーを使用して、クラスタ Oracle ASM ディスクグループに候補ディスクを指定できます。このタイプの構成では、この手順によって、Oracle Solaris Cluster SUNW.ScalDeviceGroup リソースをプロキシ設定する Oracle Grid Infrastructure リソースを手動で作成します。この手順では、Oracle Grid Infrastructure リソースの名前は sun.resource です。sun.resource がオンラインになるまで、対応する Oracle ASM ディスクグループがマウントされないように、sun.resource を構成します。sun.resource リソースは、対応する SUNW.ScalDeviceGroup リソースがオンラインの場合のみ、オンラインになります。また、SUNW.ScalDeviceGroup リソースは、実際のボリュームマネージャーのディスクセットまたはディスクグループがオンラインの場合だけ、オンラインになります。
Oracle ASM ディスクグループがこの依存関係チェーンのメリットを得られるようにするには、sun.resource を定義したあと、ハードスタート依存関係に sun.resource が含まれるように、適切な Oracle ASM ディスクグループリソースを変更します。Oracle ASM ディスクグループリソースのハードスタート依存関係の変更は、VALIDATE メソッドを使用して、SUNW.scalable_asm_diskgroup_proxy リソースによってのみ実行できます。したがって、SUNW.scalable_asm_diskgroup_proxy および SUNW.ScalDeviceGroup リソース間のオフライン再起動依存関係を設定する必要があります。
始める前に
すべての論理ホスト名の IP アドレスのサブネットとネットマスクのエントリが /etc/netmasks ファイルにあることを確認してください。必要に応じて、/etc/netmasks ファイルを編集して、不足しているエントリがある場合は追加します。
ボリューム管理に Solaris Volume Manager for Sun Cluster を使用している場合は、使用するクラスタ Oracle ASM インスタンスの複数所有者ディスクセットを構成します。Oracle® Solaris Cluster Data Service for Oracle Real Application Clusters ガイド の How to Create a Multi-Owner Disk Set in Solaris Volume Manager for Sun Cluster for the Oracle RAC Databaseの手順に従ってください。
Oracle Grid Infrastructure ソフトウェアがインストールされていることを確認します。
Oracle Grid Infrastructure SCAN リスナーを使用する場合は、使用する論理ホスト名の IP アドレスが、その SCAN リスナーの IP アドレスと同じサブネット上に存在することを確認してください。別のサブネット上にある場合、パブリックネットワークで障害が発生した場合に、Oracle Database リソースはフェイルオーバーしません。
Oracle ASM インスタンスとデータベースインスタンスの Oracle Clusterware リソースが構成されていることを確認します。
Oracle_Home に使用するファイルシステムが設定されていることを確認します。手順についてはOracle Solaris Cluster ノードとディスクの準備を参照してください。
Oracle ASM 候補ディスクは、次のいずれかから指定できます。
Solaris Volume Manager ディスクセット
ハードウェア RAID ストレージデバイス (/dev/did/rdsk/dNsX など)
# /Grid_home/bin/crsctl add type sun.storage_proxy.type -basetype local_resource
# /Grid_home/bin/crsctl add res sun.scal-svmdg-rs \ -type sun.storage_proxy.type \ -attr "ACTION_SCRIPT='/opt/SUNWscor/dsconfig/bin/scproxy_crs_action' \ ACL='owner:root:rwx,pgrp:oinstall:rwx,other::r--' SCRIPT_TIMEOUT='20' RESTART_ATTEMPTS='60'"
SUNW.ScalDeviceGroup リソース名。
sun.storage_proxy.type リソースタイプを指定します。
/opt/SUNWscor/dsconfig/bin/scproxy_crs_action アクションスクリプトを指定します。
所有者を root と、グループを Oracle ASM ディスクグループの ACL グループエントリと同一に設定します。次のコマンドは、ACL グループエントリを表示します。
# /Grid_home/bin/crsctl stat res ora.DATA1.dg -p | grep ACL= ACL=owner:oragrid:rwx,pgrp:oinstall:rwx,other::r--
この出力例は、oinstall がそのグループエントリであることを示しています。
20 に設定します。
60 に設定します。
次に出力例を示します。
# /Grid_home/bin/crsctl stat res sun.scal-svmdg-rs -p NAME=sun.scal-svmdg-rs TYPE=sun.storage_proxy.type ACL=owner:root:rwx,pgrp:oinstall:rwx,other::r-- ACTIONS= ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT=/opt/SUNWscor/dsconfig/bin/scproxy_crs_action ACTION_TIMEOUT=60 AGENT_FILENAME=%CRS_HOME%/bin/scriptagent ALERT_TEMPLATE= ALIAS_NAME= AUTO_START=restore CHECK_INTERVAL=60 CHECK_TIMEOUT=0 CLEAN_TIMEOUT=60 DEBUG=1 DEFAULT_TEMPLATE= DEGREE=1 DELETE_TIMEOUT=60 DESCRIPTION= ENABLED=1 INSTANCE_FAILOVER=1 INTERMEDIATE_TIMEOUT=- LOAD=1 LOGGING_LEVEL=1 MODIFY_TIMEOUT=60 NOT_RESTARTING_TEMPLATE= OFFLINE_CHECK_INTERVAL=0 PROFILE_CHANGE_TEMPLATE= RESTART_ATTEMPTS=60 SCRIPT_TIMEOUT=20 SERVER_CATEGORY= START_CONCURRENCY=0 START_DEPENDENCIES= START_TIMEOUT=0 STATE_CHANGE_TEMPLATE= STOP_CONCURRENCEY=0 STOP_DEPENDENCIES= STOP_TIMEOUT=0 UPTIME_THRESHOLD=1h USER_WORKLOAD=no #
# /Grid_home/bin/crsctl stat res ora.DATA1.dg -p | grep START_DEPENDENCIES START_DEPENDENCIES=pullup:always(ora.asm) hard(ora.asm,sun.svmdg-rs)
# clresourcetype register SUNW.crs_framework
# clresource create -g rac-fmwk-rg \ -t SUNW.crs_framework \ -p Resource_dependencies_offline_restart=rac-fmwk-rs \ -d crs-fmwk-rs
# clresourcetype register SUNW.scalable_asm_instance_proxy
# clresourcetype register SUNW.scalable_asm_diskgroup_proxy
# clresourcegroup create -S asm-inst-rg asm-dg-rg
# clresourcegroup set -p Rg_affinities=++rac-fmwk-rg asm-inst-rg
# clresourcegroup set -p Rg_affinities=++asm-inst-rg asm-dg-rg
# clresource create -g asm-inst-rg \ -t SUNW.scalable_asm_instance_proxy \ -p Oracle_home=Oracle_home \ -p CRS_HOME=Grid_home \ -p "oracle_sid{node1}"=instance \ -p "oracle_sid{node2}"=instance \ -p Resource_dependencies_offline_restart=crs-fmwk-rs \ -d asm-inst-rs
リソースを配置するリソースグループの名前を指定します。
追加するリソースのタイプを指定します。
Oracle Database ホームディレクトリへのパスを設定します。
クラスター用 Oracle Grid Infrastructure のホームディレクトリへのパスを設定します。
Oracle Database システム識別子を設定します。
作成するリソースの名前を指定します。
SUNW.scalable_asm_diskgroup_proxy リソースタイプを使用します。
# clresource create -g asm-dg-rg \ -t SUNW.scalable_asm_diskgroup_proxy \ -p Asm_diskgroups=dg[,dg…] \ -p Resource_dependencies_offline_restart=asm-inst-rs,scal-svmdg-rs \ -d asm-dg-rs
# clresourcegroup online -eM asm-inst-rg
# clresourcegroup online -eM asm-dg-rg
# clresource status +
# clresourcegroup create ora-db-rg
SUNW.oracle_server と SUNW.oracle_listener の 2 つのリソースタイプを登録します。
# clresourcetype register SUNW.oracle_server # clresourcetype register SUNW.oracle_listener
# clreslogicalhostname create -g ora-db-rg [-h logical-hostname] logical-hostname-rs
論理ホスト名を指定します。この論理ホスト名は、ネームサービスデータベースに存在する必要があります。logical-hostname と logical-hostname-rs が同一の場合、logical-hostname はオプションです。
作成する論理ホスト名リソースに割り当てる名前を指定します。
# clresourcegroup online -eM ora-db-rg
遠隔同期リソースの場合は、Db_unique_name および Resource_dependencies_offline_restart を省略します。ただし、Dataguard_role=FAR_SYNC を指定する必要があります。
# clresource create -g ora-db-rg \ -t SUNW.oracle_server \ -p Db_unique_name=db-unique-name \ -p Resource_dependencies_offline_restart=asm-dg-rs \ -p Oracle_home=Oracle_home \ -p Oracle_sid=instance \ -d ora-db-rs -pRestart_type=entity-to-restart \ -pDataguard_role=role] \ -pStandby_mode=mode] \ -p Resource_dependencies_offline_restart=storageplus-resource \ resource
リソースを配置するリソースグループの名前を指定します。
追加するリソースのタイプを指定します。
Oracle Database ホームディレクトリへのパスを設定します。
Oracle Database システム識別子を設定します。
Oracle Database の一意の名前を設定します。
作成するリソースの名前を指定します。
障害への応答が再起動されたときに、サーバー障害モニターが再起動させるエンティティーを指定します。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 に変更します。
遠隔同期データベースインスタンスのリソースを作成するには、role を FAR_SYNC に変更します。
スタンバイデータベースインスタンスのモードを指定します。Dataguard_role を NONE または PRIMARY に変更すると、Standby_mode の値は無視されます。
論理スタンバイデータベースを指定するには、mode を LOGICAL に変更します。この値はデフォルト値です。
物理スタンバイデータベースを指定するには、mode を PHYSICAL に変更します。
スナップショットスタンバイデータベースを指定するには、mode を SNAPSHOT に変更します。
# clresource enable ora-db-rs
次のステップ
HA for Oracle Database を登録および構成したあとは、HA for Oracle Database のインストールの確認に進みます。