Database > RDS for PostgreSQL > バックアップ及び復元

バックアップ

障害状況に備えて、DBインスタンスのデータベースを復旧できるように事前に準備できます。必要なときにコンソールでバックアップを実行したり、定期的にバックアップが実行されるように設定できます。バックアップが実行されている間は、当該DBインスタンスのストレージの性能低下が発生する可能性があります。サービスに影響を与えないように、サービスの負荷が少ない時間にバックアップすることを推奨します。

RDS for PostgreSQLではpg_basebackupツールを利用してデータベースをバックアップします。外部PostgreSQLのバックアップに復元したり、RDS for PostgreSQLのバックアップに復元するためには、RDS for PostgreSQLで使うpg_basebackupと同じバージョンを使う必要があります。DBエンジンのバージョンに基づくpg_basebackupのバージョンは次のとおりです。

PostgreSQLバージョン pg_basebackupバージョン
14.6 14.6
  • pg_basebackupのインストールに関する詳しい説明はPostgreSQL Webサイトを参照してください。
    • https://www.postgresql.org/docs/14/app-pgbasebackup.html

バックアップ時に適用される設定項目は下記の通りで、自動バックアップと手動バックアップの両方に適用されます。

backup-config

手動バックアップ

特定の時点のデータベースを永続的に保存するには、コンソールで手動バックアップを行います。手動バックアップは、自動バックアップと違って、明示的にバックアップを削除しない限り、DBインスタンスが削除される時に一緒に削除されません。 コンソールで手動バックアップを実行するには

db-instance-detail-backup

❶バックアップするDBインスタンスを選択した後、バックアップをクリックすると、バックアップ作成 ポップアップウィンドウが表示されます。 - DBインスタンスを選択せずにバックアップをクリックすると、バックアップ作成ポップアップウィンドウ内のドロップダウンメニューからDBインスタンスを選択できます。 ❷バックアップの名前を入力します。以下のような制約事項があります。

  • バックアップ名は、リージョンごとに固有の名前でなければなりません。
  • バックアップ名は1~100文字まで、英字、数字、一部の記号(-, _, .)だけを入力することができ、最初の文字は英字のみ使用できます。

またはバックアップタブで

backup-create

+ バックアップ作成をクリックすると、バックアップ作成ポップアップウィンドウが表示されます。 ❷バックアップを実行するDBインスタンスを選択します。 ❸バックアップの名前を入力した後、作成をクリックすると、バックアップの作成をリクエストできます。

自動バックアップ

手動でバックアップを実行する場合以外にも、復元作業のために必要な場合、または自動バックアップスケジュールの設定により、自動バックアップが実行されることがあります。DBインスタンスのバックアップ保管期間を1日以上に設定すると、自動バックアップが有効になり、指定された時間にバックアップが実行されます。自動バックアップはDBインスタンスとライフサイクルが同じです。DBインスタンスが削除されると、保管された自動バックアップはすべて削除されます。自動バックアップでサポートする設定項目は次の通りです。

backup-config

バックアップ保管期間

  • バックアップをストレージに保存する期間を設定します。最大730日まで保管することができ、バックアップ保管期間が変更されると、保管期間が過ぎた自動バックアップファイルはすぐに削除されます。

バックアップ再試行回数

  • DMLクエリの負荷または様々な理由で自動バックアップが失敗した場合、再試行するように設定できます。最大10回まで再試行できます。再試行回数が残っていても、自動バックアップ実行時間の設定によって再試行しない場合があります。

バックアップ実行時間

  • バックアップが自動的に実行される時間を設定できます。バックアップ開始時間とバックアップウィンドウで構成されます。バックアップ実行時間は重複しないように複数回設定できます。バックアップ開始時間を基準に、バックアップウィンドウ内のある時点でバックアップを実行します。バックアップウィンドウは、バックアップの総実行時間とは関係ありません。バックアップにかかる時間はデータベースサイズに比例し、サービス負荷によって異なります。バックアップが失敗した場合、バックアップウィンドウを超えなければ、バックアップ再試行回数に応じてバックアップを再試行します。

自動バックアップの名前は{DBインスタンスの名前}_yyyy-MM-dd-HH-mmの形で付与されます。

[注意] 前回のバックアップが終了していないなどの状況では、バックアップが実行されない場合があります。

バックアップストレージ及び課金

すべてのバックアップファイルは、内部バックアップストレージにアップロードして保存します。手動バックアップの場合、別途削除するまで永続的に保存され、バックアップ容量に応じてバックアップストレージの課金が発生します。自動バックアップの場合、設定した保管期間だけ保存され、自動バックアップファイルの全体サイズのうち、DBインスタンスのストレージサイズを超えた容量に対して課金されます。バックアップファイルが保存されている内部バックアップストレージに直接アクセスすることはできません。

バックアップエクスポート

バックアップを実行しながらファイルをエクスポート

バックアップ後にバックアップファイルをユーザーのオブジェクトストレージにエクスポートできます。

db-instance-list-export-obs-ko

db-instance-list-export-obs-modal-ko

❶バックアップするDBインスタンスを選択後、ドロップダウンメニューでバックアップ後オブジェクトストレージにバックアップファイルをエクスポートをクリックすると、設定のポップアップ画面が表示されます。 ❷バックアップが保存されるオブジェクトストレージのテナントIDを入力します。テナントIDはAPIエンドポイント設定で確認できます。 ❸バックアップが保存されるオブジェクトストレージのNHN CloudアカウントまたはIAMアカウントを入力します。 ❹バックアップが保存されるオブジェクトストレージのAPIパスワードを入力します。 ❺バックアップが保存されるオブジェクトストレージのコンテナを入力します。 ❻コンテナに保存されるバックアップのパスを入力します。フォルダ名は最大255バイト、フルパスは最大1024バイトです。特定の形式(.または..)は使用できず、特殊文字(' " < > ;)や空白は入力できません。

バックアップファイルをエクスポート

内部バックアップストレージに保存されたバックアップファイルをユーザーオブジェクトストレージにエクスポートできます。

db-instance-detail-backup-export-ko

❶バックアップを実行した原本のDBインスタンスの詳細タブでエクスポートするバックアップファイルを選択し、オブジェクトストレージにバックアップをエクスポートをクリックすると、バックアップをエクスポートするためのポップアップ画面が表示されます。

backup-export-ko

❷またはバックアップタブでエクスポートするバックアップファイルを選択し、オブジェクトストレージにバックアップをエクスポートをクリックします。

[参考] 手動バックアップは、バックアップを実行した原本のDBインスタンスが削除された場合、バックアップをエクスポートできません。

復元

バックアップを利用して希望の時点にデータを復元できます。復元時は常に新しいDBインスタンスが作成され、既存のDBインスタンスに復元することはできません。バックアップを実行した元のDBインスタンスと同じDBエンジンのバージョンにのみ復元できます。バックアップが作成された時点に復元するバックアップ復元、希望する特定の時点に復元する時点復元をサポートします。

[注意] 復元するDBインスタンスのデータストレージサイズがバックアップを実行した元のDBインスタンスのデータストレージサイズより小さい場合や、元のDBインスタンスのパラメータグループと異なるパラメータグループを使用する場合、復元に失敗する可能性があります。

バックアップ復元

バックアップファイルだけで復元するため、バックアップを実行した元のDBインスタンスが必要ありません。コンソールでバックアップを復元するには

db-instance-detail-backup-restore

❶DBインスタンスの詳細タブで復元するバックアップファイルを選択した後、バックアップ復元をクリックすると、DBインスタンスの復元画面に移動します。

または

backup-restore

❶バックアップタブで復元するバックアップファイルを選択した後、バックアップ復元をクリックします。

時点復元

時点復元を利用して、希望する特定の時点またはWALログの特定のLSNに復元できます。時点復元をするためには、バックアップファイルとバックアップを実行した時点から復元を希望する時点までのWALログが必要です。WALログは、バックアップが行われる元のDBインスタンスのストレージに保存されます。WALログの保管期間が短い場合、ストレージ容量をより多く使用できますが、希望する時点への復元が難しい場合があります。下記のような場合、時点復元に必要なWALログがないため、希望の時点に復元できない場合があります。

  • 容量確保のために元のDBインスタンスのWALログを削除した場合
  • WALログの保管期間(最大7日間)に基づいてPostgreSQLによって自動的にWALログが削除された場合
  • その他の様々な理由でWALログが破損または削除された場合

Webコンソールで時点復元を行うには

db-instance-pitr

❶時点復元するDBインスタンスを選択した後、時点復元をクリックすると、時点復元を設定できるページに移動します。

Timestampを利用した復元

Timestampを使用した復元の場合は、選択した時点と最も近いバックアップファイルを基準に復元を行った後、希望する時点までのWALログを適用します。

db-instance-pitr-01

❶復元方法を選択します。

db-instance-pitr-02

❷復元時刻を選択します。最も最近の時点に復元するか、希望する特定の時点を直接入力できます。

オブジェクトストレージにあるバックアップを利用した復元

RDS for PostgreSQLからオブジェクトストレージにエクスポートしたバックアップファイルを利用してDBインスタンスを作成できます。

(1) バックアップファイルエクスポート項目を参考にして、RDS for PostgreSQLのバックアップをオブジェクトストレージにエクスポートします。

(2)復元するプロジェクトのコンソールに接続して、DBインスタンスタブでオブジェクトストレージにあるバックアップで復元ボタンをクリックします。

backup-obs-restore

❶バックアップが保存されたオブジェクトストレージのテナントIDを入力します。テナントIDはAPIエンドポイント設定で確認できます。 ❷バックアップが保存されたオブジェクトストレージのNHN CloudアカウントまたはIAMアカウントを入力します。 ❸バックアップが保存されたオブジェクトストレージのAPIパスワードを入力します。 ❹バックアップが保存されたオブジェクトストレージのコンテナを入力します。 ❺コンテナに保存されるバックアップのパスを入力します。フォルダ名は最大255バイト、フルパスは最大1024バイトです。特定の形式(.または..)は使用できず、特殊文字(' " < > ;)や空白は入力できません。 ❻ DBインスタンス作成項目を参照して残りの設定を入力し、オブジェクトストレージにあるバックアップで復元ボタンをクリックします。

TOP