前端之家收集整理的这篇文章主要介绍了
postgresql 9.3.1数据库流复制,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
postgresql 9.3.1数据库流复制
主库创建流复制用户
CREATE USER repuser replication LOGIN CONNECTION LIMIT 5 ENCRYPTED PASSWORD '123456';
在主库设置过滤,允许备库的相关的访问
pg_hba.conf
host replication repuser 10.211.55.4/32 md5
修改主库的参数支持流复制
vi postgresql.conf
log_connections = on
说明:"log_connections" 参数用来记录数据库连接信息,打开这个开关,从而在接下来的CSV日志中能更好的观察Master库和 Standby 库情况。
max_wal_senders = 2 --WAL STREAM 日志发送进程数
wal_level = hot_standby --主库设置成 hot_standby ,从库才能以READ-ONLY模式打开
说明,关键参数"max_wal_senders" 是指 wal 发送进程数,我这里只有一台从库,所以设置为1,如果有多台
从库,则应该设置成从库个数,因为在Master库上,每台从库需要一个 WAL日志发送进程向从库发送WAL日志流。
一方面是这一参数官网的介绍。
max_wal_senders (integer)
Specifies the maximum number of concurrent connections from standby servers (i.e.,the maximum number
of simultaneously running WAL sender processes). The default is zero. This parameter can only be set
at server start. wal_level must be set to archive or hot_standby to allow connections from standby servers.
开始备份
select pg_start_backup('Replition work');
tar czvf pgsql.tar.gz /opt/Postgresql/9.5/data
select pg_stop_backup(),current_timestamp;
需要注意的是,进行备份的过程中,我们一定不能够断开连接
下面我们在备库进行设置
vi postgresql.conf
hot_standby = on
cd share/
cp recovery.conf.sample ../data/
cp recovery.conf.sample recovery.conf
vi recovery.conf
standby_mode = on
primary_conninfo ='host=10.211.55.3 port=5432 user=repuser password=123456'
recovery_target_timeline = 'latest'
trigger_file = '/usr/local/pgsql/archive/postgresql.trigger'
rm -rf postmaster.pid
rm -rf pg_xlog/*
启动备库
cd postgresql-9.3.1
cd contrib/
cd start-scripts/
cp linux /etc/init.d/postgresql
service postgresql start
测试主备库流复制是否ok
create user test1 superuser password 'test1';
查看备库的状态
postgres=# show transaction_read_only;
transaction_read_only
-----------------------
on
(1 row)
原文链接:https://www.f2er.com/postgresql/194659.html