数据库割接是什么
数据库割接是把业务从一个数据库实例切换到另一个实例的执行过程,常见于上云迁移、机房搬迁与大版本升级。它不是一次性动作,而是一串有先后依赖的阶段:预检查(版本、字符集、对象兼容、账号权限)、数据搬运(结构、全量、增量同步)、校验、正式割接(停写、增量收敛、切换连接、观察)。每个阶段都要有明确的通过条件与回退点。
基本信息
| 预检查 | 版本、字符集、对象兼容、账号权限 |
|---|---|
| 数据阶段 | 结构 → 全量 → 增量同步 |
| 校验 | 行数与内容校验通过才允许进入割接 |
| 割接 | 停写 → 增量收敛 → 切换连接 → 观察 |
| 收尾 | 观察期内保留反向同步能力与回滚时间点 |
典型使用场景
- 自建数据库迁移到云数据库,或跨云整体搬迁
- 同城双活、主备切换演练与真实切换
- 数据库大版本升级,需要预先验证兼容性
- 存储或实例规格调整,要求业务停机窗口尽量短
- 数据归档分离,把历史库迁到低成本实例
割接检查单示例
割接检查单示例
[] 预检查通过:版本、字符集、对象与账号权限
[] 全量同步完成,增量延迟已收敛到秒级并稳定
[] 全量校验与增量校验通过(行数、抽样内容、校验和)
[] 回滚方案与回滚时间点已确认,决策人到位
[] 应用连接串修改已完成并在测试环境演练
[] 割接观察期值班与告警就位阶段与通过条件
| 阶段 | 目的 | 通过条件 |
|---|---|---|
| 预检查 | 确认两端兼容 | 版本、字符集、sql_mode 与对象类型全部核对 |
| 结构迁移 | 建立目标端骨架 | 表、索引、视图、存储过程创建成功 |
| 全量同步 | 搬运存量数据 | 行数与校验和一致 |
| 增量同步 | 追平割接前的变更 | 延迟收敛并稳定在可接受范围 |
| 校验 | 确认数据一致 | 行数、抽样内容与校验和全部通过 |
| 割接 | 完成连接切换 | 停写后增量追平,应用连接串切换并验证 |
| 观察 | 确认业务正常 | 核心指标正常,无异常告警 |
校验口径必须在割接前就商定:只比行数在存在重复数据或软删除的场景下会漏判,建议行数、抽样内容与校验和组合使用,并记录每次校验的时间点。
割接窗口内必须真正停写;采用双写方案时,要保证切换期间写入可回补,否则回滚时会出现两边数据分叉。