知乎 PB 级别 TiDB 数据库在线迁移实践

导读

本文由知乎数据库负责人代晓磊老师老师撰写,全面介绍了知乎几十套 TiDB、数据总量达 PB 级别的数据库在线迁移经验,详细分享了三种场景和方案,为同城机房迁移提供了详尽的指导。

文章首先概述了在线机房迁移的基本条件,包括对专线和资源的要求,确保迁移过程中的稳定性和性能。接着,详细阐述了两种主要的迁移方案:使用 TiDB 的 Placement Rules 进行跨云跨 Kubernetes 集群的副本投放迁移,以及通过 TiCDC 链接的主备集群迁移。此外,还提供了其他场景的迁移建议,如业务双写和凌晨写入的特殊情况。

要想搞定在线机房迁移之 TiDB 数据库迁移,看完本文基本上所有的迁移方案你都可以搞定了(数据库迁移方案和流程大同小异)。本文中 3 种 TiDB 在线迁移的场景和方案,大家可以根据各自的业务场景各取所需了。

在线机房 prepare 阶段

一般在线机房迁移都是同城,且机房距离在 150 km,需要具备条件:

1. 专线要求

  • 数据中心距离在 150 km 以内,通常位于同一个城市或两个相邻城市;
  • 数据中心间的网络至少采用2条光纤专线连接,并且要求延迟 3 ms 左右,并且长期稳定运行;
  • 双专线且带宽大于 200 Gbps。

2. 资源要求

  • 物理机:比之前的配置要好,尤其当前的高密机型,考虑好硬盘 pv、cpu、内存资源规划;
  • K8s :版本选择,以及环境搭建完毕,到达可用程度,并且可以绑定物理机nodes 资源;
  • Operator:TiDB-operator 尽量选择高版本,做好调研和测试验证,到达可用状态。

在线 TiDB 集群迁移切换方案

在之前我写过的多云多活文章中有提及切换方案,并且基于线上的核心集群实施成功,相当于帮我们在线数据库迁移打好了坚实的基础。

因为知乎的 TiDB 是 all in K8s,我就先按照 K8s 给大家展示方案。

整体的迁移架构

整体的迁移架构如上图所示,可以看到:

  • 从结构上看,上方 K8s 集群 online 代表当前老机房的 TiDB 集群部署,里面包含了 TiDB 集群的各个组件。下方是新建立一套 k8s 集群,里面也部署了 TiDB 集群;
  • 中间 2 个红框代表的同步链路,一个是基于 TiDB placement-rule 副本投放,从视图上还是同一套 TiDB 集群的迁移链路。另外一个是由 TiCDC 同步的上下游 2 套不同的 TiDB 集群(上下游的版本可以不一样)。

下面我们分别来聊下这两种迁移方案:

一、跨云跨 k8s 的 TiDB placement-rule 副本投放迁移(60% tidb 集群都由此方案迁移)

迁移架构说明

迁移架构说明

Placement Rules 是 PD 在 4.0 版本引入的一套副本规则系统,用于指导 PD 针对不同类型的数据生成对应的调度。通过组合不同的调度规则,用户可以精细地控制任何一段连续数据的副本数量、存放位置、主机类型、是否参与 Raft 投票、是否可以担任 Raft leader 等属性。Placement Rules 特性在 TiDB v5.0 及以上的版本中默认开启( 5.0 之前开启需要通过 pd-ctl 命令:config set enable-placement-rules true 开启)。默认开启 placement-rule 后的情况如下:

# ./pd-ctl -i
» config placement-rules show
[
  {
    "group_id": "pd",
    "id": "default",
    "start_key": "",
    "end_key": "",
    "role": "voter",
    "is_witness": false,
    "count": 5
  }

注:“count”: 5 副本是因为之前我 config set max-replicas 5 修改过集群副本量

如果我想给这个 TiDB 集群实现同城双中心的副本放置 3 个 voter 副本在老集群,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值