使用pgpool-II架設PostgreSQL Cluster
環境:
OS. WindowsXP+(VirtualBox+ubuntu9.10)*2
ubuntu 以下簡稱ubt 在VirtualBox中建立兩個ubt系統,這裡是有安裝XWindow,分別是
ubt1:192.168.56.101(PostgreSQL+pgpool-II)
ubt2:192.168.56.102(PostgreSQL)
在ubt1、ubt2使用Synaptic安裝PostgreSQL
UI依賴者請順便安裝pgAdmin
安裝好PostgreSQL後為方便操作我們修改一下postgres的密碼,作法如下
sudo su postgres -c psql template1 [Enter]
ALTER USER postgres WITH password '密碼'; [Enter]
\q [Enter]
如此修改後我們即可依此帳號使用pgAmin登入PostgreSQL
登入資料庫後,我們要在兩台資料庫上建立相同的一組帳號密碼(記住一定要相同)
在這裏我們將新帳號設為clusterman
接下來要更改pg_hba.conf的設定(ubt1,ubt2皆要改)
sudo nano /etc/postgresql/8.4/main/pg_hba.conf
在# IPv4 local connections:下面新增一行
host all all 0.0.0.0/0 trust
ok,接下來修改postgresql.conf,一樣是打
sudo nano /etc/postgresql/8.4/main/postgresql.conf
找到Listen_addresses = 'localhost' 改成 Listen_addresses = '*'
到此個別的postgresql設定完成
接下來在ubt1使用Synaptic安裝pgpool-II
安裝完成後,修改/etc/pgpool.conf
修改內容如下(註解掉的是原來的值)
#listen_addresses = 'localhost'
listen_addresses = '*'
replication_mode = true
load_balance_mode = true
#backend_hostname0 = 'host1'
backend_hostname0 = '192.168.56.101'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/data'
#backend_hostname1 = 'host2'
backend_hostname1 = '192.168.56.102'
backend_port1 = 5432
backend_weight1 = 1
#backend_data_directory1 = '/data1'
backend_data_directory1 = '/data'
另外在#Port number for pgpool
port = 9999 <---這裡是說要連到pgpool-II的port number
設定 pcp.conf (ubt1 上)
pcp.conf 是藉由網路介面管理pgpool-II的PCP 命令所需使用的認證設定檔,我們設定使用者為 postgres並配上md5加密過的密碼。
使用Synaptic安裝pgpool-II會將pcp.conf安裝在/etc /pcp.conf
另外md5加密程式是安裝在/usr /sbin/pg_md5
先取得密碼的md5加密
/usr/sbin/pg_md5 ****** <-- 你的密碼
會得到一組32個字的碼,像這樣0fa5bb73db9212183f87c0064035c83e
將他copy起來
使用nano打開 pcp.conf
在#USERID:MD5PASSWD下面加入
postgres:0fa5bb73db9212183f87c0064035c83e
存檔後即可
以上設定好之後將ubt1,ubt重新開機
好了,準備看一下成果吧
開始前請較時
ntpdate tick.stdtime.gov.tw
關閉防火牆
service iptables stop
啟動pgpool-II
sudo service pgpool2 start
檢查 pgpool 是否有啟動
netstat -tan | grep 9999
會顯示
tcp 0 0.0.0.0:9999 0.0.0.0:* LISTEN <-- 這樣就有啟動拉~~
如果要停止或重新啟動可下
sudo service pgpool2 stop/restart
好啦,試試看建立一個資料庫看看
createdb -p 9999 -U clusterman mydb <--clusterman是我們剛剛建立的
看看ubt1、ubt2有沒有同時出現mydb這個資料庫,有!就成功囉。
OS. WindowsXP+(VirtualBox+ubuntu9.10)*2
ubuntu 以下簡稱ubt 在VirtualBox中建立兩個ubt系統,這裡是有安裝XWindow,分別是
ubt1:192.168.56.101(PostgreSQL+pgpool-II)
ubt2:192.168.56.102(PostgreSQL)
在ubt1、ubt2使用Synaptic安裝PostgreSQL
UI依賴者請順便安裝pgAdmin
安裝好PostgreSQL後為方便操作我們修改一下postgres的密碼,作法如下
sudo su postgres -c psql template1 [Enter]
ALTER USER postgres WITH password '密碼'; [Enter]
\q [Enter]
如此修改後我們即可依此帳號使用pgAmin登入PostgreSQL
登入資料庫後,我們要在兩台資料庫上建立相同的一組帳號密碼(記住一定要相同)
在這裏我們將新帳號設為clusterman
接下來要更改pg_hba.conf的設定(ubt1,ubt2皆要改)
sudo nano /etc/postgresql/8.4/main/pg_hba.conf
在# IPv4 local connections:下面新增一行
host all all 0.0.0.0/0 trust
ok,接下來修改postgresql.conf,一樣是打
sudo nano /etc/postgresql/8.4/main/postgresql.conf
找到Listen_addresses = 'localhost' 改成 Listen_addresses = '*'
到此個別的postgresql設定完成
接下來在ubt1使用Synaptic安裝pgpool-II
安裝完成後,修改/etc/pgpool.conf
修改內容如下(註解掉的是原來的值)
#listen_addresses = 'localhost'
listen_addresses = '*'
replication_mode = true
load_balance_mode = true
#backend_hostname0 = 'host1'
backend_hostname0 = '192.168.56.101'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/data'
#backend_hostname1 = 'host2'
backend_hostname1 = '192.168.56.102'
backend_port1 = 5432
backend_weight1 = 1
#backend_data_directory1 = '/data1'
backend_data_directory1 = '/data'
另外在#Port number for pgpool
port = 9999 <---這裡是說要連到pgpool-II的port number
設定 pcp.conf (ubt1 上)
pcp.conf 是藉由網路介面管理pgpool-II的PCP 命令所需使用的認證設定檔,我們設定使用者為 postgres並配上md5加密過的密碼。
使用Synaptic安裝pgpool-II會將pcp.conf安裝在/etc /pcp.conf
另外md5加密程式是安裝在/usr /sbin/pg_md5
先取得密碼的md5加密
/usr/sbin/pg_md5 ****** <-- 你的密碼
會得到一組32個字的碼,像這樣0fa5bb73db9212183f87c0064035c83e
將他copy起來
使用nano打開 pcp.conf
在#USERID:MD5PASSWD下面加入
postgres:0fa5bb73db9212183f87c0064035c83e
存檔後即可
以上設定好之後將ubt1,ubt重新開機
好了,準備看一下成果吧
開始前請較時
ntpdate tick.stdtime.gov.tw
關閉防火牆
service iptables stop
啟動pgpool-II
sudo service pgpool2 start
檢查 pgpool 是否有啟動
netstat -tan | grep 9999
會顯示
tcp 0 0.0.0.0:9999 0.0.0.0:* LISTEN <-- 這樣就有啟動拉~~
如果要停止或重新啟動可下
sudo service pgpool2 stop/restart
好啦,試試看建立一個資料庫看看
createdb -p 9999 -U clusterman mydb <--clusterman是我們剛剛建立的
看看ubt1、ubt2有沒有同時出現mydb這個資料庫,有!就成功囉。
留言
張貼留言