将整个服务器数据移动到另一台服务器

将整个服务器数据移动到另一台服务器

我想问一下这是否可行。我最近为我的网站订购了一台新的专用服务器。该服务器与当前服务器略有不同。两者都是四核至强,不同之处在于当前服务器是 500GB 硬盘 - 新的是 160GB 硬盘(但我没有用掉 50GB)。接下来是内存,旧服务器是 24GB,新的是 12GB RAM。两者都是 Centos 5.6,并使用 yum 更新更新了补丁。

我想知道是否可以备份和恢复所有内容,包括 nginx、php53u-fpm、mysql,包括所有配置和数据库 + 网站文件。是否可以毫无问题地备份和恢复?

我希望一次性备份所有内容(而不是逐一备份然后逐一导入)。

答案1

答案是,不!

移动诸如 nginx、php 等东西并不是一个好主意。您最终会得到一个损坏的 RPM 数据库(假设您已通过 rpm 安装了这些应用程序),并且您可能会意外覆盖现有的配置文件(例如 passwd/fstab 等)。尝试找到执行此操作的快捷方式只会导致浪费更多时间试图将东西拼凑在一起。

迁移的最佳方法是检查旧服务器,看看您真正需要移动哪些文件。应用程序的安装方式应与在旧机器上安装的方式相同,yum install 或其他方式。如果可能,尽量保持相同的主要补丁级别,以避免同时出现新版本和新服务器以进行故障排除。对于要复制的文件,找到您需要的文件应该并不难,在 nginx/php 中应该只有配置文件、附加的 php/pear 模块,当然还有您要复制的 Web 应用程序树。要迁移 MySQL 数据库,请使用 mysqldump 并在远程机器上恢复转储,如果您已自定义 my.cnf,请确保也复制该文件。

我确信我忘记了此列表中的某些内容,但您已经了解了概念,只需有条不紊地完成您需要做的事情即可。尽可能提前做好准备,在切换到新机器时,只需复制新数据库,无论需要刷新什么文件,配置文件都应该已经到位。

答案2

因此,如果你有一台远程机器,请获取一台用于准备硬盘的服务器,将新硬盘安装到 Linux 机器的 /mnt 上

然后在您当前的机器上执行以下操作:

 find / -xdev | ssh urname@urLinuxMachineToBackup  "cpio -pm /mnt"

这会将旧硬盘上的所有内容以及所有文件权限复制到新硬盘上(克隆您的机器)。

由于两台机器都已在运行,因此无法直接克隆它们。您至少需要另一台虚拟机并访问主机。

答案3

学习使用“tar”。它用于创建备份/存档。

(提示:在您的旧主机上创建一个“备份”目录,将您想要保留的内容(配置文件、数据、数据库等)复制到该目录中,创建该目录的存档(使用 tar),将其通过 ftp/scp 传输到您的新主机,解压,移动文件,获得主要胜利等。)

相关内容