单机游戏下载单机游戏下载基地
最新游戏|热门游戏|游戏大全|游戏专题

美国VPS怎么搬家

2026/11/14 10:22:29 来源:本站整理 编辑:飞翔小编

您的位置:首页 → 资讯教程 → 软件教程 → 美国VPS怎么搬家

【飞翔导读】美国VPS迁移不是复制文件加改 DNS,真正决定成败的是停机窗口、数据一致性、回滚预案和线路质量这四件事。本文用商品库里的真实价格算清迁移前后的成本账,给出可复制的同步与切换命令、每一环节的验收阈值,并写清什么情况下不该搬、搬错了怎么退回来,读完你就能判断这次迁移值不值得做、该按哪套步骤做。

一、迁移前先把账算清楚:搬一次要花多少钱

大部分人在这一步偷懒,结果是搬完之后才发现新机器根本装不下旧机器的数据。 迁移的第一笔账不是流量费,是"新机器的规格能不能吃下旧机器的负载",第二笔账是"停机窗口值多少"。

先把商品库里真实在售的机型摊开看。 以下价格与配置全部来自渠道库快照,采样时间为 2026-11-14 12:47,以官网当日显示为准:

机型 计费 折月价 内存 硬盘 带宽 月流量 每 GB 内存 每 GB 硬盘
LAX-STARTER 年付 200 美元 16.67 美元 2 GB 40 GB NVMe 2000 Mbps 5000 GB 8.33 美元 0.42 美元
LAX-MICRO 年付 400 美元 33.33 美元 4 GB 80 GB NVMe 4000 Mbps 10000 GB 8.33 美元 0.42 美元
LAX-MEDIUM 年付 800 美元 66.67 美元 8 GB 160 GB NVMe 10000 Mbps 20000 GB 8.33 美元 0.42 美元
LAX-LARGE 年付 1600 美元 133.33 美元 16 GB 320 GB NVMe 10000 Mbps 40000 GB 8.33 美元 0.42 美元
Residential-LARGE 年付 1660 美元 138.33 美元 16 GB 320 GB NVMe 10000 Mbps 40000 GB 8.65 美元 0.43 美元
IRVINE-PRO-MICRO 年付 550 美元 45.83 美元 4 GB 80 GB NVMe 4000 Mbps 10000 GB 11.46 美元 0.57 美元
RosCloud-03 月付 39.99 美元 39.99 美元 4 GB 80 GB 500 Mbps 3072 GB 10 美元 0.5 美元
RosCloud-05 月付 59.99 美元 59.99 美元 16 GB 240 GB 500 Mbps 5120 GB 3.75 美元 0.25 美元

查 spinservers 在售套餐与库存

看第一列和第二列的关系,你能立刻得出第一个决策点:同一条产品线里,LAX 与 Residential 两档的配置完全一样,差价只在 IP 类型和机房。 LAX-LARGE 折月 133.33 美元、Residential-LARGE 折月 138.33 美元,差价 5 美元一个月;同样是 16 GB 内存、320 GB NVMe 硬盘、10000 Mbps 带宽、40000 GB 月流量。如果你的站不需要住宅 IP,这 5 美元就是纯浪费;反过来如果你的业务依赖住宅 IP 的归属地识别,换 LAX 省下的钱也不值得。

第二笔账:硬盘单位成本。 这是迁移时最该算的一栏,因为"数据搬不搬得动"直接由它决定:

- LAX-Storage-500G:折月 33.33 美元、500 GB 硬盘,每 GB 硬盘 0.07 美元;

- LAX-Storage-1TB:折月 58.33 美元、1000 GB 硬盘,每 GB 硬盘 0.06 美元;

- 云途 HK.DS.S:800 元每月、128 GB 内存、6000 GB SAS HDD,每 GB 硬盘 0.13 元。

这里要先纠正一个容易踩的坑:商品库里 USD 和 CNY 是混排的。 LAX 系列和 RosCloud 系列用美元计价,云途系列用人民币计价,把 0.06 美元和 0.13 元直接比大小是错的,必须先统一货币再比。 但同一产品线内部的排序是清楚的:LAX-Storage 系列的硬盘单价在同一条线里是往下走的,1TB 档比 500G 档更低;内存这一栏结论相反,LAX-MEDIUM 每 GB 内存 8.33 美元、RosCloud-05 每 GB 内存 3.75 美元,同一台服务器跑服务,内存单位成本差了不止一倍。

第三笔账,也是最容易被忽略的一笔:停机窗口值多少钱。 用流量单价反推:

- LAX-MEDIUM 每 TB 流量 3.41 美元,LAX-LARGE 每 TB 流量 3.41 美元;

- 云途 DS.ES.C 每 TB 流量 17.92 元,云途 HK.DS.P 每 TB 流量 19.2 元。

同样是搬 1 TB 数据,LAX 档的流量费用约 3.41 美元,云途 DS.ES.C 约 17.92 元。 但这两组数字不能直接比大小——一个是美元,一个是人民币。 把这一点记清楚之后,你至少能确定一件事:在同一条产品线内部,流量单价的排序是稳定的。 LAX 系列的 LAX-MEDIUM 和 LAX-LARGE 每 TB 流量都是 3.41 美元,往上扩容不涨流量单价;云途系列的 DS.ES.C 是 17.92 元、HK.DS.P 是 19.2 元、DS.ES.D 是 23.04 元,同一条线上,配置越高流量单价越高,因为总流量配额没有跟着翻倍。所以"我买大内存的,流量应该更划算"这个直觉在按量计费的线里是错的。

第四笔账:迁移期间两台机器并行要付双份钱。 迁移窗口期内新旧机器同时在线是必然的。按月付机型算,迁移窗口 3 天,两台机器并行 3 天,额外支出大约相当于一台机器月价的五分之一——不管你是 LAX-MEDIUM 这一档(折月 66.67 美元)还是 LAX-STARTER 这一档(折月 16.67 美元),并行期的比例是同一个。这笔钱要提前列进预算,它不大,但漏掉它会让迁移的实际支出比预期高一截。

结论先给出来:迁移本身不贵,贵的是"迁错了"。 所以下面几节的每一个阈值,都是为了让你在迁错之前停下来。

二、迁移前必须做的四件事,缺一件都别动手

很多翻车案例的根因不是技术问题,是准备不足。 迁移前把这四件事做完,任何一步没做就停手。

第一件:盘点数据,明确"什么是要搬的、什么是不搬的"。 打开旧机器,把网站目录、数据库、上传的附件分开统计:

du -sh /var/www/html/            # 网站目录
du -sh /var/lib/mysql/           # 数据库目录
du -sh /var/www/html/uploads/    # 上传附件(通常最大)
df -h                            # 磁盘总览,确认哪些目录在撑空间

为什么要分开统计? 因为三者可以用完全不同的方式搬:网站目录用 rsync 增量同步,数据库用 mysqldump 导出导入,上传附件用 rsync 而且要重点关注断点续传。混在一起打包成一个 tar 传过去是最慢也最容易出错的做法——几百 GB 的 tar 包一旦传到一半断掉,你得从头再来。

第二件:确认新机器的规格真的装得下。 拿第一步的统计结果对照新机器:

- 数据库文件 30 GB、新机器硬盘 40 GB → 装得下,但没有回滚空间,一旦要回滚就没地方放旧数据。这种情况建议直接选 LAX-Storage-500G 这一档(折月 33.33 美元、500 GB 硬盘、每 GB 硬盘 0.07 美元),容量留出足够冗余;

- 上传附件 500 GB → 新机器硬盘至少要 1000 GB,LAX-Storage-1TB 折月 58.33 美元、硬盘单价每 GB 0.06 美元,是这个规格里最低的;

- 旧机器内存 4 GB、新机器 4 GB → 刚好持平,迁移期间两台同时跑数据库会导致内存打满。此时要么把新机器升到 8 GB 档(LAX-MEDIUM 折月 66.67 美元),要么把迁移窗口压到 1 小时内完成。

第三件:写好回滚方案,而且要演练过。 回滚方案至少包含三件事:旧机器在切换后至少保留 7 天不销毁、DNS 的 TTL 在切换前 48 小时改到 300 秒、旧机器上的服务要保持可直接启动状态。"保留旧机器"这条没有例外。 很多团队切换完当天就退掉了旧机器,两天后发现新机器跑不起来新代码,只能重新从零恢复。

第四件:把依赖清单列出来。 迁移不只是搬文件,还包括这些容易漏的:

crontab -l > /root/crontabs.txt        # 定时任务
ls /etc/cron.d/                          # 系统级定时任务
supervisorctl status                     # 进程守护配置
iptables -S > /root/iptables.txt        # 防火墙规则
crontab -l | grep -E 'certbot|acme'    # 证书签发续期任务

zenlayer 官网机型与实时报价

证书是最容易漏的一项。 如果你的站点用 Let's Encrypt,续期任务在旧机器上,新机器没有对应任务,证书到期那天全站 HTTPS 失效。这条不漏,前面所有准备都白做。

三、数据同步怎么做:rsync 增量同步是唯一正确解法

同步方案只有一个原则:先增量同步大部分数据,最后再切一次增量,把停机窗口压到最短。 下面是可以直接照抄的命令。

第一步:全量同步(不停机)。 在新机器上执行,注意冒号语法和末尾斜杠:

rsync -avz --progress --exclude='*.sock' --exclude='*.pid' \
  root@旧机器IP:/var/www/html/ /var/www/html/

几个参数必须理解再用:

- -a 保留权限、属主、时间戳,不用 -a 会导致权限错乱,网站目录变成 755 或 777 之后反而更乱;

- -v 显示详细过程,-z 传输时压缩,网页文件和数据库导出文件压缩比很高,-z 通常能省三到五成带宽和时间;

- --exclude='*.sock' 和 --exclude='*.pid' 排除运行时文件,这两个是 Unix socket 和进程 ID 文件,搬过去也是垃圾,还会占空间。

第二步:数据库用 mysqldump 导出。 不要直接复制 /var/lib/mysql/,不同版本的 InnoDB 数据字典格式有差异,直接拷目录在版本不一致时会报错。正确做法:

# 旧机器上导出
mysqldump --single-transaction --quick --routines --triggers \
  --default-character-set=utf8mb4 dbname | gzip > /tmp/db.sql.gz

# 传到新机器
scp /tmp/db.sql.gz root@新机器IP:/tmp/

# 新机器上导入
zcat /tmp/db.sql.gz | mysql -u root -p dbname

--single-transaction 是 InnoDB 表的一致性快照,不会锁表,在线导出时业务可以继续跑。 MyISAM 表不支持这个参数,那类表需要加 --lock-tables,会短暂锁表,务必在低峰期做。

第三步:校验,不是靠感觉判断"导进去了"。 要用数字对:

# 统计文件数,对比两边
find /var/www/html -type f | wc -l

# 数据库两边各数一次行数
mysql -e "SELECT COUNT(*) FROM wp_posts;"
mysql -e "SELECT COUNT(*) FROM wp_options;"

旧机器和新机器各跑一次,结果必须完全一致。 行数不一致就说明导入有问题,这时候还没切 DNS,重做一次成本极低;切了 DNS 再发现,数据写入已经开始分叉,修复代价成倍上升。

第四步:增量同步(准备停机时)。 距离计划切换时间还有几十分钟时,再跑一次:

rsync -avz --progress --delete \
  --exclude='*.sock' --exclude='*.pid' \
  root@旧机器IP:/var/www/html/ /var/www/html/

--delete 这一轮要加,它会删除目标端多出来的文件。 第一轮不加是正确的——那时目标端还有旧数据,多删会出事;最后一轮加是必须的,否则前面测试时产生的测试文件会留在新机器上。

第五步:停机后的最终同步。 这一轮通常只有几十 MB 到几 GB,取决于上传附件目录的最后修改量:

# 停掉写入(关键)
systemctl stop php-fpm nginx mysql
rsync -avz --progress --delete root@旧机器IP:/var/www/html/ /var/www/html/
# 重新导出并导入数据库
mysqldump --single-transaction --quick --routines --triggers \
  --default-character-set=utf8mb4 dbname | gzip > /tmp/db_final.sql.gz
scp /tmp/db_final.sql.gz root@新机器IP:/tmp/
zcat /tmp/db_final.sql.gz | mysql -u root -p dbname
systemctl start mysql php-fpm nginx

先停写入再同步,这是唯一能保证数据一致的顺序。 先同步再停服务,中间新产生的数据会丢。

停机时间怎么估。 停机窗口约等于最终 rsync 传输时间加上数据库导出传输导入时间。按每 100 MB 每 30 秒估算(普通跨境链路),500 GB 的最终同步约 42 小时——这说明大站必须分多次增量同步,最后这一轮只同步最后几分钟的变更量,不要指望最后一次 rsync 就把所有东西搬完。

顺便提一句带宽这件事。 LAX 系列带宽标称 2000 到 10000 Mbps,RosCloud 系列标称 500 Mbps,云途系列 1000 到 2000 Mbps。端口上限不等于实际吞吐,你最终能跑到多少取决于链路。用 iperf3 在两台机器之间实测一次,比看标称值有用得多:

查 goodlyclouds 在售套餐与库存

# 新机器上起服务端
iperf3 -s
# 旧机器上跑客户端
iperf3 -c 新机器IP -t 30

四、DNS 切换:TTL 是你唯一的止损窗口

DNS 切换的原理很简单:全世界的 DNS 服务器会缓存你的解析结果,缓存没过期之前它们不会去问新的权威服务器。所以你唯一能控制的就是"缓存多久"。

切换前 48 小时,把 TTL 改到 300 秒。 在域名服务商后台,或者直接改权威 DNS 的记录:

# 查看当前 TTL
dig 你的域名 A +noall +answer

看到 TTL 是 3600 或更长,就现在去改。 这一步是整个迁移里唯一需要提前两天做的动作,也是唯一决定了"回滚要等多久"的动作。

切换本身其实不是改 DNS,而是先在客户端做一次本地解析验证。 很多人直接改 DNS 然后祈祷,实际上应该先验证新机器能独立扛住全部流量:

# 在本地 hosts 里写死新 IP,访问新机器
echo "新机器IP 你的域名" >> /etc/hosts
curl -I https://你的域名

这一步能提前暴露 90% 的问题——证书没装、数据库连不上、防火墙没开 443、目录权限错了。hosts 生效只影响你这台机器,DNS 还没动,真实用户完全不受影响。

然后改 DNS 记录,把 A 记录指向新 IP,TTL 保持 300 秒。

切换后监控这三项:

指标 阈值 超标怎么办
新机器 5xx 比例 连续 5 分钟超过 1% 立刻把 A 记录改回旧 IP
新机器 CPU 使用率 持续超过 85% 说明配置不够,先降缓存命中率再看是否回滚
旧机器访问量 5 分钟内归零 说明 DNS 已全量生效,可以进下一步

sakuraclouds 官网机型与实时报价

第三个指标是回滚的触发依据。 在旧机器访问量归零之前,不要动旧机器的任何东西。

最后说清楚代价。 TTL 300 秒意味着全球 DNS 生效最多需要 5 分钟,但实际上不同递归服务器的缓存刷新策略不同,完全生效可能要 30 分钟到 2 小时。这期间部分用户走新 IP、部分走旧 IP,所以新机器必须和旧机器跑同一份数据——这就是为什么最终同步必须停写。

回滚窗口是多久? 改回旧 IP 后同样要等 TTL 过期,最坏情况 2 小时。所以从切换完成算起,你至少有 2 小时的观察期,旧机器必须活着。

五、验收阈值:迁移成功的判定标准必须是数字

"看起来正常"不是验收标准。 迁移完成的判定必须是具体的数字,全部达不到就是没迁成功。

下面这组阈值可以直接用:

验收项 通过阈值 怎么测
首字节时间(TTFB) 小于 300 毫秒 curl -o /dev/null -s -w "%{time_starttransfer}\n" https://你的域名
1 MB 文件下载 小于 2 秒 curl -o /dev/null -s -w "%{speed_download}\n" https://你的域名/test.zip
页面 5xx 比例 0 curl -s -o /dev/null -w "%{http_code}\n" 连续 20 次
数据库记录数 与旧机器完全一致 SELECT COUNT(*) FROM 关键表 两边对比
内存谷值 迁移后 1 小时内 available 内存不低于 15% free -m 连续采样
磁盘使用率 低于 80% df -h
证书链 全链验证通过 openssl s_client -connect 你的域名:443 -servername 你的域名
定时任务 新机器 crontab 条目数与旧机器一致 crontab -l 两边对比

查看 serverfield 当前月价与库存

逐项测一遍,任何一项不达标就回滚。 特别是内存谷值这一项——很多站点迁移完当天没事,第三天开始报 502,原因是 PHP-FPM 进程数按旧机器的内存算的,新机器内存一样时没问题,一旦有后台任务挤进来就崩。

测法:

# 连续 20 次请求统计状态码
for i in $(seq 1 20); do
  curl -s -o /dev/null -w "%{http_code} %{time_starttransfer}\n" https://你的域名
done

# 内存谷值采样,每 10 秒一次
for i in $(seq 1 30); do
  free -m | awk '/Mem:/{print $7}'
  sleep 10
done

内存的 15% 这条线是这么来的:一台 8 GB 的机器,available 低于 15% 就是 1.2 GB 以下,Linux 的 page cache 加上 PHP-FPM、MySQL、Nginx 三套进程,1.2 GB 已经是红线。

这些阈值在迁移前也要先测一遍旧机器。 旧机器的 TTFB 如果本来就是 800 毫秒,那新机器低于 300 毫秒是做不到的,验收标准应该按旧机器的基线加上改进幅度来定,而不是套用一个绝对值。

还有三项非性能验收,也要过:

- 邮件能发出去。 如果站点有发信功能(注册验证、订单通知),在新机器上发一封测试邮件,确认 SPF、DKIM 记录指向的是新 IP;

- 后台任务跑得起来。 手动触发一次关键定时任务(清缓存、生成报表、跑对账),确认不报错;

- 备份能恢复。 在新机器上真的做一次恢复演练,把备份文件解到临时目录打开看看。备份文件存在不等于能恢复,这两件事在实践中差别很大。

六、什么情况下不该做这次迁移(以及替代方案)

迁移不是免费的,理由必须基于公开事实,不能靠感觉。 下面这四种情况,做迁移的收益低于成本。

第一种情况:旧机器的线路已经是 CN2 GIA 或 9929 级别的,回迁目标机房没有明确更优的线路。 商品库里 Los Angeles China Unicom-Premium 是年付 2500 美元、折月 208.33 美元、带宽 100 Mbps 的机型,它的定价本身就说明这条线路是稀缺资源。如果你现在用的就是类似级别的线路,迁到一个普通机房大概率是降级。

替代方案:留在原地做垂直扩容。 LAX-MEDIUM 折月 66.67 美元是 8 GB 内存 160 GB NVMe 10000 Mbps 带宽 20000 GB 流量;LAX-LARGE 折月 133.33 美元是 16 GB 内存 320 GB NVMe 10000 Mbps 带宽 40000 GB 流量。同一产品线往上走一档,内存翻倍、流量翻倍,硬盘单价不变,线路规格也不用变。 垂直扩容的停机时间通常只有 5 到 10 分钟(重启加挂载),而且完全不涉及 DNS 和数据搬迁。

第二种情况:旧机器是年付且还有很久才到期,而你迁过去的机器是月付。 商品库里 LAX 系列全部是年付(200 到 2500 美元不等),折月价从 16.67 美元到 208.33 美元;RosCloud 系列是月付(19.99 到 69.99 美元),云途系列也是月付(350 到 1500 元)。年付机器的剩余价值是实打实的沉没成本。 如果你的旧机器年付还剩 10 个月,迁移意味着放弃 10 个月的已付价值,去换一个可以随时退出的新机器——除非旧机器已经不能胜任,否则这笔账通常算不过来。

替代方案:先在旧机器上扩容应急,撑到年付到期再决定。 很多"必须马上换"的紧迫感,是配置不够造成的临时焦虑,不是机器本身该换了。

第三种情况:你需要的是 IP 类型的改变,而不是服务器位置的改变。 Residential 系列(Residential-STARTER 折月 21.67 美元、Residential-MEDIUM 折月 71.67 美元、Residential-LARGE 折月 138.33 美元)与 LAX 同规格机型的差价只有 5 美元左右,但 IP 归属完全不同。如果你的诉求是住宅 IP 或双 ISP 属性,在同一机房内换套餐比整机搬迁便宜得多、风险也小得多——数据不用动,DNS 不用改。

替代方案:查一下你的目标商家在同一机房内是否有对应 IP 类型的套餐。 商品库里的干杯cloud 就明确写着"美西 AT&T 原生住宅宽带独立 IP",goodlyclouds 提供"美国双 ISP 与英国原生 IP 云服务器",这类产品线本身就覆盖了 IP 属性的需求。

第四种情况:你的站点访问量很小,迁移收益抵不上操作风险。 LAX-STARTER 折月 16.67 美元、2 GB 内存、40 GB NVMe、2000 Mbps 带宽、5000 GB 月流量,每 GB 内存 8.33 美元、每 TB 流量 3.41 美元。这个配置的机器跑个人博客或日均几百 PV 的小站毫无压力。为这种规模做迁移,出错的概率远大于性能收益。

替代方案:按月扩容或维持现状,把精力放在别处。 商品库里的 RosCloud-01 是 19.99 美元每月、1 GB 内存 20 GB 硬盘 1024 GB 流量,每 GB 内存 19.99 美元——单位成本是 LAX 系列的 2.4 倍,这正好说明低端小站的溢价空间在哪,但也说明对这种规模来说,换机器省的钱本来就有限。

查看 干杯cloud 当前月价与库存

这四种情况的共同点:迁移的前提是"有具体的、可量化的改善"。 没有具体改善目标就动手,是把可预测的运维风险换成不可预测的收益。

七、迁移时最容易漏掉的三类东西

前面六节讲的是数据和 DNS,但真正让迁移后"看起来有问题"的,通常是这三类没搬过去的东西。

第一类:会话与缓存。 PHP 的会话文件默认在 /var/lib/php/sessions/,Redis 的持久化文件在 /var/lib/redis/dump.rdb。这些丢了会怎样? 用户全部被登出(如果 session 没迁)、页面出现大量 500(如果队列或缓存里的任务状态丢了)。处理办法:

# 会话目录一起同步
rsync -avz root@旧机器IP:/var/lib/php/sessions/ /var/lib/php/sessions/
# Redis 停机后再拷持久化文件
redis-cli BGSAVE
scp root@旧机器IP:/var/lib/redis/dump.rdb /var/lib/redis/
systemctl restart redis

如果你的站点是登录态为主,必须迁会话。 否则迁移完成的第一小时,会看到登录量骤降、订单转化率掉一截,而且很容易被误判成"新机器性能不行"。

第二类:邮件与短信通道。 这类问题通常在迁移后几小时到几天才暴露,因为审核、发信是异步的:

# 检查本机发送队列有没有积压
postqueue -p
# 测试本机发信
echo "test" | mail -s "迁移测试" your@邮箱

如果你的域名有 SPF 记录指向旧 IP,必须同步改到新 IP。 否则新机器发出的邮件会进垃圾箱。这一项属于"迁移后 72 小时内必须复查"的清单,因为它影响的是你的业务结果而不是技术指标,不主动查根本发现不了。

第三类:第三方服务的白名单。 你的网站如果调用了外部 API,对方通常按来源 IP 做白名单或限流。换 IP 之后这些调用会静默失败——接口返回 403 或超时,而你的监控往往只监控自己的页面,不监控对外调用。

# 找出代码里所有对外请求的域名
grep -rn "api\.\|https://" /var/www/html --include="*.php" --include="*.js" | grep -v "jquery\|bootstrap" | head -30

查 cubecloud 在售套餐与库存

逐个去对方的控制台把新 IP 加进白名单。 这一步没有任何工具能替你做,只能人工过一遍。

八、迁移过程中最常见的报错和对应处理

把这几个报错记住,能省掉大半的排查时间。 以下都是实际迁移中会遇到的高频错误。

报错一:rsync: change_dir "..." failed: No such file or directory (2)

原因:新机器上的目标目录不存在。处理:先建目录再同步:

mkdir -p /var/www/html/uploads
rsync -avz root@旧机器IP:/var/www/html/ /var/www/html/

报错二:mysqldump: Got error: 1044: Access denied for user

原因:数据库账号没有导出权限,或者没有 LOCK TABLES 权限导致 --lock-tables 被拒。处理:用 root 账号导出:

mysqldump -u root -p --single-transaction --quick --routines --triggers \
  --default-character-set=utf8mb4 dbname > /tmp/db.sql

报错三:导入时报 ERROR 1064 或字符集乱码

原因:导出时没指定字符集,或者文件是 UTF-8 而导入按 latin1 处理。处理:导出和导入两端都显式指定 utf8mb4:

mysqldump --default-character-set=utf8mb4 ... | gzip > /tmp/db.sql.gz
zcat /tmp/db.sql.gz | mysql --default-character-set=utf8mb4 -u root -p dbname

报错四:同步完之后网站 500,日志里报 Permission denied

原因:rsync 用了 -a 但目标目录属主和旧机器不同。处理:对齐属主和权限:

chown -R www-data:www-data /var/www/html/
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

报错五:切 DNS 之后 HTTPS 报证书错误

原因:新机器上装的证书是别的域名的,或者证书链文件没配全。处理:用 openssl 直接看服务端的证书:

openssl s_client -connect 你的域名:443 -servername 你的域名 | openssl x509 -noout -dates -subject

报错六:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

原因:新机器上已经有服务占着 80 端口。处理:查出来是谁占的:

ss -tlnp | grep ':80'

报错七:rsync 传大文件传到一半断了,重传要从头开始

原因:rsync 断点续传依赖 --partial,默认不保留部分文件。处理:加这两个参数:

rsync -avz --partial --progress --timeout=600 \
  root@旧机器IP:/var/www/html/ /var/www/html/

报错八:迁移后站点能访问,但数据库偶尔报 "MySQL server has gone away"

原因:MySQL 的 wait_timeout 比 PHP-FPM 的请求周期短,长请求被数据库主动断开。处理:调整超时并启用持久连接:

SET GLOBAL wait_timeout = 28800;

野草云 官网机型与实时报价

; /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
wait_timeout = 28800
max_allowed_packet = 64M

九、给四类人的具体迁移方案

读完前面的判断标准,最后一步是"那我到底怎么搬"。 按你的实际情况对照下面四条,别再自己从零比价。

第一类:个人站长、小型博客,月 PV 一万以内。 你的机器大概率是 1 到 2 GB 内存这一档,RosCloud-01(19.99 美元每月、1 GB 内存 20 GB 硬盘 1024 GB 流量)或 LAX-STARTER(年付 200 美元、折月 16.67 美元、2 GB 内存 40 GB NVMe、2000 Mbps、5000 GB 流量)这一级。建议方案:如果当前机器线路能用就不要迁,只做两件事——把 TTL 降到 300 秒、把备份做好。 真要迁,选 LAX-STARTER 这个年付档,按上面的四步走,全量 rsync 加一次停写同步,停机窗口控制在 15 分钟以内。年付一次性支出 200 美元,折合每月 16.67 美元,比同配置月付机型便宜,换来的是一年不用再操心续费。

第二类:做外贸独立站或跨境电商,需要多 IP 和稳定线路。 你的首要诉求是线路和 IP 属性,不是最低价。建议方案:优先看 Residential 系列,Residential-MEDIUM 折月 71.67 美元、8 GB 内存 160 GB NVMe 10000 Mbps 20000 GB 流量、每 TB 流量 3.67 美元。 同配置下 Residential-LARGE(折月 138.33 美元、16 GB 内存 320 GB)比 LAX-LARGE(折月 133.33 美元)只贵 5 美元,买住宅 IP 的边际成本就是这么低,没有理由为此去跑一次整机搬迁。 迁移时按上面第三节的 rsync 增量同步走,数据库记得用 mysqldump 而不是拷目录。

第三类:跑 SaaS、API 或有后台系统的技术团队,需要保证迁移期间不丢单。 你的核心指标是停机窗口和回滚速度。建议方案:选 LAX-MEDIUM(折月 66.67 美元、8 GB 内存 160 GB NVMe 10000 Mbps 20000 GB 流量,每 TB 流量 3.41 美元)作为目标机,因为它比 LAX-LARGE 便宜一半,配置对多数 API 服务够用。 迁移按"全量同步加三次增量同步加一次停写最终同步"执行,把最终同步的变更量压到最小。旧机器切换后保留 14 天不是 7 天,你这个体量丢一单就是真金白银。

第四类:做数据存储、镜像分发、下载站这类吃流量的业务。 你的采购逻辑完全反过来——看的是每 GB 硬盘和每 TB 流量,不是内存。建议方案:LAX-Storage-1TB,年付 700 美元、折月 58.33 美元、8 GB 内存 1000 GB 硬盘、10000 Mbps 带宽 15000 GB 流量,每 GB 硬盘 0.06 美元、每 TB 流量 3.98 美元,是商品库里这个规格最便宜的组合。 同一条 LAX 产品线里的 LAX-Storage-500G 是每 GB 硬盘 0.07 美元、每 TB 流量 3.41 美元,容量翻倍而硬盘单价更低,说明这条线的存储型号是刻意按容量分级的。反过来,云途 HK.DS.S 是 800 元每月、128 GB 内存、6000 GB SAS HDD、2000 Mbps 带宽、40000 GB 流量,每 GB 硬盘 0.13 元、每 TB 流量 20.48 元,它的定位是大内存加大容量、存储介质是 SAS HDD 而不是 SSD,用来做冷数据存储可以,用来做热数据要留意介质差异。

最后三条通用原则。 第一,迁移前在目标机器上把新代码跑通一遍,别让"迁移"和"升级版本"这两件事同时发生。第二,迁移窗口避开周一上午和周五下午,避开你的业务高峰。第三,迁移完成后 72 小时内不要下线旧机器,且不要在旧机器上做任何改动,让它保持一个干净的可回滚状态。

查 isvoro 在售套餐与库存

一件必须说清的事:以上全部价格与配置来自渠道库快照,采样时间 2026-11-14 12:47,库存与报价随时会变,以商家页面当日显示为准。 下单前请确认三件事——是否支持按月付费、退款窗口是多久、流量超额是怎么计费的。

按你的情况,下一步该看哪家

上面讲的是判断标准,但多数人最后还是想问一句「那我该买谁」。按你的实际情况对照下面几条,直接去看对应的机型页比继续比价更快:

价格与库存以商家页面当日显示为准,下单前建议先确认退款窗口与是否支持按月付费。

十、常见问题

问题一:迁移必须停机吗? 业务允许短暂不可用就必须停写同步;不允许停机的场景(比如后台系统),可以用双写或数据库复制方案,代价是复杂度高很多。本文讲的是最通用的"短暂停机加快速回滚"方案,绝大多数站点停机 15 分钟以内是可以接受的。

问题二:DNS 生效要多久? TTL 300 秒是理论下限,实际完全生效通常要 30 分钟到 2 小时,取决于各递归服务器的缓存刷新策略。这段时间新老 IP 都在被访问,所以数据必须一致。

问题三:能不能不换 IP,只换配置? 能,这就是垂直扩容,停机通常只有 5 到 10 分钟,而且不用动 DNS。如果你的诉求只是配置不够,优先考虑这条路径。

问题四:旧机器和新机器不在同一个机房,会有问题吗? 会有影响但可控。跨机房迁移时 rsync 速度取决于两地链路,务必先用 iperf3 实测带宽,不要按端口标称值估。LAX 系列标称 2000 到 10000 Mbps、RosCloud 标称 500 Mbps,跨机房实测通常远达不到标称值。

问题五:中途失败了怎么办? 立刻把 A 记录改回旧 IP,等 TTL 过期(最长 2 小时),旧机器因为一直保持可启动状态,切回即可恢复服务。这就是"旧机器保留 7 天"这条规则存在的全部理由。

问题六:需要迁数据库吗,还是可以直接连旧数据库? 短期可以让新机器连旧数据库的 IP,省一次数据迁移。但这是技术债:旧数据库一停机新机器就全挂,而且旧机器必须保持开机,等于两台机器的成本一分都省不掉。除非你就是要过渡几天,否则不要这么干。

问题七:迁完发现性能不如以前,怎么排查? 按这个顺序:先看 TTFB(网络和 PHP 启动耗时),再看内存谷值(PHP-FPM 进程数配置),再看磁盘 IO 等待(老机器用的是机械盘、新机器是 SSD 的话这里应该更好)。如果 TTFB 从 300 毫秒涨到 800 毫秒但 CPU 和内存都不满,那问题大概率在网络链路,不在机器配置。

问题八:迁移窗口选在半夜两点,这个决定对吗? 不一定。如果你的用户主要在北美,白天可能比半夜更合适;如果用户在国内,半夜同样要选在用户睡觉的时段。用你的访问日志看真实的高峰分布,而不是凭直觉。

问题九:rsync 传了 300 GB 还要再传一遍,是不是很浪费时间? 这正是要分多次增量同步的原因。每 2 到 3 小时跑一次增量,最后一次停写同步只传几分钟的变更量,总流量比一次性传输小得多。

问题十:迁移完怎么确认旧机器可以安全下线? 三个条件同时满足:旧机器访问量连续 7 天归零、备份在新机器上做过一次成功的恢复演练、新机器的监控覆盖了全部关键指标。三条都满足才下线,只满足一条就再等等。

飞翔声明:飞翔网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

评论:0 次

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 喜欢
  • 0 高兴
  • 0 鬼脸
  • 0 呵呵
  • 0 无聊
  • 0 伤心

相关新闻

网友评论

评分
★
★
★
★
★
力荐
选择头像:
10
999+人评分
★★★★★
★★★★
★★★
★★
★
查看更多 >

魔兽世界Dota式击杀音效插件PVPSound

点击进入 立即下载

关于飞翔 | 联系我们 | 大事记 | 下载帮助(?) | 广告联系 | 版权声明 | 网站地图 | 友情链接

Copyright 2010-2025 单机游戏下载 (R) 版权所有 飞翔下载所有游戏及软件下载资源来源互联网,并由网友上传分享。如有侵权,请来电来函告之。
飞翔忠告:抵制不良色情、反动、暴力游戏 合理安排游戏时间 享受健康生活 鄂公网安备:42011102003115号 【鄂ICP备17000818号-1】