准备两台服务器
主机名IPhostname端口master192.168.50.100master5432slave192.168.50.101slave5432在主、备服务器上都设置
[root@master ~]# cat /etc/hosts 127.0.0.1 localhost 192.168.50.100 master 192.168.50.101 slave上面已经介绍了如何初始化,这里不在讲解
创建用户用户复制WAL日志,在psql下创建!!!
CREATE USER repuser replication LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD '123456';在最后一行加上下面内容
host replication repuser slave md5在slave端的postgres用户下执行:
pg_basebackup -h master -U repuser -D /var/lib/pgsql/10/data/ -X stream -P # 此处会让你输入在master上配置的那个同步WAL日志的账号的密码也就是123456上面这条命令的意思是把master节点中PG data目录下的文件及文件夹全部拷贝到slave的data目录下面,此处可能涉及到Linux用户权限,使用
chown postgres.postgres -R data应该可以把data目录的组及用户改为postgres
master节点:
cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.done # 注意!!! 上面复制的文件名后缀就是 .done,没有写错 vi /var/lib/pgsql/11/data/recovery.done # 内容在下面: recovery_target_timeline = 'latest' standby_mode = on primary_conninfo = 'host=slave port=5432 user=repuser password=123456'slave节点:
cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.conf vi /var/lib/pgsql/11/data/recovery.conf #编辑内容如下 recovery_target_timeline = 'latest' standby_mode = on primary_conninfo = 'host=master port=5432 user=repuser password=123456'主库 查看主库的WAL日志发送进程是否正常
从库 查看从库WAL日志接收进程是否正常
使用navicate连接两个数据库,在主库中新建数据库及表,并添加数据。可以在从库中查看到相应新增的数据库及表和数据。