如果我有存档表,我可以进行零停机 MySQL 复制吗?

如果我有存档表,我可以进行零停机 MySQL 复制吗?

我已阅读了以下问题和答案:如何以最少的停机时间设置 MySQL 复制. 如果我仅使用 Innodb 表,看起来我可以让从属数据库同步而无需停机。

我的主表使用 Innodb 引擎,但我还有一组表记录主表的历史记录。一组触发器拦截更新,并在旧数据被修改之前复制一份,并附上时间戳。这些数据存储在存档表中,这些表只会被附加到存档表中。

那么我可以使用类似的技术来实现不停机的复制吗?

我不介意存档表暂时不同步,如果它们不是同步过程中发生更改的完美记录,我也可以忍受。我首先关心的是 innodb 表的可用性应该很少或没有中断。

所涉及的表格数量相当多,而且有些动态。不需要手动制作表格列表的解决方案会更好。

我正在从 mariadb 5.5 迁移。我目前计划在新服务器上迁移到同一版本,然后单独处理该更新,但如果升级目标版本会产生重大影响,请告知。

答案1

您可以尝试使用 perconaxtradb集群但请记住,您可能需要进行一些代码更改来处理 COMMIT 失败,如下所述这里

所有查询都在节点本地执行,只有 COMMIT 才会有特殊处理。发出 COMMIT 时,事务必须在所有节点上通过认证。如果没有通过,您将收到 ERROR 作为该查询的响应。之后,事务将在本地节点上应用。

相关内容