微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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的环境. 可以大大降低网络带宽的开销。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐