postgresql主从复制是一种高可用解决方案,可以实现读写分离。postgresql主从复制是基于xlog来实现的,主库开启日志功能,从库根据主库xlog来完成数据的同步。
主从复需要注意的地方:
- 启动从库之前,不能执行初始化。
- 启动从库之前,需要通过base_backup从主服务器上同步配置与数据。
- 启动从库之前,需要对同步之后的配置文件进行修改。
- 启动从库之前,需要设置一个恢复的配置文件。
- 从库只能读,不能写。
下面介绍主从复制的实现,这里以两台虚拟机为例,主节点IP是192.168.56.201,从节点IP是192.168.56.202,这里两台机器都是通过源码编译安装的方式安装的postgresql,版本是11.4。编译安装指定的前缀是/usr/local,因此安装完成,可执行程序会在/usr/local/bin目录下。
首先需要在主库上初始化数据库,并启动数据库服务。
启动的时候,不能以root用户来启动。
编译安装不会创建postgres用户,因此我们需要先创建postgres用户和用户组。 我们会将postgresql数据存储路径设置在/home/postgres/data下。
groupadd postgres
useradd -g postgres postgres