【问题标题】:Migrate large database from MySQL 8 to MariaDB将大型数据库从 MySQL 8 迁移到 MariaDB
【发布时间】:2020-06-26 06:44:21
【问题描述】:

我需要一个解决方案来将大型数据库从 MYSQL 8 迁移到 MariaDB(任何版本,但最好是 10.4)
我已经搜索了 MariaDB 网站,并且我已经对这个主题进行了谷歌搜索,但我还没有找到任何东西。
不幸的是,运行 mysqldump 的解决方案在我看来不是很可行,因为我必须迁移的数据库至少有 40 GB 大(物理磁盘空间)。

【问题讨论】:

  • 这可能需要一段时间,但为什么转储不可行,40 GB 对今天的硬盘大小来说不是问题?
  • 您声称您没有找到任何东西,但您显然已经找到了有关 mysqldump 的信息。也许您想重新表述这个问题并询问您的具体需求(例如,通过慢速/不可靠的网络转储大型数据库,几乎满盘......无论如何)。
  • 40GB 以上是文件系统上文件的大小,一个 mysqldump 将导致单个文件大约 150-160GB
  • 对,这大约是我在工作 PC 中进行的计划备份副本的大小。在您的情况下,这是一个需要解决的问题,因为...?

标签: mysql mariadb


【解决方案1】:

一般来说,MariaDB 被设计为 MySQL 的替代品。

不幸的是,自 MySQL 8.0 以来,不可能再简单地用 MariaDB 替换 MySQL 并使用与以前相同的数据文件。

从 MySQL 8.0 或更高版本迁移到 MariaDB 的唯一方法是使用 mysqldump

参考这里:https://mariadb.com/kb/en/upgrading-from-mysql-to-mariadb/

如果您使用的是 MySQL 8.0 或更高版本,则必须使用 mysqldump 将数据库移动到 MariaDB。

我想到的另一个解决方案是从 MySQL 8.0 降级到 MySQL 5.7 - 不幸的是,这也是不可能的:

不支持从 MySQL 8.0 降级到 MySQL 5.7,或从 MySQL 8.0 版本降级到以前的 MySQL 8.0 版本。唯一受支持的替代方法是恢复升级前的备份。因此,您必须在开始升级过程之前备份您的数据。

https://dev.mysql.com/doc/refman/8.0/en/downgrading.html

我认为你必须花时间去mysqldump

对不起 m8。

【讨论】:

    【解决方案2】:

    A 计划:

    mysqldump -h mysql_8_host ... | mysql -h mariadb_10_host ...
    

    这样可以避免实例化您所说的可能为 160GB 的中间文件。

    B计划:

    mysqldump -h mysql_8_host ... | gzip >dump.gz
    gunzip <dump.gz | mysql -h mariadb_10_host ... 
    

    压缩文件可能小于 40GB。一方面,它没有索引。 (它们将在第二步中重建。)

    无论哪种情况...

    两个版本之间可能存在不兼容。查看 mysql 的 mysqldump 和 mariadb 的 mysqldump 的参数,这两个参数可能已经准备好接受 8.0 输入。

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2017-07-15
      • 2021-09-18
      • 2011-02-17
      • 2017-09-30
      • 1970-01-01
      相关资源
      最近更新 更多