点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
本文档介绍了磐维数据库PanWeiDB V2.0.0基于gs_sdr工具,在不借助额外存储介质的情况下实现跨Region的异地容灾。提供流式容灾搭建,容灾升主,计划内主备切换,容灾解除、容灾状态监控等功能。
主集群具备单集群组网的优点,只有主集群彻底不可用后才需要手动切换为备集群。 跨集群(异地)复制链路无论是否发生容灾切换都只有一条,占用网络带宽相对较少。 组网更加灵活,主集群和灾备集群都可以选择不同的组网。 支持灾备集群failover。 支持主备集群计划内switchover。
2.2 前提条件
存在两个独立运行且状态正常的集群【集群实例个数>=2】,需要集群间网络、端口互通 搭建容灾的主备集群版本号必须相同。 搭建容灾关系前,主集群需创建具有流复制权限的容灾用户,用于容灾鉴权,主备集群必须使用相同的容灾用户名和密码,一次容灾搭建后,该用户密码不可修改。若需修改容灾用户名与密码,需要解除容灾,使用新的容灾用户重新进行搭建。容灾用户密码中不可包含以下字符“| ;&$<>`\'“{}()[]~*?!\n空白”。 流式容灾搭建前不支持已存在首备及级联备。
3.1 集群信息
【主集群】 | 2024-01-05 17:19:18 commit 9fbca90 | |||
【备集群】 | 2024-01-05 17:19:18 commit 9fbca90 | |||
注:
需要在主节点<DEVICE sn="cmdbp01">和</DEVICE>标签内部添加三个参数; 三个参数分别为localStreamIpmap1、remoteStreamIpmap1和remotedataPortBase。 localStreamIpmap1为本地集群IP列表,值为(IP1,MAP_IP1),(IP2,MAP_IP2),...; remoteStreamIpmap1为双中心另一套集群IP列表,值同样为(IP1,MAP_IP1),(IP2,MAP_IP2),...; remotedataPortBase为另一套集群数据库地址,一般默认为17700。 【IP1为集群内部节点实际地址,MAP_IP1为映射IP地址,一般用于跨池场景下,如未做过IP映射,该地址与IP1相同。IP列表顺序为主节点在最左侧、其他节点一次往后排】
cd /cmdb/soft
cp cmdb_conf.xml cmdb_conf_sdr.xml
vim cmdb_conf_sdr.xml
-- 主集群添加
<PARAM name="localStreamIpmap1" value="(192.168.254.21,192.168.254.21),(192.168.254.22,192.168.254.22)"/>
<PARAM name="remoteStreamIpmap1" value="(192.168.254.31,192.168.254.31),(192.168.254.32,192.168.254.32)"/>
<PARAM name="remotedataPortBase" value="17700"/>
cd /cmdb/soft
cp cmdb_conf.xml cmdb_conf_sdr.xml
vim cmdb_conf_sdr.xml
-- 备集群添加
<PARAM name="localStreamIpmap1" value="(192.168.254.31,192.168.254.31),(192.168.254.32,192.168.254.32)"/>
<PARAM name="remoteStreamIpmap1" value="(192.168.254.21,192.168.254.21),(192.168.254.22,192.168.254.22)"/>
<PARAM name="remotedataPortBase" value="17700"/>
3.3 创建容灾用户
su - omn
gsql -dpostgres -p17700
create user sdr_user with replication password 'Shsnc2023';

3.4 检查集群状态
su - omn
gs_om -t status --detail


3.5 创建容灾关系
su - omn
gs_sdr -t start -m primary -X cmdb/soft/cmdb_conf_sdr.xml -U sdr_user -W 'Shsnc2023' --time-out=3600 -l cmdb/soft/gs_sdr_$(date +%Y%m%d_%H).log


gs_sdr -t start -m disaster_standby -X
/cmdb/soft/cmdb_conf_sdr.xml -U sdr_user -W 'Shsnc2023' --time-out=3600 -l cmdb/soft/gs_sdr_$(date +%Y%m%d_%H).log

3.6 检查容灾状态
gs_sdr -t query


gsql -dpostgres -p17700 -c "select * from pg_replication_slots;"

gsql -dpostgres -p17700 -c "select * from pg_stat_replication;"

3.7 gs_sdr -t query容灾查询状态说明
流式容灾中仅主数据库实例可查。 |
3.8 双中心搭建问题处理
主中心创建容灾关系时,会报超时,理论上空库启动不需要很久【默认超时时间20分钟】;

备中心启动,会报错无法连接主库获取hadr信息,以至于备集群无法根据主集群同步信息来重建。
which gs_sdr




先找到tmp目录cd /cmdb/soft,查看部署文档,确认tmp目录路径:
more cmdb_conf.xml|grep -i tmp

tmp目录下会生成streaming_cabin,该目录下存放容灾搭建信息。
cd /cmdblog/tmp


本文作者:冯俊鸿(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




