您的位置:首页 > 数据库

postgresql-9.3.0级联复制搭建及简单配置

2013-10-31 16:15 447 查看
postgresql-9.3级联复制
环境
系统 debian-6.0.4
数据库:postgresql-9.3.0
master:172.16.2.151
standby1:172.16.2.152
standby2:172.16.2.159
其中master和standby1已经做过流复制,现在测试standby1和standby2之间的级联复制
################################################################################
master
vi /etc/postgresql/9.3/main/pg_hba.conf
host replication postgres 172.16.2.159/32 trust
重新加载配置文件
su postgres
postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)

vi /etc/postgresql/9.3/main/postgresql.conf
hot_standby_feedback = on ()
################################################################################
standby1的配置 :
postgresql.conf配置与master一样
recovery.conf 配置不变
################################################################################
standby2节点配置
rm /var/lib/postgresql/9.3/main/*
使用 pg_basebackup 生成备库
root@localhost:/var/lib/postgresql/9.3/main# pg_basebackup -D /var/lib/postgresql/9.3/main -Fp -Xs -v -P -h 172.16.2.152 -p 5432 -U postgres
transaction log start point: 0/6C000028 on timeline 1
pg_basebackup: starting background WAL receiver
400749/400749 kB (100%), 1/1 tablespace
transaction log end point: 0/6C0000F0
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: base backup completed

vi postgresql.conf
设置
hot_standby = on
设置standby2 recovery.conf
cp /usr/share/postgresql/9.3/recovery.conf.sample recovery.conf

修改以下参数
standby_mode = on
primary_conninfo = 'host=172.16.2.152 port=5432 user=postgres'
#trigger_file = '/var/lib/postgresql/9.3/main/'

################################################################################
启数据库服务
su postgres
/usr/lib/postgresql/9.3/bin/./pg_ctl -D /var/lib/postgresql/9.3/main start
查看standby1
postgres@localhost:~/9.3/main$ ps aux | grep wal
postgres 3907 1.3 1.0 262248 21052 ? Ss 15:59 0:11 postgres: wal receiver process streaming 1/76124368
postgres 3908 1.6 0.2 219664 4776 ? Ss 15:59 0:13 postgres: wal sender process postgres 172.16.2.159(51650) streaming 1/76124368
可以看到wal receiver 跟wal sender两个进程
至此级联复制真个环境搭建完成
################################################################################
在主库新建一个测试表看看standby3会不会复制过去,
c=# create table t3(id int,name text);
CREATE TABLE
c=# insert into t3 select t::int,t::text from generate_series(1,1000) as t;
INSERT 0 1000
################################################################################
连接到standby2测试数据已经全部过去
postgres@localhost:~$ psql -h 172.16.2.159 -p 5432 -d c
psql (9.3.0, server 9.3.1)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

c=# select count(*) from t3;
count
-------
1000
(1 row)
级联复制适合在异地建立多个STANDBY的环境. 可以大大降低网络带宽的开销。

本文出自 “postgres” 博客,请务必保留此出处http://pgdba.blog.51cto.com/5585327/1317812
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: