Tuesday, April 28, 2009

pgpool-II install and setting(インストールと設定)

pgpool-II 2.0.1のインストール in PostgreSQL 8.3.5

PostgreSQL

# : rootユーザ

$ : postgresユーザ


■pgpool-IIのDL / 展開、postgresユーザへの権限付与

DL先 : /usr/local/src/

展開先 : /usr/local/src/pgpool-II-2.0.1/

インスト先 : /usr/local/pgpool2/

# mkdir /usr/local/pgpool2

# chown postgres.postgres -R /usr/local/pgpool2/

# cd /usr/local/src/

# wget http://pgfoundry.org/frs/download.php/1521/pgpool-II-2.0.1.tar.gz

# tar -zxvf pgpool-II-2.0.1.tar.gz

# chown postgres.postgres -R /usr/local/src/pgpool-II-2.0.1/


■pgpool-IIのインストール(実行ユーザ:postgres)

# su - postgres

$ cd /usr/local/src/pgpool-II-2.0.1/

$ ./configure --prefix=/usr/local/pgpool2

$ make

$ make install



参考

* FrontPage - pgpool Wiki(pgpool-II/tutorial - pgpool Wiki)

Permalink | コメント(0) | トラックバック(0) | 15:32 このエントリーを含むブックマーク
レプリケーション in pgpool-II 2.0.1 / PostgreSQL 8.2.5 / CentOs5CommentsAdd StarCommentsAdd StarCommentsAdd Star

PostgreSQL

# : rootユーザ

$ : postgresユーザ


■ネットワークの設定

# vi /etc/hosts

-> 192.168.xxx.xx1 ecshopping-guide1.localdomain ecshopping-guide1

-> 192.168.xxx.xx2 ecshopping-guide2.localdomain ecshopping-guide2

※TAB区切り

hostname:ecshopping-guide1の場合

# vi /etc/sysconfig/network

-> #NETWORKING_IPV6=yes

-> HOSTNAME=ecshopping-guide1.localdomain


■PostgreSQLの設定

$ vi /usr/local/pgsql/data/postgresql.conf

-> listen_addresses = '*'

-> port = 5432        # default

$ vi /usr/local/pgsql/data/pg_hba.conf

-> local all all trust

-> host all postgres 192.168.xxx.0/24 trust

※半角スペース区切り

■pgpool-IIの設定

$ cp -p /usr/local/pgpool2/etc/pgpool.conf.sample /usr/local/pgpool2/etc/pgpool.conf

$ vi /usr/local/pgpool2/etc/pgpool.conf

-> listen_addresses = '*'

-> port = 9999       # default

-> replication_mode = true

-> load_balance_mode = true

-> enable_pool_hba = false # default

-> # データベースノードの設定(hostname:ecshopping-guide1)

-> backend_hostname0 = 'ecshopping-guide1'

-> backend_port0 = 5432

-> backend_weight0 = 1

-> # データベースノードの設定(hostname:ecshopping-guide1)

-> backend_hostname1 = 'ecshopping-guide1'

-> backend_port1 = 5432

-> backend_weight1 = 1


■レプリケーションの確認(pgbenchを使用)

$ cd /usr/local/src/postgresql-8.2.5/contrib/pgbench

$ make

$ make install

$ /usr/local/pgpool2/bin/pgpool -n &

$ /usr/local/pgsql/bin/createdb -p 9999 bench_replication

$ /usr/local/pgsql/bin/pgbench -i -p 9999 bench_replication


データベースノードに設定したサーバのPostgreSQLを確認。

List of databases
Name | Owner | Encoding
-------------------+----------+----------
bench_replication | postgres | UTF8       <- が、各PostgreSQLに追加されているはず



多分、いまは構成はこんなかんじ。

 ┌─────┐ ┌─────┐  ┌───────────┐
 │client  ├─┤pgpool-II ├─┬┤PostgreSQL(ecshopping-guide1:5432)│
 └─────┘ └─────┘ │└───────────┘
                 │┌───────────┐
                 └┤PostgreSQL(ecshopping-guide2:5432)│
                  └───────────┘



# 最初、レプリケーションされなかったのはPostgreSQLにユーザ作成していなかったから…。

http://www.ecshopping-guide.com

ludia 1.5.1 and senna (search fulltext) install and configure for postgresql(ludia とsenna インストールと設定)

LudiaはSennaを使ったPostgresSQL用の組み込み型全文検索インデックスエンジンです。
ダウンロード

下記サイトからダウンロード。

http://sourceforge.jp/projects/ludia/

Mecab、MeCab辞書、Sennaが含まれているludia-withdepsのパッケージをDLします。
インストール
解凍

$tar -zxvf ludia-withdeps-1.5.1.tar.gz
$cd ludia-1.51/deps

MeCabのインストール

分かち書き方式に形態素解析を利用しない場合は、 MeCab(と辞書)をインストールする必要はありません。その場合はSennaのインストールに進んでください。 (MeCabをインストールしない場合はSennaのインストールの際に、 --without-mecabオプションを指定する必要あり)

MeCabをインストールする場合は、アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ tar -zxvf mecab-0.97.tar.gz
$ cd mecab-0.97
$ ./configure --with-charset=utf8
$ make
$ su
# make install

MeCab辞書のインストール

アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ tar -zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ su
# make install

Sennaのインストール

アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ tar -zxvf senna-1.13.tar.gz
$ cd senna-1.13
$ ./configure
$ make
$ su
# make install

MeCabをインストールしていない場合には、以下のように --without-mecab オプションの指定が必要

$ ./configure --without-mecab

Ludiaのインストール

アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ ./../../
$ ./configure
$ make
$ su
# make install

pg_configコマンド、senna-cfgコマンドのインストール先にPATHが設定されていない場合、以下のようにそれぞれのpathをconfigureオプションで指定してください。:

$ ./configure --with-pg-config=/usr/local/pgsql/bin/pg_config --with-senna-cfg=/usr/local/bin/senna-cfg

インデックスアクセスメソッドの登録

$ psql -f /usr/share/pgsql/pgsenna2.sql testdb -u

postgreSQLの設定ファイル編集

postgresql.confに下記の設定を追加

custom_variable_classes = 'ludia'
ludia.max_n_sort_result = 10000
ludia.enable_seqscan = on
ludia.seqscan_flags = 1
ludia.sen_index_flags = 31
ludia.max_n_index_cache = 16
ludia.initial_n_segments = 512

インデックスの作成

インデックス作成例:

CREATE INDEX student_fulltext_index_name
ON student
USING fulltext(studentname);

検索クエリ

SELECT * FROM student WHERE studentname %% 'もも';