一、背景描述
近期TDSQL数据库备份不稳定,有些set实例的备份任务未自动发起。经排查分析,存在多个set实例容量已经超过TB级别,且冷备节点都是同一台。因此,需要手动将当前备份节点改到其他备节点,开启增量备份,提升并发备份效率。
二、修改zookeeper中备份节点配置(低版本)
TDSQL 版本为10.3.14.6.0,Zookeeper版本为3.4.12。该版本赤兔界面不支持手动调整,因此,直接从后台进行配置调整。我们打算把实例的备份节点从A中心改到B中心。
1、赤兔管理平台,看到Set实例由4个节点组成,并且【备】10.3.10.14:4005被自动选为备份节点。
2、在赤兔调度管理系统找到zookeeper leader的地址,使用客户端zkCli.sh登录。
su - tdsql
# cd /data/application/zookeeper
# cat conf/zoo.cfg |grep clientPort
clientPort=2181
# bin/zkCli.sh -server localhost:2181
[zk: localhost:2181(CONNECTED) 0]set /tdsqlzk/group_1618898494_22/agent/agent_sets/agent_set@set_1618898567_1/coldbackup@set_1618898567_1/coldbackup_elect@set_1618898567_1
{"errorcode":"0","forbidPersist":false,"history":"","ip":"指定IP","ispaused":"0","modifytime":"1713518352","port":"指定端口","roundmodifytime":"当前时间戳","runinfo":"","updatecount":"0"}
3、查询指定set的zk信息:根据group和set名称,编写查询脚本。
[zk: localhost:2181(CONNECTED) 1] get /tdsqlzk/group_1633418054_6293/agent/agent_sets/agent_set@set_1681565235_38/coldbackup@set_1681565235_38/coldbackup_elect@set_1681565235_38查询结果如下:
/tdsqlzk/group_1633418054_6293/agent/agent_sets/agent_set@set_1681565235_38/coldbackup@set_1681565235_38/coldbackup_elect@set_1681565235_38
{"errorcode":"0","forbidPersist":false,"history":"","ip":"10.3.10.14","ispaused":"0","modifytime":"1699430102","port":"4005","roundmodifytime":"1699372800","runinfo":"","updatecount":"0"}
4、基于上述查询结果,进一步修改指定set的zk信息:
(1)ip字段改为新的备份节点地址;
(2)roundmodifytime 字段以当前时间戳为准进行更新,时间戳可以通过这个在线网址进行转换,参考地址:在线时间戳转换工具
查询指定set的zk信息
set /tdsqlzk/group_1633418054_6293/agent/agent_sets/agent_set@set_1681565235_38/coldbackup@set_1681565235_38/coldbackup_elect@set_1681565235_38
{"errorcode":"0","forbidPersist":false,"history":"","ip":"10.4.10.14","ispaused":"0","modifytime":"1699430102","port":"4005","roundmodifytime":"1699372800","runinfo":"","updatecount":"0"}
5、修改完,可以执行get命令进行查看验证。然后登录赤兔平台,等待5~10分钟后,可以看到备份节点已经调整过来了。
三、手动选取冷备节点(新版本)
系统默认选取冷备节点,用户可以根据需要修改。
1. 进入 手动设置冷备节点 页面。
赤兔管理平台:
非分布式实例:
(1)在实例管理页面, 选择所需非分布式实例 ID。
(2)单击左侧导航栏 实例详情,在备份配置区域,查看当前冷备节点。
(3)根据需要,单击手动选取冷备节点。
分布式实例:
(1)在实例管理页面, 选择所需分布式实例 ID。
(2)单击左侧导航栏 SET管理, 选择所需 SetID。
(3)页面弹出 Set基本信息 框,在备份配置栏中,查看当前冷备节点。
(4)根据需要,单击手动选取冷备节点。
新赤兔管理平台:
非分布式实例:
(1)在实例管理页面, 选择所需非分布式实例 ID。
(2)在实例详情页签,在基本信息栏中,查看当前冷备节点。
(3)根据需要,单击当前冷备节点后的设置。
分布式实例:
(1)在实例管理页面, 选择所需分布式实例 ID。
(2)进入节点管理 > SET 管理 页签, 选择所需 SetID。
(3)页面弹出 Set基本信息 框,在备份配置栏中,查看当前冷备节点。
(4)根据需要,单击手动选取冷备节点。
(5)在手动设置冷备节点 弹出框中,选择冷备节点,单击确定。
四、写在后面的知识点
1、zookeeper常用命令:get命令用来获取指定节点的数据内容和属性信息;set命令更新节点中的数据;quit命令用来退出客户端。
2、TDSQL MySQL支持将数据手动备份到分布式文件存储系统(Hadoop Distributed File System,HDFS)、DB 服务器本地磁盘(Local)和分布式存储服务器(COS),支持物理备份和逻辑备份类型。手动备份操作挺方便的,直接在界面上操作就行。
五、参考资料
7.0 Zookeeper 客户端基础命令使用 | 菜鸟教程
ZooKeeper 基本原理