§ 00概述
架构演进的第二刀几乎总是切在同一个位置:把数据库从应用服务器上请出去。应用与数据分离之后,两者第一次拥有了独立的生命周期——应用可以随时重启、重建、扩容,而数据安安静静地待在专业的存储设施里。
本章延续系列的数据集风格:组件选型、成本测算、指标基线、演进信号、检查清单、翻车点、FAQ 共 7 类。所有数据均以「从单机平滑迁移」为前提,给出可执行的路径与真实量级的成本。
§ 01演进定位
单机架构的三大边界中,数据安全是先于性能爆发的那个。应用出故障损失的是可用性,数据出故障损失的是信任——前者可以修复,后者往往不能。分离的第一动机因此是数据安全,其次才是性能。
分离后的收益立竿见影:数据库由云数据库托管,主备热备、自动故障切换、按时间点回档(PITR)全部变成托管能力;应用侧资源占用骤降,同一台服务器可承载的请求量翻倍;两侧分别按需扩容,互不牵制。
这次分离也是组织意义上的分水岭:团队第一次需要连接串管理、账号权限、内网互通这些「数据工程」动作。把它们做规范,后面所有章节的演进都会更顺。
§ 02技术架构
标准形态:应用服务器(CVM)通过内网连接云数据库(CDB),文件与备份落在对象存储(COS)。应用与数据库之间的流量全部走内网——更低延迟、免公网流量费、且数据库不暴露公网是安全底线。
云数据库选高可用版(一主一备热备),故障切换通常在 30 秒内完成且对应用透明。开启 binlog 与自动备份:每日全量 + binlog 增量,支持精确到秒的回档。
迁移路径的标准做法是「双写过渡」:新库搭建后,先历史数据迁移 + 增量同步,再灰度切换读流量,最后切换写流量并观察一个完整业务周期。全程可回滚,业务基本无感。
§ 03实施路径
第一阶段(约 1 周):选购云数据库高可用版、VPC 内网打通、账号与权限最小化(应用账号禁 DDL)、连接串与环境变量收敛到配置中心或加密配置文件。
第二阶段(1-2 周)数据迁移:全量导入 + 增量同步(DTS 或 binlog 订阅),数据校验(行数与抽样内容比对),只读灰度——先切 10% 读流量观察一周。
第三阶段(约 1 周)切换与回退预案:写流量切换安排在业务低峰,切换前冻结发布;准备一键回切方案;切换后保留旧库只读 2 周作为保险。总周期 3-4 周。
§ 04客户价值与适用判断
该切:数据库内存持续吃紧、数据合规要求独立管控、或团队已被「重启应用必须连着数据库一起重启」折磨过任何一次。
成本视角:分离会带来月成本约 2-3 倍的上涨(从约 ¥219 到约 ¥700),换来的是 RPO 从 24 小时进入分钟级、数据库可用性从「尽力而为」进入 99.95% 托管 SLA。对有真实用户的业务,这是全系列性价比最高的一次升级。
不着急切:纯静态站点、内部工具、或数据可再生(如纯爬取数据可重建)的场景,单机 + 快照已足够,不必为架构美感付费。
§ D01组件与选型清单
DATA应用与数据分离 · 标准组件栈分离后标准栈
| 层级 | 组件 | 选型建议 | 职责与要点 |
|---|
| 应用 | 云服务器 CVM | 通用型 4C8G | 纯应用进程,资源余量投向请求处理 |
| 数据库 | 云数据库 CDB 高可用版 | 2C4G · 一主一备 | 主备热备自动切换,应用侧仅暴露内网地址 |
| 备份 | 自动备份 + binlog | 每日全量 + 增量 | 支持按时间点回档(PITR),保留 7-30 天 |
| 对象存储 | COS | 标准 100GB 起 | 文件与静态资源,应用无状态化的前提 |
| 网络 | VPC 内网互通 | 私有网络对等 | 数据库零公网暴露,连接走内网域名 |
| 安全 | 数据库账号最小化 | 应用账号禁 DDL | 读写账号分离,高危操作走运维通道 |
| 迁移 | DTS 数据同步 | 全量 + 增量 | 双写过渡期的数据管道,附校验报告 |
高可用版与基础版价差约一倍,但对「数据即业务」的场景,主备热备是默认项而非可选项。
§ D02成本测算数据集
DATA成本测算示例(分离后标准栈 · 月度)月度 · CNY
| 项目 | 规格 | 月成本 | 说明 |
|---|
| 应用服务器 | 通用型 4C8G · 包年 | ≈ ¥260 | 纯应用,单机时代同价位承载翻倍 |
| 云数据库 | 高可用版 2C4G | ≈ ¥330 | 一主一备热备,含自动备份 |
| 对象存储 | 标准 100GB + 流量 | ≈ ¥20 | 文件与备份 |
| 公网带宽 | 5Mbps · 按流量 | ≈ ¥40 | 数据库已走内网,公网仅服务应用 |
| 内网流量 | 同 VPC | ≈ ¥10 | 应用-数据库内网流量费 |
| 监控告警 | 云监控进阶 | ≈ ¥10 | 数据库关键指标告警 |
月均合计 ≈ ¥670 · 较单机 +2.1 倍
估算口径同第 01 章。数据库费用弹性最大:基础版可再省约一半,但放弃热备——我们不推荐对真实业务这样做。
§ D03关键指标基准
DATA可用性与体验基线SLO 参考
| 指标 | 单机基线 | 本阶段目标 | 行业良好 |
|---|
| 数据库可用性 | 随整机 | 99.95%(托管切换) | 99.99%+ |
| 故障切换时长 | 分钟-小时级 | < 30 秒主备切换 | < 10 秒 |
| 数据丢失 RPO | 24 小时 | < 1 分钟(半同步) | 秒级 |
| 误操作恢复 | 依赖备份覆盖 | 按时间点回档 PITR | 秒级 PITR |
| 应用可承载 QPS | ≈ 100-150 | ≈ 300(资源独占) | 水平扩展 |
§ D04演进触发信号
DATA什么时候必须走向下一阶段任一命中即评估
| 触发信号 | 判定阈值 | 演进方向 |
|---|
| 发布需停机 | 任何工作时段发布都会丢请求 | 应用集群 + 负载均衡(03) |
| 读请求压垮数据库 | 读 QPS > 500 且 CPU > 60% | 读缓存(04)+ 只读实例(05) |
| 会话粘性阻碍扩容 | 应用无法多实例部署 | 会话外置 Redis(03) |
| 静态流量增长 | 文件下载/图片流量上升明显 | 对象存储直传 + CDN(06) |
| 数据量逼近单库上限 | 单表 > 2,000 万行 | 读写分离与分库分表(05) |
§ D05上线检查清单
内网直连数据库仅内网可达,公网入口关闭,安全组精确到应用内网 IP
账号最小化应用账号只授必要库的 DML 权限,DDL 走运维审批通道
备份验证完成一次 PITR 回档演练,确认能恢复到指定秒级时间点
连接串治理不出现在代码与镜像中,走环境变量或配置中心,轮换有流程
迁移校验报告行数、关键表抽样、业务对账三方一致后再切流量
回退预案写流量可一键回切旧库,旧库保留只读 2 周后再下线
§ D06高频翻车点
公网直连数据库为省事暴露公网端口,等于把核心资产挂上公网挨扫
迁移不做校验只看「没报错」,切流后才发现字符集或时区差异导致数据异常
单可用区部署应用与数据库同可用区,机房级故障一起失效,重要业务应跨 AZ
连接数失控应用未用连接池,短连接打满云数据库 max_connections
超大事务迁移迁移窗口内有大事务,增量同步长延迟导致切换后数据回退
§ D07常见问答
DATA应用与数据分离 · 问答数据集4 组
| 问题 | 答案 |
|---|
| 迁移过程中业务会中断吗? | 标准双写迁移全程无需停机:全量 + 增量同步期间业务照常跑旧库,读灰度、写切换都在秒级完成。只有最后的写切换有约 10 秒的写冻结窗口,安排在低峰即可。 |
| 云数据库会不会比自建慢? | 同规格下托管数据库通常更快:NVMe 存储与内核参数已调优,且主备架构读写分离就绪。自建的「快」往往是没有备份与高可用成本的假象。 |
| 费用翻倍值不值? | 分离换来的三样东西——分钟级 RPO、托管高可用、两侧独立扩容——任一单买都不止这个价。有真实付费用户的业务,这是全系列性价比最高的升级。 |
| 分离之后下一步往哪走? | 按演进信号定:读压力先看 04 章多级缓存;可用性要求提升走 03 章应用集群;两者通常先后到来,顺序不影响彼此。 |
§ D8角色分工数据集
DATA角色分工数据集本阶段人员配置
| 角色 | 核心职责 | 投入度 | 备注 |
|---|
| 后端开发 | 连接改造 · 双写迁移 · 灰度切流 | 80% | 迁移期主责 |
| DBA(可兼) | 云数据库运维 · 校验 · 回档演练 | 40% | 迁移窗口全职 |
| 运维 | VPC 内网 · 安全组 · 监控接入 | 30% | 网络先行 |
| 业务负责人 | 低峰窗口审批 · 切流决策 | 10% | 切换夜在岗 |
§ D9风险登记册
DATA风险登记册概率 × 影响
| 风险 | 概率 | 影响 | 缓解措施 |
|---|
| 迁移后数据不一致 | 中 | 致命 | 行数+抽样双校验 · 只读灰度 ≥ 3 天 · 一键回切 |
| 应用连接数打满数据库 | 中 | 严重 | 连接池改造 · 按 max_connections 70% 规划 |
| 数据库被公网暴露 | 低 | 致命 | 仅内网可达 · 安全组审计入巡检 |
| 大事务拖长同步延迟 | 中 | 中 | 迁移窗口冻结 DDL 与批量作业 |
§ D10监控告警清单
DATA监控告警清单阈值即责任
| 监控对象 | 指标 | 告警阈值 | 响应动作 |
|---|
| 主从复制 | 延迟秒数 | > 1 秒 | 短信 · 排查大事务与规格 |
| 数据库连接 | 连接数 / 上限 | > 70% | 短信 · 连接池复核 |
| 慢查询 | 每分钟新增 | > 10 条 | 工单 · SQL 治理 |
| 备份任务 | 执行结果 | 失败 | 电话 · 当日重跑 |
| 数据盘容量 | 使用率 | > 80% | 工单 · 扩容评估 |
§ D12实施时间线
DATA实施时间线周为单位
| 周次 | 里程碑 | 责任角色 | 出口物 |
|---|
| W1 | 云数据库就绪 | 运维 + DBA | 内网互通 · 账号最小化 · 备份开启 |
| W2 | 全量+增量同步 | DBA + 后端 | 同步延迟 < 1s · 首轮校验通过 |
| W3 | 只读灰度 | 后端 + 业务 | 10%→50% 读切流无异常 |
| W4 | 写切换与观察 | 全员 | 切换完成 · 旧库只读保留 2 周 |
§ D13SLA 与容灾基线
DATASLA 与容灾基线对内承诺
| 指标 | 基线承诺 | 度量方式 | 未达标处置 |
|---|
| 数据库可用性 | 99.95% | 云控制台 SLA 报表 | 升级为跨 AZ 部署 |
| 主备切换时长 | < 30 秒 | 故障演练实测 | 演练频率提升到月度 |
| RPO | < 1 分钟 | PITR 演练验证 | 检查半同步复制状态 |
| 备份恢复演练 | 每季度 1 次 | 演练记录 | 未执行视为 SLA 违约 |
§ D14应急预案
DATA应急预案一页纸预案
| 故障场景 | 典型现象 | 处置步骤 | 升级路径 |
|---|
| 主库故障 | 写入报错 · 自动切换中 | ① 确认切换完成 ② 观察复制拓扑 ③ 验证写入恢复 | 10 分钟未恢复 → 云工单 P1 |
| 复制延迟持续放大 | 从库数据落后 | ① 排查大事务 ② 必要时限流写 ③ 追平后恢复 | 延迟 > 10 分钟 → 降级读主库 |
| 误删除数据 | 业务反馈数据缺失 | ① 冻结相关写入 ② PITR 回档到误操作前 ③ 数据比对后恢复 | 涉及交易数据 → 立即升级 DBA + 业务 |
| 连接数耗尽 | 大量连接超时 | ① 定位连接来源 ② 杀超额会话 ③ 修正连接池上限 | 反复出现 → 复盘容量规划 |
§ D15首年成本明细
DATA首年成本明细CNY
| 项目 | 月成本 | 年成本 | 备注 |
|---|
| 应用服务器 4C8G | ≈ ¥260 | ≈ ¥3,120 | 包年 |
| 云数据库高可用 2C4G | ≈ ¥330 | ≈ ¥3,960 | 主备热备含备份 |
| 对象存储 + 内网流量 | ≈ ¥30 | ≈ ¥360 | 文件与备份 |
| 公网带宽 | ≈ ¥40 | ≈ ¥480 | 仅应用侧 |
| 监控与迁移临时费用 | ≈ ¥20 | ≈ ¥240 | DTS 按迁移窗口计 |
首年合计 ≈ ¥8,160。数据库费用占比 48%——分离之后账单重心从计算转向数据,属健康结构。
§ D16团队能力要求
DATA团队能力要求按需补齐
| 能力项 | 要求级别 | 如何补齐 |
|---|
| MySQL 运维基础 | 必须 | 云数据库认证课程 + 回档演练 |
| 数据迁移与校验 | 必须 | 跟随一次完整双写迁移实操 |
| 连接池调优 | 建议 | 压测报告复盘 |
| 故障演练方法 | 建议 | 每季度预案演练轮值 |
§ D17关键决策速查(ADR)
DATA关键决策速查(ADR)本阶段 4 个决策
| 决策 | 备选方案 | 结论理由 |
|---|
| 数据库选型 | 自建 MySQL vs 云数据库 | 托管高可用:RPO 分钟级 + PITR 买不来自建 |
| 迁移方式 | 停机迁移 vs 双写 | 双写:迁移不停业,成本可控 |
| 文件存储 | 本地盘 vs COS | COS:应用无状态化的前提 |
| 账号体系 | root 通用账号 vs 最小化 | 最小化:DDL 走审批通道 |
§ D18高频面试题
DATA高频面试题本阶段 4 题
| 问题 | 考察点 | 优秀回答特征 |
|---|
| 双写迁移怎么保证一致性? | 迁移工程 | 双校验+灰度+回切三件套完整 |
| 连接池怎么设? | 容量意识 | 按 max_connections 70% 与压测结果 |
| 误删数据如何救? | 应急能力 | PITR 秒级回档流程清晰 |
| 为什么不直接读写分离? | 演进判断 | 按触发信号决策,不超前消费 |
§ D19命令与操作速查
DATA命令与操作速查数据专项
| 场景 | 命令/操作 | 说明 |
|---|
| 主从延迟 | SHOW SLAVE STATUS | Seconds_Behind_Master |
| 连接排查 | SHOW PROCESSLIST | 按来源聚合定位 |
| 行数校验 | count 对比脚本 | 迁移窗口每日跑 |
| PITR 回档 | 控制台 · 按时间点 | 先在临时实例验证 |
§ D20采购与商务要点
DATA采购与商务要点本阶段采购项
| 采购项 | 询价要点 | 商务注意 |
|---|
| 云数据库高可用版 | 主备切换 SLA 与 PITR 保留期 | 跨 AZ 是否加价 |
| DTS 迁移任务 | 按任务还是按流量计费 | 迁移窗口结束后及时释放 |
| 跨 AZ 部署 | 同地域跨 AZ 流量费 | 内网互通费用先确认 |
§ D21阶段 KPI 卡
DATA阶段 KPI 卡验收口径
| KPI | 口径 | 目标 |
|---|
| 数据库可用性 | 月度 SLA | 99.95% |
| 迁移一致性 | 校验差异数 | 0 |
| 切换停机 | 写冻结窗口 | < 10 秒 |
| 月成本 | 账单合计 | ≤ ¥800 |
§ D22交接清单
DATA交接清单换人不换知识
| 交接项 | 载体 | 验收 |
|---|
| 迁移双校验脚本 | Git 仓库 | 新环境可复跑 |
| 数据库账号台账 | 密码管理器 | 权限与人对得上 |
| 回档操作手册 | Wiki | 30 分钟内完成一次回档 |
| 切换预案 | Wiki | 含回切步骤与联系人 |
§ D23演进检查点评审
DATA演进检查点评审走向 03 章前
| 检查项 | 达标标准 | 结果 |
|---|
| 会话可外置 | 登录态已由 Redis 承载 | 通过/不通过 |
| 文件已上对象存储 | 本地无持久化文件 | 通过/不通过 |
| 数据库高可用验证 | 主备切换演练 < 30 秒 | 通过/不通过 |
| 发布可脚本化 | 一键部署成功率 100% | 通过/不通过 |