1.
迁移前的总体评估与清单准备
小分段:评估范围与依赖。列出所有主机名、IP、应用版本、依赖服务(缓存、队列、第三方API);
小分段:目标架构和容量。确认香港机房带宽、实例规格、磁盘类型与IOPS是否满足负载;
小分段:制定维护窗口与人员分工。指定负责人、联系人、通信渠道(电话/企业微信)与回滚负责人。
2.
完整备份策略(必做)
小分段:文件级备份。生产机上执行增量与全量备份,示例命令:rsync -avz --delete /var/www/ user@backup:/backup/www/;
小分段:数据库备份。优先使用物理或逻辑备份:mysqldump --single-transaction --master-data=2 -u root -p db > dump.sql;如使用Percona XtraBackup可做热备份;
小分段:配置与证书备份。导出Nginx/Apache、HAProxy、SSL证书、crontab、systemd 服务文件。
3.
降低DNS TTL 与通知业务方
小分段:提前72小时将关键域名TTL降为60或120秒,减少DNS缓存导致的切换延迟;
小分段:向客户/合作方发送维护通知并说明维护窗口与预期影响,避免高峰期操作。
4.
建立目标环境并验证基础配置
小分段:在香港机房部署操作系统、安装必要中间件(nginx/php/fpm、redis、mysql等);
小分段:确保安全组/防火墙规则一致,开放必要端口(22/80/443/3306等),并设置访问控制白名单;
小分段:同步时间(ntp/chrony),设置同一时区或明确记录时差。
5.
文件同步的实操步骤(初次全量 + 增量)
小分段:初次全量同步(非高峰):rsync -azP --exclude='cache' /var/www/ user@hk:/var/www/;记录文件权限与Ownership;
小分段:在切换前做增量同步以减少差异:rsync -azP --delete /var/www/ user@hk:/var/www/;
小分段:验证文件完整性:使用md5sum或find /var/www -type f -exec md5sum {} \; 在源与目标比对抽样。
6.
数据库迁移与最小化停机的方案
小分段:如果可容忍短暂停机,使用一次性冷备恢复:mysqldump 恢复到目标并切换主机;
小分段:若需零停机,建议配置主从复制:在目标创建MySQL从库(CHANGE MASTER TO MASTER_HOST='源IP', ...),等待同步到最新;
小分段:切换主从时通过设置只读并短暂暂停写入,或者利用应用层把写操作路由到主库后切换主机IP。
7.
在线数据同步与减少一致性风险
小分段:使用二进制日志复制或GTID确保事务一致性;
小分段:对于大表可以先复制结构并分批复制数据(pt-table-sync或自写脚本),避免锁表;
小分段:对队列/缓存数据评估是否需要同步或仅在目标重建缓存。
8.
证书与域名/IP相关配置
小分段:将SSL证书与私钥复制到香港服务器,注意权限600并重载Nginx:systemctl reload nginx;
小分段:如果使用固定IP或BGP,提前与机房/运营商确认IP漂移计划;若使用浮动IP,准备好漂移脚本或API调用。
9.
负载均衡与会话管理
小分段:如果前端有负载均衡器(HAProxy/NGINX/LVS),在目标上复刻负载均衡配置并测试健康检查;
小分段:处理会话粘性问题:尽量使用共享session存储(redis/memcached)或JWT,避免本地session导致丢失;
小分段:准备好灰度切换策略:先把10%-50%流量导向香港节点观察。
10.
切换步骤(实际执行顺序)
小分段:1) 在低峰时段开始,通知团队进入维护模式;
小分段:2) 将应用置为只读或关闭写入口(短暂停写)并完成最后一轮数据库增量同步;
small分段:3) 切换DNS(更改A/NS记录指向香港IP)或切换负载均衡权重;
小分段:4) 验证基本业务链路(首页、登录、支付等),确认无误后撤销只读。
11.
回滚策略与应急步骤
小分段:回滚前提是保留源站最新状态的备份与binlog;
小分段:若新站点出现问题,立即把DNS TTL指回源站并调整负载均衡权重;
小分段:确保回滚操作简单可执行并由回滚负责人确认每一步,记录每次改动的时间和操作人。
12.
迁移后的验证与性能优化
小分段:监控检查:CPU/内存/磁盘/网络延迟与错误率,使用Prometheus/Grafana或云厂商监控;
小分段:流量全量切换后72小时内密切观察慢查询、接口错误率并调整MySQL/缓存/反向代理配置;
小分段:更新运维文档、IP清单、责任人信息,并把旧机降级或销毁按流程处理。
13.
安全与合规注意事项
小分段:确认香港机房的数据合规要求,是否涉及跨境数据传输审批或备案;
小分段:更改后的访问控制需立即生效,关闭不必要端口,更新密钥与证书;
小分段:移除临时开放的管理端口并审计登录日志,检查异常访问。
14.
常用命令速查(举例)
小分段:rsync:rsync -azP --delete /src/ user@hk:/dst/;
小分段:MySQL复制启动示例:CHANGE MASTER TO MASTER_HOST='x.x.x.x', MASTER_USER='repl', MASTER_PASSWORD='pwd', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4; START SLAVE;;
小分段:检查DNS解析:dig +short www.example.com @8.8.8.8。
15.
总结与实践建议
小分段:提前演练一次完整切换(演练环境或低流量站点),积累问题清单;
小分段:尽量把繁杂依赖解耦,使用中心化的配置与共享服务减少个体迁移风险;
小分段:确保监控报警覆盖,并在迁移后72小时内维持加班值守。
16.
问:如何把停机时间控制在几分钟内?
小分段:答:通过提前把TTL降到很低并使用数据库主从同步把差异降到最小,切换时只暂停写操作、完成最后一轮增量同步并修改DNS或负载均衡权重;同时把切换脚本化并预演可以把人工操作时间缩短到几分钟。
17.
问:数据库大且写负载高,如何迁移并保障数据不丢失?
小分段:答:建议采用主从复制或多活架构,先建立从库并同步Binlog,切换时短暂停写并把原主binlog位置写入,切换后将目标提升为主并验证事务一致性;必要时使用GTID确保精确定位。
18.
问:DNS切换后部分用户仍能访问旧机怎么办?
小分段:答:主要是DNS缓存或运营商缓存未过期,建议提前将TTL降到60秒并等待TTL生效;若问题持续,可在源站保留一定时间并在源站设置302重定向到新站或通过CDN/负载均衡分流降低影响。
来源:福田香港站群服务器迁移注意事项与最小化停机时间的具体步骤