一、背景
在现代企业的数字化基础设施中,数据库始终处于核心地位,承载着交易、数据分析、服务调用等关键业务。随着业务形态快速演进,系统对数据库的要求已不再局限于“高可用”、“高性能”,而进一步向“灵活调度”、“资源弹性”、“运维自主”方向演进。与此同时,随着机房设施逐步老化、设备维保成本上升、网络架构调整等客观因素影响,数据库从老旧机房迁移至新一代机房成为不可回避的趋势。然而,DB 迁移过程通常伴随着架构复杂、变更风险高、业务强依赖等问题,一直是平台演进中的“重型工程”。
为了解决这些掣肘,我们基于平台化能力构建了一套相对完善的数据库自主迁移体系,支持用户以可控、透明、无中断的方式完成数据库跨机房迁移。
二、迁移策略解析
1. 提前扩容至目标机房
在数据库迁移过程中,提前进行异地扩容是确保服务连续性和数据一致性的重要前提。平台支持“一键扩容”能力,允许用户将数据库实例扩展部署至目标机房,实现异地高可用架构。
策略优势:
无中断过渡:提前扩容保障主从同步链路先行建立,切主前数据已持续复制,无需停机导入;
最小化风险:在迁移正式发生前可提前观察目标机房运行状态、从库同步延迟、网络稳定性等,为后续切主提供可靠决策依据;
灵活调度基础:扩容后平台会自动生成新机房的读写 VIP、只读 VIP 和域名,为后续的自动切流或精细化接入做准备;
弹性容量准备:目标机房的资源可根据业务体量按需申请,支持一主多从;
策略架构:
若数据库实例仅部署于A机房,则必须提前完成目标机房如B机房的的扩容操作,B机房扩容后会自动生成B机房的读写VIP以及只读VIP,整体架构如图所示
主从同步:此时A机房一个Master,一个Slave,B机房2个Slave。所有Slave 都从A机房的Master进行主从同步;
VIP挂载:A机房以及B机房的读写vip下挂载的都是A机房的master,各机房的只读VIP则挂载本机房的Slave;
2. 跨机房切主
在目标机房扩容并完成主从同步后,即可通过平台发起主库切换(切主)操作。该步骤标志着数据库服务“控制权”迁移至新机房,是整个迁移过程中最关键的一环。
策略优势:
流程安全可控:切主过程全程监控,切主失败会触发告警;
数据安全保障:切主需在扩容后等待至少 2 小时,避免延迟未同步或状态不稳定 ;
受影响时间短:切主过程中一般1-5分钟左右的闪断,一般控制在1分钟左右;
策略架构:
主从同步完成后,进行切主操作,切主后整体架构如图所示。
主从同步:将A机房的Master降为Slave,将B机房的其中一个Slave升级为Master。所有Slave都从B机房的Master进行主从同步;
VIP挂载:A机房以及B机房的读写vip下挂载的都是B机房的master,各机房的只读VIP仍然只挂载本机房的Slave;
3. 机房预下线
待切主完成后,代码上更换完VIP或域名(如果使用全局域名可以不用修改),可以将原机房进行预下线,预下线的策略是保留实例,只是将实例从VIP下摘掉,预下线A机房后整体架构如图
三、智能域名调度体系
1. 域名类型
HULK DB 平台支持两种域名:
域名类型 |
使用场景说明 |
全局域名 |
自动调度所有可用区 IP,实现无感知访问 |
可用区域名 |
指定访问某一可用区的读写节点,提升就近访问速度 |
2. 调度策略解析
全局域名会映射到所有可用区的对应 读写 或 只读IP 上,在不关注可用区时,可以使用全局域名连接,这样当某个机房的节点发生故障导致IP不可用时,域名会自动忽略该IP,去访问其他可用IP。如果业务对连接机房和速度有要求的话,可以使用可用区域名。
全局域名策略:
优先访问同机房 VIP(存在就近访问机制);
若无本机房 VIP,则轮询访问所有可用区;
使用可用区域名:
若服务部署在A机房,访问A机房 的域名,下线前需手动修改代码指向新机房区域名;
未来再次迁移也需更新域名配置;
使用全局域名:
可自动适配新机房地址,更换机房业务无需替换域名;
四、产品化操作指引(以MySQL为例)
1、扩展机房
选择【更多】->【扩展机房】,此步骤完成后,会在所选机房创建数据库从库角色节点。
选择【+】,会增加备用可用区。
选择新机房,例如:SHRDT,实例数量与原环境保持一致,原环境是一主一从,那么新机房申请两个从库
扩容完成后,会创建新机房的读写VIP及域名,主库还是在旧机房。
2、申请全局域名
如果您目前没有全局域名,建议您申请全局域名使用,选择【更多】->【申请域名】创建全局域名
3、切换机房
扩展机房后,新可用区从库需要进行同步,因此两小时内不允许进行切换机房操作。
2小时后选择【更多】->【切换主机房】,此步骤会将主库角色切换至shrdt新机房。
切换主机房会导致服务有1~5分钟不可用。请确认好切换时间
切换主机房后,需要将应用服务迁移至B机房,全局域名有优先解析到同机房vip的就近策略,所以预下线A老机房vip的时候一定要确保A机房的服务也迁移到B机房,否则在A机房vip预下线之后,缓存重新生效之前,可能有5~10分钟的地址失效,造成A机房应用无法访问mysql。
4、预下线
确认已将VIP更正为新机房读写VIP,或已经配置了全局域名。可以选择【更多】->【申请预下线】
【选择vip】进行预下线
5、下线旧机房
预下线10分钟无异常后,选择【更多】->【申请删除】
选择【按机房删除】->【选择机房】,会删除指定机房的实例及VIP。
至此,MySQL机房迁移完毕。
五、迁移中的常见问题
1、如何判断原vip是否还有流量
可以通过查看LVS流量进行查看,判断没有流量后通过预下线将实例进行暂时关停,防止业务代码修改不完全
2、预下线后是否可以恢复
可以通过取消预下线进行恢复,预下线实际为将实例从vip进行摘除,可以将实例重新挂载vip进行恢复。
3、切主是否影响业务
切主会导致1-5分钟的闪断,业务要保证有自动重连机制,将影响降到最低
结语
智汇云HULK云平台支持完善的数据库全自助迁移能力,通过一键扩容、无感切主、智能域名调度等产品功能,我们为业务提供稳定可靠的数据库底座支撑,确保每一次数据库迁移都在“业务无感知、资源最优配”的基础上安全完成。未来,HULK云平台将持续完善数据库迁移的能力矩阵,构建更智能、更弹性、更标准化的迁移通道。在多机房部署、资源调度优化、灾备演练等关键场景中,自主迁移将作为企业数据库运维体系的重要基石,保障业务连续性,释放基础架构弹性价值。
更多技术干货,
请关注“360智汇云开发者”👇
360智汇云是以"汇聚数据价值,助力智能未来"为目标的企业应用开放服务平台,融合360丰富的产品、技术力量,为客户提供平台服务。
目前,智汇云提供数据库、中间件、存储、大数据、人工智能、计算、网络、视联物联与通信等多种产品服务以及一站式解决方案。
官网:https://zyun.360.cn(复制在浏览器中打开)
更多好用又便宜的云产品,欢迎试用体验~

