我的build议是采取一切备份,并在新的服务器上恢复。 即:
- 转储数据库并在新服务器上恢复它们
- 复制networking服务器,数据库,电子邮件configuration新的
当然,这需要一点点的停机时间。 为了缩短停机时间,您可以做一些事情:
- 为所有电子邮件数据执行以前的rsync,然后在configuration和testing的所有内容都停止在旧服务器上的服务之后,rsync仅更新新数据并启动新服务器。
- 使用mysql复制保持两台服务器上的数据,直到“切换”
- rsync方法可以与所有其他数据一起使用(甚至db,但我build议您使用转储或复制来最小化错误的select)。
另外请记住,这是一个需要仔细计划和执行的程序,否则可能会发生数据丢失。
您可能有兴趣探索使用FSArchiver的可能性, http: //www.fsarchiver.org/Main_Page
我通过反复试验学到的一些相关的东西(主要是错误):
- 当你走的时候logging下你的步骤,这样下一次你就有logging(下次总会有的)。 这样你就不会忘记任何步骤,并且允许别人也这样做。
- 如果您可以逐个切换组件,则诊断问题将更加容易。 例如,将邮件/数据库保留在原始服务器上,并将Web服务器移到新服务器。 如果您的应用程序无法轻松处理跨服务器,请跳过此操作,但如果您需要将系统扩展到多个服务器,则需要考虑这一点。 如果您需要最大限度地减less停机时间,此方法特别有用。
- 我不会尝试将原始数据库文件从一台服务器复制到另一台服务器,除非您确定数据库支持它。 如果你只有几个100MB的数据库,我只需在旧的服务器上创build一个转储,然后在新的服务器上恢复。 对于较大型的数据库来说,设置复制的速度会更快。
- 如果使用rsync或scp将文件从一台服务器复制到另一台服务器,请确保您使用的用户具有所有文件的读取权限。 例如,我曾经使用rsync从/ etc复制了一些文件,但没有读取某些文件的权限。 当我发现有些文件丢失的时候已经太晚了(旧的服务器被擦除了)。 从那时起,我一直使用tar作为旧服务器上的root来备份目录,然后使用rsync / scp tar归档。
如果你find了你的新供应商,你问他们他们喜欢这样做吗? 您可能想了解从/到环境的详细信息,包括硬件,以select最佳方法。
此外,询问移植的便利性和可用的支持可能会帮助您select新的提供商!