使用 myISAM 和 innoDB 表对实时 mySQL 数据库进行快照,无需锁定

使用 myISAM 和 innoDB 表对实时 mySQL 数据库进行快照,无需锁定

我们有一个正在运行的生产数据库,但服务器上的空间已经不够了。因此,我希望在不停机(或停机时间尽可能短)的情况下将数据库转移到新服务器。一般来说,我还希望有一个可用的数据库热故障转移副本。

我想使用复制将所有数据复制到新机器,然后在某个时候拨动开关,让新机器成为主机器(正常故障转移场景)。我的问题是,我不确定如何在不锁定数据库的情况下初始化复制以制作我将使用的初始快照?有什么办法吗?我知道如果我使用 innoDB,我可以使用单事务来做到这一点,但不幸的是,我们有一些 myISAM 表(事实上,最大的 150GB 表是 myISAM,我想将其切换到 InnoDB,但我不能这样做,直到我有更多的空间和一个可以切换到的热副本)。

有什么想法吗?有没有什么方法可以制作这样的快照?或者有没有其他方法可以让复制“赶上”而无需使用快照进行初始化?

答案1

文件系统一致性快照可能毫无意义,对吗?

lvm 上的快照是一个合理的起点...

您的数据有什么特点 - 特别是 myisam 中的数据 - 它会发生很大变化吗?

相关内容