TcaplusDB是腾讯自研的noSQL数据库,针对游戏的开发特点而定制,具备高性能、低成本、高可用、强弹性伸缩等特点,本文重点介绍Tcaplus高可用中必备的数据恢复性能。


TcaplusDB采纳主备做数据的冗余备份,其中Master和Slave角色是对等的,具体表现在Master的数据会异步的同步到Slave,当Master挂掉后,Slave会切换为Master提供服务。

数据恢复包含两个局部:备份与复原,因而从以下两点来介绍。

备份

数据库须要定时备份。从TcaplusDB架构图中得悉,每对主备都是通过备机定时向冷备核心做备份。在每台机器上架的时候,冷备脚本都会部署到机器上,之后通过冷备脚本与冷备核心的交互实现备份工作。

冷备脚本的作用

  • 对以后机器做dump操作,dump全量数据,并submit到冷备核心,而后由冷备核心发动调度,将冷备文件拉取到冷备核心。
  • 对以后机器的增量binlog流水submit到冷备核心,而后由冷备核心发动调度,将binlog流水文件拉取到冷备核心。
  • 定时清理机器已上传完毕的全量冷备文件。
  • 定时清理机器已上传完毕的增量binlog流水文件。

备份策略

  • 每日凌晨1:05分,从tcapsvr slave 备份一份全量数据到机器的bak目录,期待冷备核心拉取。
  • 每台机器的全量备份要求10小时内全副上传到冷备核心。
  • 每隔五分钟,将增量日志流水到冷备核心。
  • 每台机器的增量日志,自submit后,要求冷备核心一小时内拉取结束。

冷备核心

  • Tcaplus应用的冷备核心是技术运营部负责保护的,互娱大部分业务的备份都会存到冷备核心。
  • Tcaplus每天与冷备核心交互的Slave机器约1400台左右。
  • 每台机器产生的全量冷备最大1.1TB,增量引擎约500GB。
  • 冷备核心对于某个Ip发动的submit工作后,会在目标机器的Ip上发动rsync线程拉取文件到冷备核心。
  • 对于要上传冷备的Ip,辨别了千兆带宽和万兆带宽,万兆带宽上传和下载速度要高于千兆带宽。

复原

故障复原

故障复原中最次要的又是机器故障,个别分为Slave故障和Master故障:

对于Slave机器故障,由DBA发动Slave重建事务,此时新替换的机器,会将原挂起的slave的冷备下载到本地,经解压后注册到Master。

对于Master机器故障,零碎会主动将Slave切换为Master,之前的Master切换为Slave,Slave再发动重建事务,拉取新Master的冷备做数据恢复。

业务复原

业务须要复原一些key到指定工夫点

这类问题分两步:

①把数据结构到指定工夫点,包含从冷备核心拉取到本地以及解压到指定的目录。

②从结构好的数据里找到对应的key,将数据导入线上。导入前,项目组有时晓得具体的key,有时只晓得具体的范畴,此时分两种状况探讨:

key已知:从结构好的数据中遍历查找到执行的key,发动导入即可。

key未知,只晓得范畴:TcaplusDB将范畴内数据遍历进去并提供给项目组,由项目组辨识须要回档的key导入线上。

两种状况均已事务化。

业务测试须要将现网数据复制到测试环境

现网和测试环境属于两个集群,该过程也分为两步:首先将现网的数据结构一份,而后复制到测试环境并全量导入。


TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码齐全自研。具备缓存+落地交融架构、PB级存储、毫秒级时延、无损程度扩大和简单数据结构等个性。同时具备丰盛的生态、便捷的迁徙、极低的运维老本和五个九高可用等特点。客户笼罩游戏、互联网、政务、金融、制作和物联网等畛域。