如何借助 LVM 快照备份大型 MySQL 数据库?

如何借助 LVM 快照备份大型 MySQL 数据库?

我正在尝试为 InnoDB 表中有 4 亿多行的 MySQL 8 DB 找到备份/恢复过程。MySQLdump 需要几天时间,因此我现在正在尝试:

  • 在 DB 文件夹上挂载 LVM 卷
  • 创建 LVM 快照
  • 从快照在其他服务器上恢复

文件都在那里,但是 MySQL 无法启动:

2021-07-04T15:48:14.415660Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-07-04T15:48:14.637407Z 1 [ERROR] [MY-012209] [InnoDB] Multiple files found for the same tablespace ID:
2021-07-04T15:48:14.637473Z 1 [ERROR] [MY-012202] [InnoDB] Tablespace ID: 196 = ['test/SUM_stats_cat_d.ibd', 'website/wp_actionscheduler_actions.ibd'] 

显然,要复制的不仅仅是数据库的简单文件夹。本地服务器还保存着其他数据库,这些数据库似乎与导入存在冲突。

有办法解决这个问题吗?如果没有,那么更好的备份/恢复策略是什么?

答案1

我认为 LVM 需要在磁盘空闲时建立——它涉及划分设备的一部分。

LVM 处理整个磁盘分区,而不仅仅是目录树。

在创建快照并在另一台服务器上使用它之间,您必须将其复制到另一台服务器。

我更喜欢在制作快照时停止 mysqld,但理论上这不是必需的。

就速度而言,LVM 是迄今为止最快的。

相关内容