我怎样才能将一个巨大的mysql数据库从一台服务器移动到另一个mysql服务器

我怎样才能将一个巨大的mysql数据库从一台服务器移动到另一个mysql服务器

我有一个巨大的 mysql 数据库,大约 15G 大小。现在我想将数据库移动到另一台 mysql 服务器,通常的做法是导出 mysql 文件,然后将该文件导入目标服务器。但我发现这样做太慢了,而且在这个过程中会出现错误。有没有更好的方法?请告诉我。谢谢。

答案1

您可以将底层数据库文件复制到新服务器。例如,如果您的数据库文件位于 /var/lib/mysql。那么

tar -zcvf ~/database.tar.gz /var/lib/mysql/<database-name> # compress the data

然后将压缩文件复制到新服务器的 mysql 数据库位置。这会更快,而且您不需要使用 mysqldump。

答案2

我可以考虑两种将数据库迁移到新硬件且停机时间最短的选项。

1:使用复制:设置复制到新机器,然后将机器传播到主服务器并关闭旧数据库。我还没有用mysql做过这个,所以我不确定——它可能存在一些问题,但它对我来说与PostgreSQL完美地配合使用。

2:使用 rsync 进行基于文件系统的复制:

  1. 从旧机器 rsync 到新机器:rsync -rav /var/lib/mysql/ newmachine:/var/lib/mysql/。这将花费大量时间,但您不需要在第一次 rsync 期间关闭 mysql。
  2. 关闭旧机器上的 mysql
  3. 再次运行 rsync。这次它只会传输自上次 rsync 运行以来发生更改的文件,因此完成速度会更快。
  4. 在新机器上启动 mysql。

但是:如果您的机器有不同的操作系统、架构或 mysql 版本,您可能会遇到一些问题。例如,我确信不可能对 PostgreSQL 从 32 位到 64 位主机进行基于文件系统的复制。据我所知,mysql 允许这样做,但您仍然会遇到其他一些问题。

相关内容