postgresql主从复制

服务器:ubuntu 18
postgresql版本:10
postgresql中文文档:http://www.postgres.cn/docs/11/history.html

安装postgresql数据库

安装见上一篇:
《ubuntu 安装postgresql(附源码安装)》
使用yun安装模式
配置文件地址: /etc/postgresql/10/main
数据源地址(data):/var/lib/postgresql/10/main

角色地址版本
主数据库192.168.241.129ubuntu18/postgresql10
从数据库192.168.241.133ubuntu18/postgresql10

主机配置

1.postgresql创建复制数据账号

create role admin login replication encrypted password ‘123456’;
在这里插入图片描述

2.修改配置文件pg_hba.conf,允许admin用户来同步

vim /etc/postgresql/10/main/pg_hba.conf
在这里插入图片描述

3.修改配置文件postgresql.conf

vim /etc/postgresql/10/main/postgresql.conf

listen_addresses = '*'   #监听所有ip 这里可能安装的时候已经配置,注意不要重复配置
archive_mode = on   #开启归档模式
archive_command = 'cp %p /var/lib/postgresql/10/main/%f'   #归档命令
wal_level = hot_standby    #热备模式
max_wal_senders = 10   #最多有10个流复制连接
wal_sender_timeout = 60s    #流复制超时时间

在这里插入图片描述

4.重启主机服务

启动:service postgresql start
查看启动状态:ps -ef|grep postgresql
重启失败则查看日志信息,解决错误
查看日志:tail -f /var/log/postgresql/postgresql-10-main.log
在这里插入图片描述

5.使用从机链接主机确保能通

psql -h 192.168.241.129 -U postgres

在这里插入图片描述

从机配置

1.删除原来的数据库数据源

地址:这个是云安装地址
/var/lib/postgresql/10/
执行删除操作:rm -rf main/* # 不要进入main目录
在这里插入图片描述

2.备份主数据库数据到从库

#                  主数据库地址               备份账号         数据存储地址(就是上面清空的地址)           
pg_basebackup -h 192.168.241.129 -p 5432 -U admin -F p -P -D /var/lib/postgresql/10/main 

在这里插入图片描述

3.修改配置文件postgresql.conf

vim /etc/postgresql/10/main/postgresql.conf

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

在这里插入图片描述

3.进入main目录,修改recovery.conf文件

vim recovery.conf # 其实main下面是没有这个文件的,直接编辑保存就行了

standby_mode = on    # 说明该节点是从服务器
primary_conninfo = 'host=192.168.241.129 port=5432 user=admin password=123456'  # 主服务器的信息以及连接的用户
recovery_target_timeline = 'latest'

在这里插入图片描述

4.重启从机服务

启动:service postgresql start
查看启动状态:ps -ef|grep postgresql
重启失败则查看日志信息,解决错误
查看日志:tail -f /var/log/postgresql/postgresql-10-main.log
这里的错误情况可能会比较多,大多是文件的权限问题。由于main下面的文件都是从主库复制来的,所以没有对应操作权限,需要手动加上。我是直接简单粗暴 chmod -R 777 main(将main下的所有文件都变成最高权限),此时运行还是会报错 ,因为main目录只需要700权限,继续改吧

验证是否配置成功

1.主机新建数据库和表,查看从库是否主动复制

这是主库

在这里插入图片描述

通过上面的图片可以看到数据库已经同步

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值