Azure Database for PostgreSQLでバックアップ、リストアを試してみた
Azure Database for PostgreSQLでは、デフォルトでバックアップリストア機能が提供されています。
バックアップはローカル冗長、Geo冗長(Basic除く)が提供されています。
Azure Database for PostgreSQL (単一サーバー) でのバックアップと復元(MS社公式)
特徴としては、このようなものがあるようです。
-
-
- 同じサーバー名では戻せない
- 完全バックアップ:毎週 1 回
- 差分バックアップは 1 日 2 回
- トランザクション ログ バックアップは 5 分ごと
- 最大 4 TB or 16TB(今作るとこちら)サポートされる(Basicは除く)
- バックアップ保有期間デフォルトでは7日間で最大35日間
- ポイントインタイム リストアが使え最短5分前までに戻す事が出来る
- ポイントタイムリストアは同じリージョンに戻す場合のみ使える
- Geo 冗長バックアップを取得している場合は別リージョンに復元できる
- Geo冗長バックアップは汎用以上で利用可能
- Geoリストアは1時間前(最長)までに戻せる。
-
ポイントタイムリストアの手順等を確認してみたかったので、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 PortalでAzure Database for PostgreSQLのメニューを選択し作成を開始します。 |
|
PostgreSQLのデプロイオプション選択画面になります。単一サーバーを選択します。 |
|
作成画面でコンピューティングでリソースグループを選択後、サーバの構成をクリックします。 |
|
サーバの構成画面が表示されます。汎用目的のタブを選択します。今回はこちらの値で設定しています。
設定を選択後にOKを選択します。 |
|
今回は以下の値で設定します。
設定値とパスワードを入力し終わったら確認および作成を選択します。 |
|
確認画面が表示されますので、内容を確認し問題が無ければ作成を選択します。 |
|
バックアップの設定は冗長設定と保管期間の2つしかありません。バックアップ取得時間と言った設定はありません。
バックアップ時間の指定がないのは、そもそも意識する必要がない為になります。 ポイントタイムリストア(PITR)で5分前まで任意で戻す時間を指定できる為、特にいつ取得したという事をユーザーが意識する必要がありません。(Geoリストアの場合も1時間前に戻すのでバックアップ時間を意識する必要がありません。) |
Azure Database for PostgreSQLで接続設定
デフォルトでは接続出来ない状態になっています。自身のIPからAzure Database for PostgreSQLへの接続許可設定をします。
接続許可設定 | |
クライアントIPの追加を選択します。 自身のIPを許可するファイアウォール規則が追加されますので、保存を選択します。 ※環境に応じて許可するIPは指定して下さい。(開始IPと終了IPに同じIPを指定すると/32で指定可能です。) |
PostgreSQLでテーブル作成
今回はA5:SQL Mk-2を利用してAzure Database for PostgreSQLに接続します。
-
- 接続情報
- ホスト名: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リストアの種類あります。
-
-
- 作成したAzure Database for PostgreSQLにある復元を利用して実施するポイントタイムリストア(PITR)
- 5分前までの任意の時間に戻すことが可能
- ローカル冗長、Geo冗長どちらでも利用可能(実際に使用されるデータはローカル冗長のデータ)
- リストア先は同じリージョンのみ
- 新規作成時にデータソースにバックアップを使用して実施するGeoリストア
- 1時間前までの時間に戻すことが可能。ただし日時や時間指定は出来ず特定の時間に戻す事は出来ない。
- Geo冗長の場合のみ利用可能
- リストア先のリージョンは選択可能
- 作成したAzure Database for PostgreSQLにある復元を利用して実施するポイントタイムリストア(PITR)
-
どちらの場合も、イメージ的には新規構築に近く同じサーバー名でのリストアは出来ません。
ポイントタイムリストア(PITR)を使って同じリージョンにリストア
最初にAzure Database for PostgreSQLのメニューにある、復元を利用してポイントタイムリストアをやってみます。サーバー名はrestore-test-db-02としています。
ポイントタイムリストア手順 | |
復元を選択します。 |
|
復元ポイント(UTC) を選択します。サーバー名を入力します。今回はrestore-test-db-02としています。 ※復元ポイントで選択できる期間=バックアップ保有期間になります。 ※Azure VMのように戻すイメージを選択とかもなく、時間指定だけになります。 |
|
リストア完了後にテーブルを参照してみると、データがリストアされている事が分かります。 |
Geoリストアを使用して別リージョンにリストアする
Geoリストアを使用して別リージョンにリストアを実施してみます。サーバー名はrestore-test-db-03とし、米国東部2にリストアしています。(リストア元DBは米国東部)
Geoリストア手順 | |
Azure PortalでAzure Database for PostgreSQLのメニューを選択し作成を開始します。 |
|
PostgreSQLのデプロイオプション選択画面になります。単一サーバーを選択します。 |
|
サーバー名を入力し、データソースにバックアップを選択します。 バックアップを選択します。 ※選択できるバックアップは履歴(イメージが複数)が表示される訳ではなく、リストア可能な最新の日時のもの1つが表示されます。バックアップ元1つに対してリストア可能なバックアップは1つになります。 バックアップに表示されるのは、Geoバックアップを取得しているサーバーのみになります。Geoリストアの場合は7日前に戻したいとかは出来ません。 |
|
バックアップを選択すると確認メッセージが表示されます。 続行を選択します。 |
|
場所を選択します。今回は米国東部2を指定しています。 確認および作成を選択します。 |
|
確認画面が表示されますので、内容を確認し問題が無ければ、作成を選択します。 これでリストア作業は完了です。 ※実際に確認するとテーブルを含めてリストア出来ている事が確認出来ます。 |
Geoリストアの場合はサーバパラメータは引き継がれない
リストア時にサーバーパラメーター以外の設定は引き継がれないのですが、Geoリストアの場合はサーバーパラメータも引き継がれないそうです。
※フレキシブルサーバーの場合は引き継がれます。
Azure Database For PostgreSQLフレキシブルサーバーのレプリケーションについてはこちらに纏めています。