曾经带入数据库这个行业的老师说,做我们这行就是需要不断地去尝试,做各种实验,然后总结经验,最近生产环境要上pg了,就想到搭个PG的异步复制玩一玩,看跟mysql有什么不同
本文主要记录下搭建hot standby环境的过程.
1、先介绍下环境
操作系统:centos6.5 postgresql数据库版本:pg-10.5
首先至少两台机器,上面分别已经装好了我们的PG数据库,然后进入我们的搭建。
我的机器环境:
主库:192.168.11.129,数据目录/data/pgdata/test/5432/pg_root
从库:192.168.11.131,数据目录/data/pgdata/test/5432/pg_root
2、建立主库(数据库的编译这里就不赘述了)
(1)先在主库建立一个复制用户:
create role repl login replication encrypted password '123456';
(2)然后修改我们的数据库认证配置文件(pg_hba.conf):
host replication repl 192.168.11.131/32 md5
(3)修改数据库配置文件:
listen_addresses = '*' wal_level = hot_standby max_wal_senders = 30
(4)重启主库服务
pg_ctl -D $PGDATA restart
(5)然后来到从库这边,先做基础备份
pg_basebackup -h 192.168.11.129 -p 5432 -U repl -F p -P -R -D $PGDATA
注:
-h,主库主机,-p,主库服务端口;
-U,复制用户;
-F,p是默认输出格式,输出数据目录和表空间相同的布局,t表示tar格式输出;
-P,同--progress,显示进度;
-D,输出到指定目录;
-R,将自动生成recovery.conf
(6)之后修改从库配置文件,
hot_standby = on #在备份的同时允许查询
(7)把从库拉起来,
pg_ctl -D $PGDATA start
3、验证主从配置
(1)查看主库sender进程
(2)查看从库receiver进程
(3)sql查询主从信息
在主库上测试下,建一张表test:
然后我们在从库查询下看
可以发现只能查询,并不能插入数据。
命令查看主从信息
主库:
从库:
到此我们的主从就搭建完成了.