2009年05月20日
「Wakame」で「PostgreSQL」を使えるようにしたい
WakameでPostgreSQLを使えるなら使ってみたい
Wakameに興味を持って下さった方々から、
こう言った声を少なからずとも、いや、意外と多く聞く様になった。
だったら、PostgreSQLもどうにかしよう。
個人的には久しぶりにPostgreSQLに触れる機会となった。
PostgreSQLでレプリケーション構成を構築するには「pgpool-II」を使うと良いらしいよ
噂の真相を突き止めるべく、検証してみる事にした。
作業記録
作業環境
| ディストリビューション | Debian GNU/Linux 5.0.1 |
| カーネル | 2.6.18-6-xen-amd64 |
| postgresql | 8.3.7-0lenny1 |
| pgpool2 | 1.3-2 |
PostgreSQLをインストール
$ sudo apt-get install postgresql
PostgreSQLアカウント作成
$ sudo -u postgres createuser -P axsh Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) y
psqlでpostgresに接続テスト
$ psql -d postgres
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=# \q
pgpool-IIをインストール
$ sudo apt-get install pgpool2
pgpool-IIにノードを追加
$ cd /etc; pwd /etc $ sudo cp -pi pgpool.conf pgpool.conf.0 $ sudo vi pgpool.conf $ diff pgpool.conf.0 pgpool.conf 149a150,153 > backend_hostname0 = '127.0.0.1' > backend_port0 = 5432 > backend_weight0 = 1 >
pgpool-IIを再起動
$ sudo /etc/init.d/pgpool2 restart
pgpool-IIへ接続テスト
$ psql -d postgres -p 5433
Password:
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=# \q
繋がった
LISTENポートを調べてみる
$ sudo netstat -nap |grep -w LISTEN tcp 0 0 0.0.0.0:9898 0.0.0.0:* LISTEN 8378/pgpool tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1069/sshd tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 7613/postgres tcp 0 0 127.0.0.1:5433 0.0.0.0:* LISTEN 8378/pgpool tcp6 0 0 :::22 :::* LISTEN 1069/sshd
| ポート番号 | 内容 |
|---|---|
| 5432 | postgres |
| 5433 | pgpool |
| 9898 | pgpool communication manager |
なるほど
面白機能は pgpool-II 2.1からだった…
pgpool-IIには、1.x系と2.x系が存在していた。
しかも、使いたくなるような機能は2.1から実装されている事が判明。
▼pgpool-IIによるレプリケーションとオンラインリカバリの「pgpoolの歴史」より
| プロダクト | バージョン | リリース時期 | 主な追加機能 |
|---|---|---|---|
| pgpool | ver1 | 2004.4 | コネクションプール機能、(2台による)同期レプリケーション機能 |
| pgpool | ver2 | 2004.6 | 負荷分散機能 |
| pgpool-II | ver1 | 2006.9 | パラレルクエリー、2台以上の同期レプリケーション機能 |
| pgpool-II | ver2 | 2007.11 | オンラインリカバリ |
ノードを新規追加するにはオンラインリカバリが重宝するはずだ。
オンラインリカバリの検証もまた必要となる。
Debianパッケージが古い
Debianパッケージだと、pgpool-IIの1.3が最新となっている。
$ dpkg -l pgpool2 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii pgpool2 1.3-2 connection pool server and replication proxy
2007.11にリリースされたのに、Debianにしてはパッケージが古いね。
sidにしてみたらどうなるのか気になったので調べてみても、やはり1.3だ。
→http://packages.debian.org/sid/pgpool2
よって、ソースパッケージからインストールするしかない…訳だ。
今後の予定
- pgpool-II 2.1のインストール
- オンラインリカバリ検証
- 作ったスクリプトがあればそのスクリプト
ゴールはWakameに乗せる事。
ワクワクして来たぞ。
PostgreSQL徹底入門 第2版
posted with amazlet at 09.05.20
浅羽 義之 石田 朗雄 稲葉 香理 永安 悟史
翔泳社
売り上げランキング: 71946
翔泳社
売り上げランキング: 71946
トラックバックURL
この記事へのトラックバック
1. [Wakame] PostgreSQLもスケール対象へ (2/n) [ 半袖野郎 blog.hansode.org ] 2009年05月20日 20:05
[Wakame] PostgreSQLもスケール対象へ (1/n) の続編
前回の予告通り、今回はpgpool-II 2.1以降をインストールする。
http://pgfoundry.org/projects/pgpoolを確認すると、2009/05/20現在「2.2.2」が最新版。
今回はpgpool-II 2.2.2をインストールする。
...
この記事へのコメント
1. Posted by os14 2009年05月22日 00:33
二年前くらいに使いました。
レプリケーションとかはうまくいきましたが、
結局オンラインリカバリがあまりうまくいかなくてそこはあきらめましたw
レプリケーションとかはうまくいきましたが、
結局オンラインリカバリがあまりうまくいかなくてそこはあきらめましたw
