postgresql stream 模式搭建

    PostgreSQL hot standby就是實現多個PostgreSQL節點實現數據同步(其實9.0x不僅是異步)、這個同步是針對整數集羣的(包含一切的數據、 DDL,DCL都會在salve上同步)。salve在利用日誌恢復數據同時也能提供只讀的操做,這樣就能夠利用這個技術實現多臺主機數據同步和讀取操做 的負載平衡。另存還有一點跟8.x不同的地方就是此次9.0x提供的方法叫流複製(streaming repication),這是9.0x後才提供的新方法,這個方法只要事務提交後,就會把生成的日誌同步的傳送給slave數據庫上,這比先前的WAL日 志須要寫完現傳送的方法有更低的數據延遲。
postgresql-9.2.1.tar.bz2python


一、編譯安裝
c++

yum install -y gcc gcc-c++ automake autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers bison* glib* flex readline readline-devel apr apr-util apr-develrzsz sysstat e4fsprogs ntp readline-devel  openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel  flex bison
tar –jxvf postgresql-9.2.1.tar.bz2 
cd postgresql-9.2.1
./configure  --prefix=/usr/local/pgsql 
gmake world
gmake install-world

二、新建用戶,受權

sql

#建立數據庫目錄 
mkdir /data
#建立用戶 postgres ,並受權 
useradd postgres
chown postgres.postgres /data

三、配置環境變量

數據庫

#切換到 postgres 用戶
su postgres 
#爲其配置環境變量:
vim ~postgres/.bash_profile
PGLIB=/usr/local/pgsql/lib
PGDATA=/data
PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
export PGLIB PGDATA PATH MANPATH
export PGDATA=/data

四、初始化數據庫

initdb -D $PGDATA

五、Master 配置文件修改

vim

vim pg_hba.conf
host    all             all               192.168.2.4/32          trust
host    all             postgres           192.168.2.4/32          trust
vim postgres.conf
listen_addresses='*'
wal_level = 'hot_standby'
max_wal_senders = 3
wal_keep_segments = 16   # 80 GB required on pg_xlog
cp /usr/local/pgsql/share/recovery.conf.sample  /data/recovery.cone
vim reconver.conf
standby_mode = on
primary_conninfo = 'host=master port=5433 user=postgres'  #從節點信息


六、生成備庫實例

bash

[postgres@localhost data]$pg_ctl –D $PGDATA -p 5432

傳送數據文件到slave

在備庫執行

curl

[postgres@localhost data]$pg_basebackup -D $PGDATA -Fp -Xs -v  -h master -p 5432 -U postgres

七、Slave 配置文件修改


[postgres@localhost data]$ vim postgresql.conf

注意刪除 "#"
異步

hot_standby = on   
vim reconver.conf
standby_mode = on
primary_conninfo = 'host=master port=5432 user=postgres'  #主節點信息

八、啓動主從數據庫

pg_ctl –D $PGDATA

master

ide

[postgres@localhost data]$ ps -ef |grep postgres |grep sender
postgres 12021 10924  0 14:37 ?        00:00:00 postgres: wal sender process postgres 172.16.0.132(33427) streaming 0/3036838

slave
post

[postgres@localhost data]$ ps -ef |grep postgres |grep recover                   
postgres  5479  5471  0 17:24 ?        00:00:00 postgres: startup process   recovering 00000002000000000000000D

注意:這個時候slave從master同步數據,可是slave 是隻讀的。

相關文章
相關標籤/搜索