云服务器数据迁移怎么操作?一篇给站长和开发者的实操指南
旧服务器快到期、业务要扩容,或者想从一家云换到另一家,最怕的不是买新机器,而是数据迁移:网站文件漏了、数据库导入报错、DNS一切换就502。别问我是怎么知道的,这种坑踩一次就够。本文面向国内站长、开发者和中小企业用户,按“备份—传输—恢复—切换”四步讲清楚云服务器数据迁移怎么做,照着执行能少熬夜。
一、迁移前:先盘点,再备份
先别急着敲命令。把旧服务器上的东西列清楚:网站目录、数据库、Nginx/Apache配置、SSL证书、定时任务、环境版本(PHP/MySQL/Node)、域名解析TTL。我一般会先给旧机做快照,再把关键数据打包下载到本地或对象存储,做一份“异地备份”。迁移期间最忌讳只有一份数据。
# 看磁盘和目录大小,心里有数
df -h
du -sh /www/wwwroot/*
# 数据库先导出(示例)
mysqldump -u root -p --single-transaction --routines --triggers 数据库名 > db.sql
二、低峰传输:文件用rsync,数据库停写导出
文件多别用FTP硬拖,rsync支持断点续传和增量同步。第一次可以业务低峰先同步一遍,正式切换前再增量一次。数据库建议在低峰短暂停写后导出,避免迁移过程中产生新订单、新评论导致数据不一致。
# 旧机传到新机,先全量再增量
rsync -avz --progress /www/wwwroot/ user@新机IP:/www/wwwroot/
# 新机拉取数据库备份
scp user@旧机IP:/root/db.sql /root/
如果不想停机太久,可以先同步文件,数据库在切换窗口内停写5-10分钟,导出、导入、改配置,动作快一点。
三、新机恢复:环境对齐再验证
新机先装好和旧机接近的环境版本,别旧机PHP 7.4、新机直接上8.2,程序不兼容会当场教你做人。导入数据库、解压文件后,重点检查目录权限、伪静态规则、SSL证书路径、定时任务和防火墙端口。
mysql -u root -p 数据库名 < db.sql
chown -R www:www /www/wwwroot/你的站点
验证时别急着改DNS。可以先改本地hosts,把域名临时指到新机IP,或者用临时域名访问,逐项测试:首页、后台登录、支付回调、图片上传、伪静态、HTTPS。确认没问题再切解析。
四、切换DNS:TTL提前调低,旧机别急删
切换前24小时把域名TTL调低,比如300秒,这样切错还能快速回滚。切完解析后盯日志和监控,观察半天到一天。旧服务器至少保留3-7天,别一高兴就释放,万一有遗漏文件还能回去捞。别问我是怎么知道的。
新手容易犯的3个错误
- 只拷网站目录,不导数据库:页面能开但后台数据全空,等于白迁。
- DNS TTL没提前调低:切换后缓存不更新,用户一会儿新站一会儿旧站。
- 新机不验证就切解析:权限、伪静态、SSL没测,切完直接502或样式全丢。
解决方案推荐
如果你正好要换新机,可以看看沐雨云服务器(https://www.myyvps.com)。它提供高防云服务器,单机50-200G DDoS/CC防御,适合容易被攻击的站点;也有香港/美国/日本免备案VPS,采用BGP/CN2优质线路、纯SSD固态硬盘。2核2G轻量云12.8元/月起,支持支付宝/微信支付,个人博客、电商网站、游戏服务器、外贸独立站都能用。迁移前先领一台测试环境,恢复验证更稳妥。
总结
- 迁移前:盘点环境、快照+异地备份
- 传输中:rsync增量同步,数据库低峰停写导出
- 恢复后:环境对齐,改hosts逐项验证
- 切换时:提前调低TTL,保留旧机观察回滚
- 避坑核心:备份要验证,别急着删旧机



这一切,似未曾拥有