PostgreSQL 9.6 主从复制

规划:
Master	:172.31.2.24
node1	:172.31.2.25

1.两部更改配置
	vim /etc/postgresql/9.6/main/pg_hba.conf
	在文件末尾添加或者找到该行,将peer改为trust
	local         all           all        trust

2.两个重启数据库
	service postgresql restart

3.配置主服务器,切换成postgres用户,进入数据库,创建一个普通的数据库用户用户进行主从同步(只需赋予登录和复制的权限即可)
	 su postgres
	 psql
	 create role jesse login replication encrypted password '123456';

4.在exit退出到原用户,然后,修改postgresql的pg_hba.conf,配置运行刚刚创建的jesse用户可以进行连接
	vim /etc/postgresql/9.6/main/pg_hba.conf
	在文件尾添加如下两行
	host   all all  118.190.154.172/24   trust   
 	host   replication  jesse    118.190.154.172/24   md5   #运行guoxm用户在151上复制本机数据

5.在配置postgresql.conf
	vim /etc/postgresql/9.6/main/postgresql.conf
	这次需要配置的是主机的角色

	listen_addresses = '*'   #监听所有ip
	 
	archive_mode = on   #开启归档模式
	 
	archive_command = 'cp %p /var/lib/postgresql/9.6/main/%f'   #归档命令
	 
	wal_level = hot_standby    #热备模式
	 
	max_wal_senders = 1   #最多有1个流复制连接
	 
	wal_sender_timeout = 60s    #流复制超时时间
	 
	max_connections = 100   #最大连接时间,必须要小于从库的配置
	  

	保存退出后,重启数据库服务

	sudo service postgresql restart

6.配置从服务器
	首先,先测试一下是否能连接主服务器

	psql -h 172.31.2.24  -U  postgres
	执行记录:
	root@localhost:~# psql -h 172.31.2.24 -U postgres
	psql (9.6.13)
	SSL 连接(协议:TLSv1.2,密码:ECDHE-RSA-AES256-GCM-SHA384,密钥位:256,压缩:关闭)
	输入 "help" 来获取帮助信息.

	如果可以,说明主机配置正常,否则检查一下主机的pg_hba.conf配置

	进入到postgres用户

	sudo su - postgres

	先清空main目录下的数据(main文件夹就是PostgreSQL数据的存储文件夹)

	rm -rf /var/lib/postgresql/9.6/main/*

7.基础数据备份
	然后,开始从主服务器上copy数据到本机上,这一步叫做“基础备份”

	pg_basebackup -h 118.190.151.117 -U guoxm –D /var/lib/postgresql/9.6/main/ -X stream –P  (注:测试没成功)

	或者

	pg_basebackup -F p --progress -D /var/lib/postgresql/9.6/main/ -h 172.31.2.24 -p 5432 -U jesse --password	(注:测试成功)

8.修改recovery.conf用于从库恢复从主库获取的数据
	cp /usr/share/postgresql/9.6/recovery.conf.sample /var/lib/postgresql/9.6/main/recovery.conf

	然后编辑如下配置

	standby_mode = on   #表示该节点是从库
	 
	primary_conninfo = 'host=172.31.2.24  port=5432  user=jesse  password=123456'#从机信息和连接用户
	 
	recovery_target_timeline = 'latest' #说明恢复到最新状态

	cp /usr/share/postgresql/9.6/recovery.conf.sample /var/lib/postgresql/9.6/main/recovery.conf

9.编辑/etc/postgresql/9.6/main/postgresql.conf
	在文件末尾添加如下配置

	wal_level = hot_standby    #热备模式
	 
	max_connections = 300   #最大连接时间,必须要小于从库的配置
	 
	hot_standby = on #说明这台机器不仅用于数据归档,还可以用于数据查询
	 
	max_standby_streaming_delay = 30s #流备份的最大延迟时间
	 
	wal_receiver_status_interval = 10s  #向主机汇报本机状态的间隔时间
	 
	hot_standby_feedback = on #r出现错误复制,向主机反馈

10.重启从库
执行如下查询

select client_addr,sync_state from pg_stat_replication;

如果看到如下查询结果


说明192.168.100.70是从服务器,在接收流,而且是异步流复制。说明主从配置成功

注:必须切换到postgres用户下进行查询


参考
https://www.cnblogs.com/guoximing/p/9429009.html
https://www.cnblogs.com/zhangeamon/p/5465501.html
https://blog.csdn.net/qq_42189083/article/details/82627372

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值