(準備中)
ストリーミングレプリケーションはPostgreSQLの本体組み込みの機能です。
ストリーミングレプリケーション構成のバックアップは、NetVaultでは公式にはサポートしていません。
PostgreSQLのストリーミングレプリケーション構成はどのようにバックアップするのでしょうか。
PostgreSQLのバックアップとしては2つの方法があります。
- pg_dumpコマンドによるダンプバックアップ
- pg_basebackupとWALを利用するファイルベースバックアップ
ネットでググると、スタンバイノード側でpg_dumpを使用してバックアップができるようです。
NetVaultのPostgreSQLプラグインは、PostgreQSLの2つのバックアップ方法(pg_dumpとpg_basebackup)どちらにも対応しています。検証してみました
検証で使用したバージョン
- PostgreSQLサーバ(プライマリ側)
- Windows 2019
- PostgreSQL 15.6
- NetVaultサーバ
- Windows 2019
- NetVault Server 13.1.2
- PostgreSQLサーバ(スタンバイ側)・NetVaultクライアント
- Windows2019
- PostgreSQL 15.6
- NetVault Client 13.1.2
- NetVault PostgreSQL プラグイン13
作業履歴
- まずPostgreSQLのストリーミングレプリケーション構成を設定します
- PostgreSQLサーバプライマリとスタンバイにPostgreSQLをインストール
- プライマリ側でpostgreSQL.conf設定
- プライマリ側でhda.conf設定
- プライマリ側のPostgreSQLサービスを再起動
- セカンダリ側のPostgreSQLサービスを停止
- セカンダリ側のdataフォルダ以下のDBファイルを削除
- セカンダリ側でpg_basebackupを実行
- セカンダリ側にpostgresql.auto.confが生成される
注意:このバージョンではrecovery.confは不要 - セカンダリ側再起動。
- スタンバイ側のログを確認してスタンバイとして動作開始していることを確認します
- マスタ側で以下のコマンドにより、ストリーミングレプリケーションが動作していることを確認します
- pg_benchを実行してサンプルデータベース内に、pg_benchのテーブルを作ります
- スタンバイ側でpg_benchのテーブルがレプリケーションされたことを確認します
- NetVaultクライアントとPostgreSQLプラグインをスタンバイ側にインストールして設定します
- バックアップオプションとしてpg_dumpを選択して、バックアップジョブを作成します
SQL Logical Data Dump がpg_dumpになります
File level Data Copy がpg_basebackupとWALのバックアップになります - バックアップジョブを実行し、正常終了を確認しました
スタンバイ側で取得したバックアップを、プライマリ側にリストアできるか?