オンラインバックアップ
オンラインバックアップは、データベースのスナップショット (ベースバックアップ) と、データの更新によって発生するトランザクションログをアーカイブログとして保存しておくことにより、ディスクの障害などによってデータが消失してしまった場合も、直前の状態までリカバリすることができるという機能です。
また、オンラインバックアップでは、日時を指定して任意の状態までリカバリすることもできるため、操作ミスによって誤ってデータを削除してしまった場合などもデータをリカバリすることができます。
これらの作業を行うためにはメインメニューから「オンラインバックアップ」を選択します。
- 注意
-
管理ツールのオンラインバックアップを利用するには、postgresql.conf の archive_command、archive_mode を手動で設定変更をしないでください。
ホットスタンバイを構築して運用している場合には、オンラインバックアップの設定を変更しないでください (管理ツールからの操作を含む)。
全般的な設定
オンラインバックアップでのバックアップの設定を行います。
-
サブメニューにある「全般」をクリックします。
-
バックアップの設定を行います。
-
「アーカイブモードを有効にする」にチェックを入れます。
-
「ベースバックアップとアーカイブログの格納ディレクトリ」に任意のディレクトリを絶対パスで入力します。 「選択」ボタンから選択することもできます。
-
-
「適用」ボタンをクリックします。 アーカイブログが指定した格納ディレクトリに保存されるように設定されます。
- 注意
-
手動で archive_command や archive_mode を変更すると、PowerGres Plus Manager によるオンラインバックアップの操作が正しく行えなくなります。
-
オンラインバックアップの設定を有効にするには、サービスを再起動します。
-
サービスを再起動すると、データの更新によって発生するトランザクションログがアーカイブログとして保存されるようになります。
なお、PITR によるリカバリを行えるようにするには、あらかじめベースバックアップを取得しておく必要があります。 ベースバックアップを取るには、再起動後「オンラインバックアップ」の「ベースバックアップ」のページで操作を行います。
ベースバックアップ
ベースバックアップの作成
「全般」で設定した設定に基づいて、ベースバックアップを取得します。
-
サブメニューにある「ベースバックアップ」をクリックします。
-
「ベースバックアップを作成」ボタンをクリックします。
この操作はサービスが開始されている状態で行います。 データ容量と同時実行されているアクセス量に応じて完了するまで時間がかかります。
テーブルスペースを含むデータベースクラスタ全体のコピーが「全般」ページで指定した格納ディレクトリに保存されます。
コマンドラインからベースバックアップの作成
ベースバックアップの取得を GUI 上の操作でなく、コマンドラインから行うことができます。
powergres-mgr コマンドを「--basebackup」というオプションとパラメータ文字列を与えて起動すると、GUI から「ベースバックアップを作成」ボタンをクリックしたときと同じ動作をして終了します。 パラメータ文字列には、サービス名と管理者ユーザ名、パスワードを指定します。
- Windows の場合
-
c:\>powergres-mgr.exe --basebackup "service=powergres user=postgres password=xxxxx"
- Linux の場合
-
$ powergres-mgr --basebackup "service=powergres user=postgres password=xxxxx"
このコマンドは「ベースバックアップ設定を保存」ボタンを押して、シェルスクリプトまたはバッチファイルとして生成し、保存することができます。 保存したファイルは、スケジュールバックアップ に使用することができます。
強制アーカイブ化
アーカイブ化されていないトランザクションログを、強制的にアーカイブ化します。 リカバリを行う前にこの操作を行うことで直近の状態にも戻れるようになります。
-
サブメニューにある「ベースバックアップ」をクリックします。
-
「トランザクションログを強制的にアーカイブ化」ボタンをクリックします。
リカバリ
取得したバックアップからリカバリを行います。 ベースバックアップを作成した日時より前の状態には復元できません。
一番新しいバックアップを利用する場合
-
サブメニューにある「リカバリ」をクリックします。
-
「最新の状態までリカバリする」を選択します。
-
「リカバリを実行」ボタンをクリックします。
指定時刻までリカバリする場合
-
サブメニューにある「リカバリ」をクリックします。
-
「日時を指定してリカバリする」を選択します。
-
欄に日時を入力します。 または、ベースバックアップファイルを前ページの一覧から選択すると、日時が入力されます。
-
その日時の直前までのリカバリをしたい場合は「指定した日時の直前までリカバリする」にチェックを入れます。 わずかな差ですが指定時刻ちょうどの分が含まれなくなります。
-
-
「リカバリを実行」ボタンをクリックします。
サービス稼動中の場合には、リカバリを行うためにサービスが一度停止します。 現在のデータベースクラスタが存在している場合には自動的に退避されます。 リカバリが成功すると、サービス稼動状態になります。
- 注意
-
リカバリをするためには、サーバを停止する必要があります。
リカバリ中、現在のデータベースクラスタを自動的に退避します。 退避したものは、「(データベースクラスタのディレクトリ名).recovery.(タイムスタンプ)」という名前で保存されます。 退避したデータベースのデータファイルは自動的に削除されないので、正常にリカバリができたら手動で削除してください。
リカバリを実行すると、ベースバックアップ作成後に変更した設定ファイル (postgresql.conf など) への変更は反映されません。 変更点を再設定するか手動で設定ファイルをコピーする必要があります。
リカバリ完了後に運用を継続する場合、すみやかにベースバックアップを取りなおすことをお勧めします。