PostgreSQL叢集方案hot standby 安裝和測試

來源:互聯網
上載者:User

這兩天正忙著研究postgresql,基本用法和其他資料庫大同小異,先不自己講解,今天主要想記錄下postgresql的叢集方案hot standby方式。 

本人設定叢集環境:

三台電腦:一台主要資料庫和兩台從資料庫

1.      安裝Postgresql9

tar -zxvf postgresql-9.1.3.tar.gz    #解壓

cd postgresql-9.1.3

./configure --prefix /home/proxy_pg/pgsql  #配置postgresql安裝目錄

這裡需要安裝基礎的庫(gcc、readline、zlib、) #可以不必理會,make時會提示

make                         #編譯

make install                    #安裝
 

2.      添加postgres賬戶

useradd postgres                   #添加賬戶

passwd postgres                    #之後輸入密碼

#之後進入postgres使用者

su postgres
 

3.      初始化主要資料庫

mkdir data                        #在你想要存放資料的地方建立data檔案夾

bin/initdb –D ../data/               #初始化資料庫

修改data/postgresql.conf

port = 5433                        #可以任意更改你想要的

wal_level = hot_standby

max_wal_senders = 30

修改data/pg_hba.conf

host    replication     all             0.0.0.0 0.0.0.0         trust
 

4.      啟動主要資料庫

bin/pg_ctl start -D ../data/
 

5.      檢測資料庫是否啟動成功

./psql -d postgres

psql (9.1.3)

Type "help" for help.

 

postgres=#                           #說明啟動成功了
 

6.      基礎備份

基本流程:在主要資料庫伺服器上執行pg_start_backup(),複製data目錄,在執行pg_stop_backup()。

 

./psql –d postgres

postgres=# select pg_start_backup(‘’);

#這姓這個方法後,所有請求在寫日誌之後不會再重新整理到磁碟。直到執行pg_stop_backup()這個函數。

#下面需要拷貝一份data目錄,並通過scp複製到子資料庫中

cp –R data /data_bac
 

7.      建立從資料庫(standby)

#通過scp方式拷貝data_bac目錄到從資料庫下(當然也可以通過其他方式)

scp -r data_bac/ postgres@192.168.30.199:/home/proxy_pg/pgsql/

#進入從資料庫伺服器,進入剛剛拷貝過來的data_bac目錄下

cd data_bac

#修改postgres.conf

port = 5433 #改成你想的連接埠

hot_standby = on

#增加recovery.conf配置下串連的主要資料庫資訊(ip、連接埠、使用者)

standby_mode = 'on'

primary_conninfo = 'host=192.168.30.150 port=5433 user=postgres'

 

#刪除pid檔案

rm postmaster.pid
 

8.      啟動從資料庫

bin/pg_ctl start -D ../data_bac/
 

9.      停止主要資料庫基礎備份

postgres=# select pg_stop_backup();

這裡要注意的是:8和9步可以顛倒,因為先停止備份後,當從資料庫啟動會,會自動連接主要資料庫,拉取伺服器自基礎備份後的交易記錄,然後,對事物日誌進行重演。
 

10.  測試

#為了方便查看資料庫,我安裝了pgAdminII

當在主要資料庫中建立一張表並插入三條資料後,觀察從資料庫:


#建立資料庫lengzijian

./createdb lengzijian -p 5433      #主從庫全部都會建立lengzijian資料庫

#接下來可以建立表,並且插入欄位。這裡就不示範了。
 

11.  總結

這裡只是做了初步的叢集安裝,postgresql的叢集方案還有好多種,本人會示範所有方案,之後會對每一種方案進行檢測,如果你有做好的實驗或者方案,不放分享給我。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.