1.1 清点资源:列出网站、数据库、缓存(Redis/Memcached)、队列(RabbitMQ)、证书(SSL)、域名解析和定时任务等。
1.2 评估风险窗口:根据业务峰值选定迁移时间(建议凌晨低峰),并定义可接受的最长停机时间与回滚点。
2.1 系统与软件:安装相同操作系统版本、Web服务器(nginx/apache)、PHP/Node/Python运行时、数据库版本(MySQL/MariaDB)和依赖。
2.2 网络与防火墙:配置安全组/iptables,开放必要端口(22/80/443/数据库端口仅限内网/白名单)。
3.1 文件备份:使用tar或rsync生成完整文件快照,例如:rsync -avz --delete /var/www/ user@hk-vps:/var/www/(先测试dry-run)。
3.2 数据库备份:mysqldump --single-transaction --master-data=2 -u root -p dbname > dump.sql,并校验md5或导入测试库验证一致性。
4.1 初次全量同步:用rsync做全量(带--delete确保两端一致),建议先做一次全量同步。
4.2 增量同步:部署cron定时rsync或使用双写/消息队列方式保持源与目标数据在切换前近实时一致。
5.1 证书迁移:将现有证书私钥与链导入目标VPS(注意权限600),或在目标服务器申请Let's Encrypt证书并预先验证域名所有权。
5.2 DNS TTL优化:提前将域名TTL调低(例如300秒)至少24小时,以便切换时DNS生效更快。
6.1 进入维护状态:在低峰时段通知用户并开启维护页面,停止接受写入(将应用切换为只读,暂停队列消费者)。
6.2 最终数据一致性同步:停止应用写入后,执行最后一次rsync与mysqldump导入:scp dump.sql hk:/tmp/ && mysql -u root -p dbname < /tmp/dump.sql;确认行数与表大小一致。
6.3 切换DNS:将域名解析A/AAAA记录指向香港VPS新IP,因TTL已降低,等待通常300秒~10分钟生效。
6.4 验证服务:使用curl -I -L http://你的域名 和 https 检查证书,登录后台核验业务数据与日志是否有错误。
7.1 监控与日志:观察监控指标(流量、错误率、数据库连接数)30~60分钟,确保稳定。
7.2 回滚步骤:若出现重大故障,立即将DNS指回原IP,并把目标VPS置为只读,随后排查并修复。记录回滚触发点与时间用于事后分析。
答:核心做法是先做全量备份与同步,然后在切换前将应用切换为只读/暂停写入,执行最后一次数据库导出与文件增量rsync并校验,最后再更新DNS并监控。需要使用--single-transaction导出大表、使用binlog或增量同步工具减少窗口期。
答:会有差异。CN2通常对内地优化,延迟和丢包较低;香港VPS访问性对全球用户更平衡。建议在迁移前做网络测速(ping/traceroute/iperf)并在目标VPS上部署CDN或配置回源策略以平滑过渡。
答:检查并优化DNS TTL恢复为合理值;保留一段时间的双向监控;定期备份与安全扫描;验证自动化部署(CI/CD)在新环境中可用;并记录迁移经验,完善应急预案与回滚脚本。