众所周知,数据库在多中心场景下,主中心主库不仅要承担原本业务的压力,而且还要将redo日志传输到不同的备库端,这样对主库将产生很大的性能影响。通常情况下,备中心和主中心不在同⼀机房,为了保证业务响应速度,主中心主节点和备中心各主节点之间的复制流通常是异步的,当主中心发生故障时,主备中心的数据⼀致性就无法保证。
图1:高可用集群双中心常规架构图
为了解决上面两个问题,AntDB数据库引入UltraSync,在UltraSync环境中,传输日志的压力大部分由UltraSync实例承担,而主节点只需要把wal⽇志传输到距离较近的UltraSync实例,这样将在很大程度上减轻主节点的负担,提升业务系统的性能。UltraSync是⼀个轻量级的AntDB实例,⼀个只同步WAL⽇志,⽽不做redo的轻量级“同步备库”。
图2:高可用集群双中心UltraSync架构图
今天,我们将通过AntDBUltraSync的部署使用过程,切实感受UltraSync是如何减轻主节点负担,提升业务系统性能的。
一、环境配置
本次部署单中心高可用UltraSync集群
IP | 操作系统 | CPU | 内存 | 角色 |
192.168.37.130 | BC Euler 21 | 2C | 2GB | master |
192.168.37.131 | BC Euler 21 | 2C | 2GB | slave |
192.168.37.132 | BC Euler 21 | 2C | 2GB | 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).启动patroni(192.168.37.132) 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亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。