Nedia What's up!

ネディアのエンジニアによるIT技術やサービスの紹介・検証などをお届け!

PostgreSQLストリーミングレプリケーション 第2回 インストールと初期設定

前回ではストリーミングレプリケーションの概要についてお話しましたが、第2回ではPostgreSQLのインストールとレプリケーション初期設定について解説いたします。

プライマリ(更新・参照可能)-セカンダリ型(参照のみ)の2台構成で進めます。

用意したもの

  • サーバ2台(CentOS 6.6 64bit版をインストール済み)

以下のような構成です。

それでは早速PostgreSQLのインストールと設定を行っていきましょう。

PostgreSQLのインストール

このサーバにPostgreSQLをsourceからインストールします。
マスターとスレーブ共通です。

PostgreSQLが起動すればこれでひとまずインストールは完了。

これをマスターとスレーブの2台分行います。

マスターのレプリケーション初期設定

続いてレプリケーションを使用するための設定を行います。

マスターのpostgresql.confを修正

レプリケーション用ユーザーの作成

ユーザー名は何でも良いのですが、今回は「replicationuser」というユーザーでパスワードを「pass1234」と設定します。

pg_hba.confを編集しアクセス設定を行う

ちなみに「host replication replicationuser」ではなく「host all replicationuser」にしたら、後述のpg_basebackupでpg_hba.confのエラーが出てしまいました。

設定を反映

スレーブのレプリケーション初期設定

pg_basebackupによるデータコピー

PosgreSQLを停止し、レプリケーションするためにpg_basebackupというコマンドを使用して、マスターのdata領域を持ってきます。

recovery.confの設定

PostgreSQLを起動

動作確認

マスター側でtest1というデータベースを作成し、スレーブに反映されるか確認してみます。

マスター側でデータベース作成

test1というデータベースが作成されました。

スレーブ側で反映を確認

スレーブ側でも無事test1というデータベースが作成されていることが確認できました。

ちなみにスレーブは参照専用なので、例えばスレーブ側でtest1データベースを削除しようとしてもリードオンリーだというエラーが出て削除できません。

まとめ

というわけで、無事レプリケーション環境構築ができました。実際にちゃんと動作すると嬉しいですね。

次回は「第3回 レプリケーション構成によるパフォーマンス比較」です。

今回設定したレプリケーションがレプリケーション構成別にどのようなパフォーマンスを発揮するのかを比較したいと思います。お楽しみに!