从一台专用 Linux 服务器迁移到另一台?

从一台专用 Linux 服务器迁移到另一台?

我有一台运行 ubuntu server 9.04 的专用服务器,用于 Web、数据库和邮件。整个硬盘上大约有 5 GB 的数据。

我想将服务器迁移到更便宜的专用服务器提供商,但我不确定如何做到这一点。

  • 我可以克隆整个硬盘吗?硬件相关的文件/目录呢?
  • 或者也许有更理智的方法?
  • 未来的托管可能会有另一个版本的 ubuntu,所以我应该在迁移之前升级我们当前的服务器吗?迁移 apache、mysql 和 postfix 怎么样?

答案1

我的建议是备份所有内容,然后在新服务器上恢复。例如:

  1. 转储数据库并在新服务器上恢复
  2. 将网络服务器、数据库、电子邮件配置复制到新的服务器上

当然,这需要一点停机时间。您可以采取一些措施来缩短停机时间:

  1. 对所有电子邮件数据进行先前的 rsync,然后在完成所有配置和测试后停止旧服务器上的服务,仅 rsync 新数据并启动新服务器。
  2. 使用 mysql 复制功能在两台服务器上保留数据,直到“切换”时为止
  3. rsync 方法可以用于所有其他数据(甚至数据库,但我建议您使用转储或复制以尽量减少错误的选择)。

还要记住,这是一个需要仔细规划和执行的过程,否则可能会发生数据丢失。

答案2

您可能有兴趣探索使用 FSArchiver 的可能性,http://www.fsarchiver.org/Main_Page

答案3

通过反复试验(大部分是错误),我学到了一些相关知识:

  • 记录下你所做的步骤,这样下次做的时候就有记录了(总会有下一次)。这样你就不会忘记任何步骤,也允许其他人也这样做。
  • 如果您可以逐个切换组件,那么诊断问题将变得更加容易。例如,将邮件/数据库保留在原始服务器上,然后将 Web 服务器移动到新服务器。如果您的应用程序无法轻松处理服务器间事务,请跳过此步骤,但如果您需要将系统扩展到多台服务器,则需要考虑这一点。如果您需要最大限度地减少停机时间,此方法特别有用。
  • 我不会尝试将原始数据库文件从一台服务器复制到另一台服务器,除非您确定数据库支持这样做。如果您只有几百 MB 的数据库,我会在旧服务器上创建转储,然后在新服务器上恢复。对于较大的数据库,设置复制会快得多。
  • 如果使用 rsync 或 scp 将文件从一台服务器复制到另一台服务器,请确保您使用的用户对所有文件都有读取权限。例如,我曾经使用 rsync 从 /etc 复制一些文件,但没有读取某些文件的权限。当我发现一些文件丢失时已经太晚了(旧服务器已被清除)。从那时起,我总是在旧服务器上以 root 身份使用 tar 来备份目录,然后使用 rsync/scp 将 tar 存档复制过来。

答案4

如果您找到了新的提供商,您是否询问过他们喜欢如何做这件事?您可能希望了解从/到环境的详细信息,包括硬件,以选择最佳方法。

此外,询问迁移的简易程度和可用的支持可能会帮助您选择新的提供商!

相关内容