Oracle プライマリデータベースと Oracle スタンバイデータベースの間で、データベースロールのフェイルオーバーまたはスイッチオーバーが可能です。Oracle コマンドを使用して DataGuard インスタンスのロールを変更する場合、変更はこれらのインスタンスを表す Sun Cluster リソースには伝播しません。したがって、必ず Sun Cluster コマンドを使用してこれらのリソースのプロパティーを変更して、データベースのインスタンスが正しいロールで起動するようにする必要があります。
Sun Cluster が間違ったロールのインスタンスを起動しないようにします。
DataGuard インスタンスのロールの変更中にノードまたはゾーンが失敗した場合、Sun Cluster がインスタンスを正しくないロールで起動することがあります。これを防ぐには、インスタンスを表す Oracle サーバーリソースの拡張プロパティー Dataguard_role を IN_TRANSITION に変更します。
# clresource set -p Dataguard_role=IN_TRANSITION server-rs |
Oracle データベースで必要な操作を行って、データベースを新しいロールに変換します。
インスタンスを表す Oracle サーバーリソースの次の拡張プロパティーを変更して、インスタンスの新しいロールを反映させます。
Dataguard_role
Standby_mode
次のように、Dataguard_role と Standby_mode の必要な組み合せはロールの変更に依存します。
プライマリデータベースからプリマリスタンバイデータベースに変更するには、次のコマンドを実行します。
# clresource set -p Dataguard_role=STANDBY -p Standby_mode=PHYSICAL server-rs |
プライマリデータベースから論理スタンバイデータベースに変更するには、次のコマンドを実行します。
# clresource set -p Dataguard_role=STANDBY \ -p Standby_mode=LOGICAL server-rs |
スタンバイデータベースからプライマリデータベースに変更するには、次のコマンドを実行します。
# clresource set -p Dataguard_role=PRIMARY server-rs |