Azure Database for PostgreSQLでバックアップ、リストアを試してみた
Azure Database for PostgreSQLでは、デフォルトでバックアップおよびリストア機能が提供されています。
バックアップの冗長性としては、ローカル冗長ストレージとGeo冗長ストレージ(Basicプランは除く)が利用可能です。
Azure Database for PostgreSQL (単一サーバー) でのバックアップと復元(MS社公式)
特徴としては、このようなものがあるようです。
-
-
- 同じサーバー名でのリストアはできない
- 完全バックアップ:毎週1回取得
- 差分バックアップ:1日に2回取得
- トランザクションログバックアップ:5分ごとに取得
- 最大4TBまたは16TB(現在新規作成の場合は16TBに対応)(Basicプランは除く)
- バックアップ保有期間はデフォルトで7日間、最大で35日間まで保持
- ポイントインタイムリストアを利用することで、最短5分前までの任意の時点にデータベースを復元することが可能
- ポイントインタイムリストアは、同じリージョン内でのみ利用可能
- Geo冗長バックアップが有効な場合、別リージョンへの復元(Geoリストア)が可能
- Geoリストアは1時間前(最長)までの状態にリストア可能
- Geo冗長バックアップは汎用以上のプランで利用可能
-
今回は、Azure Database for PostgreSQLのリソース作成から、2つのパターン(ポイントインタイムリストア(PITR)とGeoリストア)によるバックアップリストアの手順を確認しました。
Azure Database for PostgreSQLフレキシブルサーバーのバックアップ・リストアについては、こちらで紹介しています。
またAzure Backup Vault(バックアップコンテナー)を利用したAzure Database for PostgreSQLのバックアップはこちらで実施しています。
Azure Database for PostgreSQLのリソース作成、バックアップ設定、接続設定手順
作成したAzure Database for PostgreSQLの構成
今回は、以下のような構成でAzure Database for PostgreSQLのリソースを作成しています。
必要最小限のリソースと設定で構成しています。
-
- テストリソース設定(単一サーバー)
- サーバー名:restore-test-db-01
- リージョン:米国東部
- バージョン:11
- 価格レベル:汎用目的
- コンピューティングとストレージ:仮想コア:2コア、ストレージサイズ:5GB
- バックアップ:Geo冗長
- バックアップ保持期間:7日間
- テストリソース設定(単一サーバー)
Azure Database for PostgreSQLのリソース作成、バックアップ設定
最初に、Azure Portalを利用してAzure Database for PostgreSQLのリソースを作成します。
作成手順については、マイクロソフト社が公開している公式ドキュメントを参考に進めています。
チュートリアル:Azure portal を使用して Azure Database for PostgreSQL – 単一サーバーを設計する(MS社公式)
なお、今回はテスト用の値を利用して構成しています。
サーバー名などの設定値は、ご利用環境に合わせて適宜変更してください。
特に指定がない項目については、基本的にデフォルト値のまま作成しています。
Azure Database for PostgreSQLのリソース作成 | |
Azure Database for PostgreSQLのメニューで作成を選択します。 |
|
PostgreSQLのデプロイオプション選択画面になります。 |
|
作成画面が表示されます。 |
|
サーバーの構成画面が表示されます。
設定後にOKを選択します。 |
|
基本タブに戻ります。
設定値とパスワードの入力が完了したら、確認および作成を選択します。 |
|
確認画面が表示されます。 |
|
バックアップの設定項目は、冗長性(ローカル冗長またはGeo冗長)と、バックアップの保管期間(最大35日間)の2つのみです。
ユーザーがバックアップの取得タイミングを意識する必要がない設計となっているためです。 |
Azure Database for PostgreSQLで接続設定
デフォルトでは、外部からAzure Database for PostgreSQLへの接続は許可されていません。
自身のIPアドレスからの接続を許可するためには、ファイアウォール設定でIPアドレスの追加を行う必要があります。
接続許可設定 | |
クライアントIPの追加を選択します。 ※環境に応じて許可するIPアドレスは適切に指定します。開始IPと終了IPの両方に同じアドレスを指定することで、単一IP(/32)として登録できます。 |
![]() |
PostgreSQLでテーブル作成
Azure Database for PostgreSQLへの接続には、A5:SQL Mk-2を利用しています。
-
- 接続情報
- ホスト名:restore-test-db-01.postgres.database.azure.com(サーバー名.postgres.database.azure.com)
- データベース名:postgres(デフォルト)
- ユーザーID:restoredbadmin01@restore-test-db-01(ユーザー名@サーバー名)
- Port:5432
- パスワード:設定した値
- 接続情報
—広告—
Azure Database for PostgreSQLのリストア手順
Azure Database for PostgreSQL(単一サーバー)のリストア方法は2種類ある
リストア方法には、ポイントインタイムリストア(PITR)とGeoリストアの2種類があります。
-
- ポイントインタイムリストア(PITR)
- Azure Database for PostgreSQLの復元機能を利用
- 過去5分前までの任意の時点にデータベースを復元可能
- ローカル冗長、Geo冗長どちらのバックアップ構成でも利用可能
- 使用されるバックアップデータはローカル冗長
- リストア先は同一リージョン内のみ
- Geoリストア
- 新規サーバー作成時にデータソースにバックアップを使用
- Geoリストアでは、最終バックアップから約1時間前の時点に復元が可能
- 日時や時間の詳細指定はできない
- Geo冗長バックアップの場合のみ利用可能
- リストア先リージョンを選択できます。
- ポイントインタイムリストア(PITR)
いずれのリストア方法も、既存サーバーを直接上書きするのではなく、新規サーバーとして復元されます。
同じサーバー名でのリストアはできません。
ポイントインタイムリストア(PITR)を使って同じリージョンにリストア
Azure Database for PostgreSQLのメニューにある復元機能を利用して、ポイントインタイムリストアを実施します。
リストア後のサーバー名はrestore-test-db-02としています。
ポイントインタイムリストア手順 | |
復元を選択します。 |
![]() |
復元ポイント (UTC)を選択します。 ※復元ポイントとして選択可能な期間は、バックアップの保持期間に依存します。 |
![]() |
リストア完了後にテーブルを参照します。 |
![]() |
Geoリストアを使用して別リージョンにリストアする
Geoリストアを使用して、別リージョンへのリストアを実施します。
リストア後のサーバー名をrestore-test-db-03とし、米国東部2(East US 2)リージョンにリストアしています。
※リストア元は米国東部(East US)リージョンです。
Geoリストア手順 | |
Azure Database for PostgreSQLのメニューで作成を選択します。 |
![]() |
PostgreSQLのデプロイオプション選択画面になります。 |
![]() |
サーバー名を入力し、データソースにバックアップを使用を選択します。 ※バックアップ履歴や複数のバックアップイメージが表示されるわけではありません。 |
![]() |
バックアップを選択すると、確認メッセージが表示されます。 |
![]() |
場所を選択します。 |
![]() |
確認画面が表示されます。 ※テーブルを含めてデータがリストアされていることが確認できます。 |
![]() |
Geoリストアの場合はサーバーは引き継がれない
リストア時はサーバーパラメーター以外の設定は引き継がれません。
Geoリストアの場合、サーバーパラメーターも引き継がれません。
※なお、フレキシブルサーバーの場合はサーバーパラメーターが引き継がれます。
Azure Database for PostgreSQL フレキシブルサーバーのレプリケーションについては、こちらで紹介しています。
—広告—
最後に
今回は、Azure Database for PostgreSQLのリソース作成、バックアップ設定からリストアまでの一連の手順を確認しました。
リストアは、2つのパターン(ポイントインタイムリストア(PITR)とGeoリストア)の手順を確認しています。
マネージドのデータベースらしく、とても簡単にリストアできることが確認できました。
引き続き、いろいろ試してみたいと思います。