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的环境. 可以大大降低网络带宽的开销。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |