Azure Database for PostgreSQLでバックアップ、リストアを試してみた

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のデプロイオプション選択画面になります。
単一サーバーを選択します。

作成画面が表示されます。
リソースグループを選択後、サーバーの構成をクリックします。

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

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

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

基本タブに戻ります。
今回は以下の値で設定します。

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

設定値とパスワードの入力が完了したら、確認および作成を選択します。

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

バックアップの設定項目は、冗長性(ローカル冗長またはGeo冗長)と、バックアップの保管期間(最大35日間)の2つのみです。
バックアップの取得時間を指定するような設定項目はありません。

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

ユーザーがバックアップの取得タイミングを意識する必要がない設計となっているためです。
ポイントインタイムリストア(PITR)機能により、5分前までの任意の時点にデータベースを復元できるため、いつバックアップが取得されたかを意識する必要がありません。
Geoリストアの場合も、復元可能な最短時点が1時間前であるため、バックアップの取得時間を個別に指定する必要はありません。

Azure Database for PostgreSQLで接続設定

デフォルトでは、外部からAzure Database for PostgreSQLへの接続は許可されていません。
自身のIPアドレスからの接続を許可するためには、ファイアウォール設定で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
      • パスワード:設定した値
テーブル作成

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

スキーマ、テーブルを作成します。
確認用に値をインサートします。

  • スキーマ名: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リストアの2種類があります。

    • ポイントインタイムリストア(PITR)
      • Azure Database for PostgreSQLの復元機能を利用
      • 過去5分前までの任意の時点にデータベースを復元可能
      • ローカル冗長、Geo冗長どちらのバックアップ構成でも利用可能
      • 使用されるバックアップデータはローカル冗長
      • リストア先は同一リージョン内のみ
    • Geoリストア
      • 新規サーバー作成時にデータソースにバックアップを使用
      • Geoリストアでは、最終バックアップから約1時間前の時点に復元が可能
      • 日時や時間の詳細指定はできない
      • Geo冗長バックアップの場合のみ利用可能
      • リストア先リージョンを選択できます。

いずれのリストア方法も、既存サーバーを直接上書きするのではなく、新規サーバーとして復元されます。
同じサーバー名でのリストアはできません。

ポイントインタイムリストア(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のデプロイオプション選択画面になります。
単一サーバーを選択します。

サーバー名を入力し、データソースにバックアップを使用を選択します。
バックアップの選択画面では、リストア可能な最新日時のバックアップが1つだけ表示されます。

※バックアップ履歴や複数のバックアップイメージが表示されるわけではありません。
※バックアップ一覧に表示されるのは、Geoバックアップを取得しているサーバーのみです。
※Geoリストアの場合、指定できる復元ポイントは最新のバックアップのみとなります。任意の過去日時を選択することはできません。

バックアップを選択すると、確認メッセージが表示されます。
続行を選択します。

場所を選択します。
今回は米国東部2(East US 2)を指定しています。
確認および作成を選択します。

確認画面が表示されます。
内容を確認し、問題がなければ作成を選択します。
リストア作業は完了です。

※テーブルを含めてデータがリストアされていることが確認できます。

Geoリストアの場合はサーバーは引き継がれない

リストア時はサーバーパラメーター以外の設定は引き継がれません。
Geoリストアの場合、サーバーパラメーターも引き継がれません。

※なお、フレキシブルサーバーの場合はサーバーパラメーターが引き継がれます。

Azure Database for PostgreSQL フレキシブルサーバーのレプリケーションについては、こちらで紹介しています。

—広告—

最後に

今回は、Azure Database for PostgreSQLのリソース作成、バックアップ設定からリストアまでの一連の手順を確認しました。
リストアは、2つのパターン(ポイントインタイムリストア(PITR)とGeoリストア)の手順を確認しています。
マネージドのデータベースらしく、とても簡単にリストアできることが確認できました。

引き続き、いろいろ試してみたいと思います。

スポンサーリンク