通过 UltraSync 减轻主节点负担、提升业务系统性能,AntDB 如何做到?
众所周知,数据库在多中心场景下,主中心主库不仅要承担原本业务的压力,而且还要将 redo 日志传输到不同的备库端,这样对主库将产生很大的性能影响。通常情况下,备中心和主中心不在同⼀机房,为了保证业务响应速度,主中心主节点和备中心各主节点之间的复制流通常是异步的,当主中心发生故障时,主备中心的数据⼀致性就无法保证。

图 1:高可用集群双中心常规架构图
为了解决上面两个问题,AntDB 数据库引入 UltraSync,在 UltraSync 环境中,传输日志的压力大部分由 UltraSync 实例承担,而主节点只需要把 wal⽇志传输到距离较近的 UltraSync 实例,这样将在很大程度上减轻主节点的负担,提升业务系统的性能。UltraSync 是⼀个轻量级的 AntDB 实例,⼀个只同步 WAL⽇志,⽽不做 redo 的轻量级“同步备库”。

图 2:高可用集群双中心 UltraSync 架构图
今天,我们将通过 AntDBUltraSync 的部署使用过程,切实感受 UltraSync 是如何减轻主节点负担,提升业务系统性能的。
一、环境配置
本次部署单中心高可用 UltraSync 集群

二、UltraSync 部署
使用 AntDB 的一键部署,部署一个 3 节点的高可用集群
1).创建用户

2).修改用户密码

更改用户 antdb 的密码
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新
3). 将安装包(antdb-t-ee-release-7.2.16.generic.x86_64.tar.gz)拷贝到/home/antdb 目录下,并修改该安装包的权限

4).切换到 antdb 用户,并解压

5).进入到软件包目录,安装软件




6).编辑初始化配置文件




7).进行初始化


…
…

出现[Info] AntDB init succeeds,则高可用集群部署成功。
8).停止准备部署 fay sync 角色节点的 patroni(192.168.37.132)

9).编辑目前高可用集群配置


10).编辑 patroni 配置文件(192.168.37.132)



将数据目录清空

11)

12).查看集群状态

至此,UltraSync 部署完成。
三、UltraSync 使用验证
1.停止 sync 备库(将 192.168.37.131 的 sync 备库停止)

在 leader 测试数据,能正常执行,对外提供服务。

2.启动 sync 备库(将 192.168.37.131 的 sync 备库启动),然后将 leader 主库停止(将 192.168.37.130 的 leader 主库停止)
此时同步备库提升为了主库。

查看前面插入的数据,数据正常

插入数据,正常。

3.高可用切换测试
将 192.168.37.130 的 patroni 启动恢复,查看当前的集群状态

执行切换


再次查看状态,此时切换成功

四、总结通过 AntDB UltraSync 的部署使用,我们发现 UltraSync 的引入能够极大缓解主库的压力,同时对服务器资源的需求也少了很多(只是用作接收 wal 日志,有存储需求,对内存,CPU 需求大大降低),在实际生产环境中,能大大节省服务器的成本支出。
关于 AntDB 数据库
AntDB 数据库始于 2008 年,在运营商的核心系统上,为全国 24 个省份的 10 亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。
评论