pgpool-IIの簡単セットアップ機能を試してみよう(1)
はじめに
SRA OSS, Inc. 日本支社 石井 達夫
pgpool-IIは複数のPostgreSQLを使ったクラスタシステムを構築できるミドルウェアです。そこでpgpool-IIを実際の業務システムで動かすためには、通常、マシンを複数用意したり、それぞれにPostgreSQLをインストールすることが必要になります。それだけでなく、pgpool-II自体の設定ファイルや、フェイルオーバやオンラインリカバリのためのスクリプトも設定してあげないといけません。これらは結構敷居が高い要求で、「pgpool-IIがなんとなく良さそうなので試してみたい」と思ってもいる人も簡単には手が出せない原因となっていました。
pgpool_setupとは
そこで今回ご紹介するのが、pgpool-II 3.3から同梱されるようになった「pgpool_setup」というツールです。pgpool_setupはコマンドラインから起動するシェルスクリプトで、テスト環境を1台のマシンの中に構築します。もちろんこうして作られた環境を実際の業務システムで利用することはおすすめできません。しかし、テストや自学自習のために使うのであれば、十分利用価値があります。
このスクリプトを実行すると、カレントディレクトリの下にpgpool-IIを動かすのに必要な以下のものを一気に作成します。
- 複数のPostgreSQLのデータベースクラスタとその設定ファイル(ストリーミング・レプリケーションの設定も含む)
- pgpool-IIの設定ファイル
- pgpool-II用の各種スクリプトファイル(フェイルオーバ、オンラインリカバリなど)
- 組み上げた環境全体を起動、停止するためのスクリプト
つまり、pgpool_setupを使うと、コマンド一発で1台のマシンの中に完結したpgpool-IIのクラスタ環境が構築できるのです。また、pgpool-IIやPostgreSQLが使用するポート番号はデフォルトの9999や5432とは違うものが設定されるので、もしお使いのマシンにすでにPostgreSQLやpgpool-IIがインストールされていてもそれらに影響を与える心配はありません。さらに、複数の環境を作成して、同時に動かすこともできます。
pgpool_setupを使う前提条件
pgpool_setupを使うためには、いくつか前提条件があります。まず、PostgreSQL 9.1以降がインストール済みであり、initdb, pg_ctl, psqlなどのPostgreSQLのコマンドがコマンドサーチパスに入っていなければなりません。もちろんpgpool-II 3.3.1以降がインストールされていることも必要です(pgpool-II 3.3.0はバグがあり、pgpool_setupが正しく動作しないので、3.3.1以降をお使い下さい)。その他、自分自身にsshでパスワード無しでログインできるようになっている必要があります。
pgpool_setupの導入
pgpool_setupの導入は簡単です。pgpool_setupは単なるシェルスクリプトで、pgpool-II 3.3.1以降のpgpool-IIのソース中に同梱されています。pgpool-IIのソースコード www.pgpool.net からダウンロード後、展開して適当なところにコピーします。ついでにpgpool-II 3.3.1もここでインストールしてしまいましょう。
$ tar xfz /tmp/pgpool-II-3.3.1.tar.gz $ cd pgpool-II-3.3.1 $ ./configure $ make $ sudo make install $ sudo cp test/pgpool_setup /usr/local/bin