原数据库架构是一套一主几备的集群,现由于灾备要求,新增一个流复制备节点参与数据同步,但不受集群软件纳管
IP | 节点 |
---|---|
192.168.40.119 | 集群vip |
192.168.40.120 | 集群主节点 |
192.168.40.121 | 集群备节点 |
192.168.40.122 | 流复制备节点(计划搭建的) |
1 查看集群
repmgr cluster show
repmgr service status
2 备节点上安装数据库
参考单机安装,在备节点上安装kingbase数据库
确定安装完成没有问题,停数据库,删除data目录
sys_ctl stop -D /data/kingbase/data_replicate/
rm -rf /data/kingbase/data_replicate/*
rm -rf /data/kingbase/data_replicate/.wallet/
3 主节点上检查文件
检查sys_hba.conf文件
确认复制用户有连接和复制权限
4 构建流复制备节点
全量传输
sys_basebackup -h 192.168.40.119 -U esrep -p 54321 -D /data/kingbase/data_replicate -c fast -X stream -v -P -R
修改kingbase.auto.conf文件,删除红框里的参数
查看参数文件,根据实际情况可调整
vim /data/kingbase/data_replicate/kingbase.conf
vim /data/kingbase/data_replicate/es_rep.conf
vim /data/kingbase/data_replicate/kingbase.auto.conf
创建备库信号文件
touch /data/kingbase/data_replicate/standby.signal
启动数据库
sys_ctl start -D /data/kingbase/data_replicate/
主库查看
select * from sys_stat_replication ;
至此,流复制已构建完成
为流复制创建复制槽(可选),集群主备节点都要建
01 查看复制槽
select * from sys_replication_slots ;
01 创建复制槽
select sys_create_physical_replication_slot(‘replicate_slot’);
03 流复制备节点修改参数,并重启生效
vim /data/kingbase/data_replicate/kingbase.auto.conf
primary_slot_name = ‘replicate_slot’
sys_ctl restart -D /data/kingbase/data_replicate
04 主节点查看复制槽,已正常在用
5 集群主备发生切换,流复制节点跟随新的主节点
集群主备切换
repmgr cluster show
repmgr standby switchover
repmgr cluster show
新的集群主节点查看流复制
select * from sys_stat_replication ;
新的集群备节点重建复制槽(如果没有复制槽则没有这步)
select * from sys_replication_slots ;
select sys_drop_replication_slot('replicate_slot');
select * from sys_replication_slots ;
select sys_create_physical_replication_slot('replicate_slot');
select * from sys_replication_slots ;