データベース多重化運用では、業務を継続しながら構成されたサーバの保守作業を行うローリングアップデートを実施できます。
まず、スタンバイサーバに対して保守作業を実施したあと、スタンバイサーバをプライマリサーバに切り替えます。次に、スタンバイサーバに切り替わった旧プライマリサーバに対して保守作業を実施することで、業務を継続しながら保守作業を行うことができます。
参照
スタンバイサーバへの保守作業で停止時間が長くなる場合は、“9.7.1 スタンバイサーバの停止を伴う変更”の“スタンバイサーバの停止時間”を参照してください。
以下は、ローリングアップデートのイメージです。
図9.1 ローリングアップデート
上図に対応して、以下の手順で行います。
スタンバイサーバの保守作業
スタンバイサーバにおいてサーバの保守作業を行うために、Mirroring Controllerを停止します。
例)
> mc_ctl stop -M D:\mcdir\inst1
停止が完了したことを確認します。
スタンバイサーバにおいてデータベースサーバのOSの起動・停止に合わせて、多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定にしていた場合は、自動的に起動・停止する設定を解除します。
参照
OSの起動・停止に合わせて、多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定の詳細は“8.10 多重化したインスタンスとMirroring Controllerの自動起動・停止の設定”を参照してください。
“Administrator”権限のあるインスタンス管理者ユーザーで行ってください。
sc configコマンドを使用して、Windowsサービスから多重化したインスタンスおよびMirroring Controllerを自動起動しないように設定してください。
例) 登録サービス名が“Mirroring_Controller_inst1”の場合の実行例を以下に示します。
> sc config "Mirroring_Controller_inst1" start= demand
参考
sc qcコマンドを使用して、登録状態を確認することができます。
登録内容の詳細は、scコマンドのヘルプなどのドキュメントを参照してください。
保守作業を実施します。
スタンバイサーバにプライマリサーバのインスタンスの複製を作成します。
mc_ctlコマンドをsetupモードで実行して、スタンバイサーバのデータをプライマリサーバと同期して作成します。
例)
> mc_ctl setup -M D:\mcdir\inst1 -r standby -U ユーザー名 -h プライマリサーバのホスト名 -p プライマリサーバのポート番号 --standby-name=スタンバイサーバ名
参照
スタンバイサーバにプライマリサーバのインスタンスを複製する手順は、スタンバイサーバをセットアップする手順と同じです。
“8.4.2 スタンバイサーバのインスタンスの作成・設定・登録”を参照して、リカバリを実施してください。
多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定を確認します。
手順2において、OSの起動・停止に合わせて、多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定を解除した場合は、再設定します。自動的に起動・停止する必要が無い場合は、この手順は省略できます。
“Administrator”権限のあるインスタンス管理者ユーザーで行ってください。
sc configコマンドを使用して、Windowsサービスから多重化したインスタンスおよびMirroring Controllerを自動起動するように設定してください。
例) 登録サービス名が“Mirroring_Controller_inst1”の場合の実行例を以下に示します。
> sc config "Mirroring_Controller_inst1" start= auto
参考
sc qcコマンドを使用して、登録状態を確認することができます。
登録内容の詳細は、scコマンドのヘルプなどのドキュメントを参照してください。
スタンバイサーバのMirroring Controllerを起動(組込み)します。
本操作はスタンバイサーバでの保守作業を確定するうえで必要であるため、必ず実施してください。
インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで-fオプションを指定して実行します。これにより、自動切り替え/切り離しの有効化を行います。
なお、-fオプションを指定せずに起動した場合、自動切り替え/切り離しは有効になりません。有効にするには、Mirroring Controllerを起動したあとにmc_ctlコマンドをenable-failoverモードで実行するか、-fオプションを指定してMirroring Controllerを再起動してください。
例)
> mc_ctl start -M D:\mcdir\inst1 -w -f
インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで実行します。
例)
> mc_ctl start -M D:\mcdir\inst1 -w
プライマリサーバに切り替え
プライマリサーバの保守を行うために、プライマリサーバとスタンバイサーバのどちらかでmc_ctlコマンドをswitchモードで実行します。
例)
> mc_ctl switch -M D:\mcdir\inst1
切り替えが完了した時点で、新プライマリサーバのpostgresql.confファイルのsynchronous_standby_namesパラメータが以下のようにコメントアウトされます。
例)
#synchronous_standby_names = 'primary'
新スタンバイサーバの保守作業
Mirroring Controllerを停止します。
新スタンバイサーバ(切り替わる前のプライマリサーバ)において、mc_ctlコマンドをstopモードで実行します。
例)
> mc_ctl stop -M D:\mcdir\inst1
停止が完了したことを確認します。
新スタンバイサーバにおいてデータベースサーバのOSの起動・停止に合わせて、多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定にしていた場合は、ここで自動的に起動・停止する設定を解除します。
参照
OSの起動・停止に合わせて、多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定の詳細については“8.10 多重化したインスタンスとMirroring Controllerの自動起動・停止の設定”を参照してください。
“Administrator”権限のあるインスタンス管理者ユーザーで行ってください。
sc configコマンドを使用して、Windowsサービスから多重化したインスタンスおよびMirroring Controllerを自動起動しないように設定してください。
例) 登録サービス名が“Mirroring_Controller_inst1”の場合の実行例を以下に示します。
> sc config "Mirroring_Controller_inst1" start= demand
参考
sc qcコマンドを使用して、登録状態を確認することができます。
登録内容の詳細は、scコマンドのヘルプなどのドキュメントを参照してください。
停止中の新スタンバイサーバにおいて、保守作業を実施します。
新スタンバイサーバに新プライマリサーバのインスタンスの複製を作成します。
mc_ctlコマンドをsetupモードで実行して、新スタンバイサーバのデータを新プライマリサーバと同期して作成します。
例)
> mc_ctl setup -M D:\mcdir\inst1 -r standby -U ユーザー名 -h 新プライマリサーバのホスト名 -p 新プライマリサーバのポート番号 --standby-name=新スタンバイサーバ名
参照
新スタンバイサーバに新プライマリサーバのインスタンスを複製する手順は、新スタンバイサーバをセットアップする手順と同じです。
“8.4.2 スタンバイサーバのインスタンスの作成・設定・登録”を参照して、リカバリを実施してください。
多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定を確認します。
手順2において、OSの起動・停止に合わせて、多重化したインスタンスおよびMirroring Controllerを自動的に起動・停止する設定を解除した場合は、ここで再設定します。自動的に起動・停止する必要が無い場合は、この手順は省略することができます。
“Administrator”権限のあるインスタンス管理者ユーザーで行ってください。
sc configコマンドを使用して、Windowsサービスから多重化したインスタンスおよびMirroring Controllerを自動起動するように設定してください。
例) 登録サービス名が“Mirroring_Controller_inst1”の場合の実行例を以下に示します。
> sc config "Mirroring_Controller_inst1" start= auto
参考
sc qcコマンドを使用して、登録状態を確認することができます。
登録内容の詳細は、scコマンドのヘルプなどのドキュメントを参照してください。
保守作業が完了したあと、スタンバイサーバのpostgresql.confファイルを必要に応じて編集します。
インスタンスの複製により、synchronous_standby_namesパラメータがプライマリサーバでの指定内容になるため、スタンバイサーバでの指定内容へ修正します。コメントアウトされている場合は、アンコメントしてください。
スタンバイサーバで、Mirroring Controllerを起動(組込み)します。
インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで-wオプションと-fオプションを指定して実行します。これにより、自動切り替え/切り離しの有効化を行います。
なお、-fオプションを指定せずに起動した場合、自動切り替え/切り離しは有効になりません。有効にするには、Mirroring Controllerを起動したあとにmc_ctlコマンドをenable-failoverモードで実行するか、-fオプションを指定してMirroring Controllerを再起動してください。
例)
> mc_ctl start -M D:\mcdir\inst1 -w -f
インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで-wオプションを指定して実行します。
例)
> mc_ctl start -M D:\mcdir\inst1 -w
プライマリサーバの切り戻し
プライマリサーバとスタンバイサーバをもとのサーバ構成に戻して、以前のプライマリサーバで主たる業務を行いたい場合に実施してください。手順の詳細は、“10.1.1.3 プライマリサーバの切り戻し”を参照してください。
注意
保守作業が完了したあと、すみやかにバックアップを取得してください。