postgresql 9流复制配置

本文介绍了PostgreSQL主备流复制环境的搭建与测试。先说明了环境,给出安装参考,主库需创建复制角色、配置相关文件并重启服务,备库创建目录、搭建主备流复制环境、修改配置后启动服务,最后通过主库建表插入数据,备库查看数据传输情况进行测试。

环境说明

示例环境

主机名

IP

角色

系统版本

数据目录

pg版本

master

192.168.174.200

主库

CentOS Linux release 7.4.1708 (Core)

 

/var/lib/pgsql/data

9.2.23

slave1

192.168.129.201

备库

CentOS Linux release 7.4.1708 (Core)

/var/lib/pgsql/data

9.2.23

postgresql安装

请参照:Linux安装postgresql及基础操作

备库不需要执行:service postgresql initdb、service postgresql start

如已经执行请删除对应目录

rm -rf /var/lib/pgsql

mkdir -p /var/lib/pgsql/{data,xlog_archive}  
chown -R postgres:postgres /var/lib/pgsql/  
chmod 0700 /var/lib/pgsql/data

主库配置(192.168.174.200)

创建复制角色

#启动数据库
service postgresql start
#切换用户 
su - postgres
#登入数据库
psql -U postgres
#创建replicator用户
create role replicator with login replication password '123456';
#将用户postgres的密码修改为postgres
alter user postgres with password 'postgres';
#退出
\q

配置pg_hba.conf

vi /var/lib/pgsql/data/pg_hba.conf

# IPv4 local connections:
host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host     replication     all             0.0.0.0/0               trust

配置postgresql.conf

mkdir /var/lib/pgsql/xlog_archive
chmod 0700 /var/lib/pgsql/xlog_archive
vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
wal_level = hot_standby
synchronous_commit = on
archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/xlog_archive/%f'
max_wal_senders=5
wal_keep_segments = 32
hot_standby = on
restart_after_crash = off
replication_timeout = 5000
wal_receiver_status_interval = 2
max_standby_streaming_delay = -1
max_standby_archive_delay = -1
synchronous_commit = on
restart_after_crash = off
hot_standby_feedback = on

重启服务

service postgresql restart

备库配置(192.168.174.201)

创建目录

mkdir -p /var/lib/pgsql/{data,xlog_archive}  
chown -R postgres:postgres /var/lib/pgsql/  
chmod 0700 /var/lib/pgsql/data

pg_basebackup搭建主备流复制环境

su - postgres
pg_basebackup -h 192.168.174.200 -U postgres -D /var/lib/pgsql/data/ -X stream -P

修改recovery.conf配置

vim /var/lib/pgsql/data/recovery.conf

standby_mode = 'on'  
primary_conninfo = 'host=192.168.174.200 port=5432 user=replicator application_name=myapp-1 password=123456 keepalives_idle=60 keepalives_interval=5 keepalives_count=5'  
restore_command = 'cp /var/lib/pgsql/xlog_archive/%f %p'  
recovery_target_timeline = 'latest'

启动服务

su - postgres
pg_ctl -D /var/lib/pgsql/data/ start

测试

1、主库建表插入数据

 create table test (id integer);

insert into test values (1);

select * from test;

2、备库查看数据是否传输。

postgres=# select * from test;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值