服务器数据迁移核心是“稳、全、可验证”,需做好全量备份、环境兼容性校验、迁移范围与方式明确三件事,执行中紧盯停写控制、分批断点、清洗映射、双向校验四大关键点,并通过灰度切流和保留旧服48小时确保割接安全。
服务器数据迁移不是复制粘贴就能搞定的事,核心是“稳、全、可验证”——既要保证数据不丢、不错、不乱序,又要尽量减少业务中断时间。
迁移前必须做三件事
tar 或 rsync --dry-run 验证路径;数据库用 mysqldump 或 pg_dump 导出并测试导入;配置文件单独打包(如 /etc/nginx, ~/.zshrc)| 类别 | 典型路径 | 是否必迁 | 推荐方式 |
|---|---|---|---|
| 用户项目/数据 |
~/projects/, ~/data/
|
✅ |
rsync -aP(保留权限+断点续传) |
| Conda 环境 | ~/miniconda3/ |
✅ |
conda env export > env.yml + 新机重建,或 conda-pack 打包 |
| Shell 配置 |
~/.zshrc, ~/.condarc
|
✅ |
rsync 直接同步 |
| 模型权重缓存 | ~/.cache/torch/hub/checkpoints/ |
✅ |
rsync(大文件建议加 --compress) |
| Docker 数据 | /var/lib/docker/ |
✅ | 停服务 → rsync -avxP → 软链接或改 daemon.json
|
执行时盯紧四个关键点
rsync --partial 或按主键 ID 分页迁移,记录已处理最大值便于续传CHECKSUM TABLE
割接上线不靠运气
先切少量流量到新服务器,跑通查询、写入、定时任务;确认无误后再全量切换。旧服务器至少保留 48 小时,作为紧急回滚通道。DNS 切换注意 TTL 缓存,应用层连接池需主动刷新。
不复杂但容易忽略。