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 Backup Vaylt(バックアップコンテナー)を利用した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のデプロイオプション選択画面になります。単一サーバーを選択します。

作成画面でコンピューティングでリソースグループを選択後、サーバの構成をクリックします。

サーバの構成画面が表示されます。汎用目的のタブを選択します。今回はこちらの値で設定しています。

  • vCore:2仮想コア
  • ストレージ:5GB
  • バックアップ冗長オプション:Geo冗長

設定を選択後にOKを選択します。

今回は以下の値で設定します。

  • サーバ名:restore-test-db-01
  • 場所:米国東部
  • 管理者ユーザー名:restoredbadmin01

設定値とパスワードを入力し終わったら確認および作成を選択します。

確認画面が表示されますので、内容を確認し問題が無ければ作成を選択します。

バックアップの設定は冗長設定と保管期間の2つしかありません。バックアップ取得時間と言った設定はありません。

  • 冗長:ローカル冗長、Geo冗長
  • 保管期間:最大35日間

バックアップ時間の指定がないのは、そもそも意識する必要がない為になります。

ポイントタイムリストア(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
      • パスワード:設定した値
テーブル作成

A5:SQL Mk-2でデータベース>データベースの追加と削除を選択し、データベースへの接続を作成します。

スキーマ、テーブルを作成、値をInsert します。

  • スキーマ名:restoretest
  • テーブル名:name

CREATE SCHEMA restoretest;

CREATE TABLE restoretest.name (
id integer,
name varchar(8)
);

INSERT INTO restoretest.name VALUES (1, 'Tama’) ;

select文を実行しテーブルが出来ている事を確認します。

Azure Database for PostgreSQLのリストア

Azure Database for PostgreSQL(単一サーバ)のリストア方法は2種類ある

リストア方法はポイントタイムリストア(PITR)とGeoリストアの種類あります。

      • 作成したAzure Database for PostgreSQLにある復元を利用して実施するポイントタイムリストア(PITR)
        • 5分前までの任意の時間に戻すことが可能
        • ローカル冗長、Geo冗長どちらでも利用可能(実際に使用されるデータはローカル冗長のデータ)
        • リストア先は同じリージョンのみ 
      • 新規作成時にデータソースにバックアップを使用して実施するGeoリストア
        • 1時間前までの時間に戻すことが可能。ただし日時や時間指定は出来ず特定の時間に戻す事は出来ない。
        • Geo冗長の場合のみ利用可能
        • リストア先のリージョンは選択可能

どちらの場合も、イメージ的には新規構築に近く同じサーバー名でのリストアは出来ません。

ポイントタイムリストア(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リストアの場合はサーバーパラメータも引き継がれないそうです。