服务器: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.129 | ubuntu18/postgresql10 |
从数据库 | 192.168.241.133 | ubuntu18/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.主机新建数据库和表,查看从库是否主动复制
通过上面的图片可以看到数据库已经同步