我们有一个遗留的TokuDB数据库,我们希望开始迁移到一个新的引擎。不幸的是,将db脱机进行迁移是不可行的。我们最终还可以重新处理数据库中的所有数据。是否可以在MySQL中复制新的数据而不首先同步现有的数据?
发布于 2022-05-31 18:47:50
多年前,MySQL支持一种按照您所描述的方式初始化复制的方法。您配置了一个副本,并且基本上告诉它从源节点吸取数据的当前状态。我从来没有使用过这个功能,而且它很快就从产品中删除了。我现在甚至找不到关于这个特性的文档。我认为它必须锁定源表才能获得数据的初始状态,因此,只要启用一个新的副本,就会有相当大的风险导致意外中断。我想这就是为什么这个特征消失了。
最近,一个名为MySQL Clone的插件似乎做了同样的事情,但据我所知,它只适用于InnoDB表。请参阅https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-innodb-cluster-clone-deployment.html
创建副本不需要导致源实例的停机。在我的上一份工作中,我们经常这样做,以添加或修复副本。我们使用Percona XtraBackup从源节点创建热备份,并将备份传输到副本服务器,然后使用备份记录的二进制日志坐标开始复制。一旦我们把所有的集群转换成GTID,这就变得更加容易了。
但我认为你的任务比这更容易。不需要使用复制来转换表的存储引擎。我会使用pt-在线-模式更改,这是一个免费的工具,允许您在没有停机时间的情况下对表使用ALTER。
https://dba.stackexchange.com/questions/312750
复制相似问题