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

相关文章

文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,...
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb...
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才...
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation...
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgr...
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解...