ストリーミング・レプリケーションの紹介
PostgreSQL 9.1 のインストール
イメージをつかむために、まずは1台のホスト上にプライマリノードとスタンバイノードの両方を作成して動かしてみようと思います。
今回は、OSには Linux を使用します。Linux ディストリビューションとしては、Red Hat Enterprise Linux 6.0 の互換ディストリビューションである Scientific Linux 6.0 を使います。Scientific Linux 6.0 の標準の PostgreSQL パッケージのバージョンは 8.4 であるため、かわりに、コミュニティによってビルドされたバージョン 9.1 のバイナリパッケージを使用します。
今回はストリーミング・レプリケーションに焦点を当てますので、直接には関係しない SELinux と iptables を無効にしておきます。実運用で用いる場合には、これらも適切に設定することになるかと思われます。
[root@node1 ~]# getenforce Disabled [root@node1 ~]# chkconfig iptables off [root@node1 ~]# service iptables stop iptables: ファイアウォールルールを消去中: [ OK ] iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ] iptables: モジュールを取り外し中: [ OK ] [root@node1 ~]#
続いて、yum コマンドを用いてパッケージをインストールします。PostgreSQL の公式サイトでも触れられているように、コミュニティベースの yum レポジトリがありますので、まずは対象ディストリビューションと PostgreSQL のバージョンに合ったレポジトリ設定ファイルをインストールします。
※このレポジトリからは、クエリ負荷分散を行う PgPool-II や、柔軟なステートメントベースでのレプリケーションツールである Slony-I、GUI クライアントの pgAdmin-III、強力な地理情報システム拡張である PostGIS などの有用なパッケージも容易に導入することができます。
まずはこのサイトを確認して、使用する OS 環境と使用したい PostgreSQL のバージョンから、適切な yum レポジトリ設定をインストールします。
[root@node1 ~]# rpm -Uvh http://www.pgrpms.org/reporpms/9.1/pgdg-sl91-9.1-6.noarch.rpm (中略) 1:pgdg-sl91 ########################################### [100%] [root@node1 ~]#
もしすでに標準の PostgreSQL 8.4 がインストールされているようであれば、アンインストールをしておきます。
[root@node1 ~]# rpm -e postgresql-server [root@node1 ~]# rpm -e postgresql
PGDG のレポジトリから、PostgreSQL 9.1 のクライアントとサーバのパッケージをインストールします。
[root@node1 ~]# yum install postgresql91 postgresql91-server (中略) Installed: postgresql91.x86_64 0:9.1.1-1PGDG.rhel6 postgresql91-server.x86_64 0:9.1.1-1PGDG.rhel6 Dependency Installed: postgresql91-libs.x86_64 0:9.1.1-1PGDG.rhel6 Complete! [root@node1 ~]#
これらのパッケージはシステムデフォルトのサービスを起動するようになっていますが、今回はそれらを利用せず、手作業や keepalived サーバ経由で起動をするので、オフにしておきます。
[root@node1 ~]# chkconfig postgresql-9.1 off [root@node1 ~]# service postgresql-9.1 stop
以上で、パッケージの準備は終了です。念のため、yum のレポジトリファイルをアンインストールしておきます。
[root@node1 ~]# rpm -e pgdg-sl91 [root@node1 ~]#