通过数据传出复制,可以使用 MySQL 本机复制将数据从 Azure Database for MySQL 灵活服务器实例同步到另一台 MySQL 服务器。 MySQL 服务器(副本)可以位于本地、虚拟机中或是其他云提供商托管的数据库服务中。 将数据复制到 Azure Database for MySQL 灵活服务器有助于将数据移动到 Azure Database for MySQL 灵活服务器实例(副本),而数据传出复制则允许从 Azure Database for MySQL 灵活服务器实例(主服务器)传出数据。 通过 Data-out 复制,二进制日志(binlog)可以供社区使用,使 Azure Database for MySQL 灵活服务器实例充当外部副本的主服务器。 若要了解有关 binlog 复制的详细信息,请参阅 MySQL binlog 复制概述。
注意
配置了 Azure 身份验证的 Azure Database for MySQL 灵活服务器实例不支持数据传出复制。
可以考虑使用数据传出复制的主要场景有:
混合数据同步:数据传出复制可用于在 Azure Database for MySQL 灵活服务器和本地服务器之间保持数据同步。 此方法有助于在混合解决方案中的云和本地系统之间无缝集成。 如果你想要避免供应商锁定,此解决方案也可能很有用。
多云同步:对于复杂的云解决方案,使用数据输出复制在 Azure Database for MySQL 灵活服务器与不同云提供商之间同步数据,包括这些云中托管的虚拟机和数据库服务。
迁移:客户可以使用 MyDumper/MyLoader 等开源工具,并结合数据传出复制,以最小化时间,将数据从 Azure Database for MySQL 灵活服务器迁出。
限制和注意事项
不支持 Microsoft Entra ID
配置了 Azure 身份验证的 Azure Database for MySQL 灵活服务器实例不支持数据传出复制。 源服务器上的任何 Microsoft Entra 事务(Microsoft Entra 用户创建/更新)将中断数据导出复制。
提示
使用此处发布的指导 - MySQL :: MySQL 复制 :: 2.7.3 通过发出 CHANGE MASTER TO 语句将源的二进制日志位置前移,跳过事务以跳过一个或多个事件。 完成该操作后重新开始复制。
筛选器
必须使用复制筛选器筛选出副本服务器上的 Azure 自定义表。 为此,可以设置 Replicate_Wild_Ignore_Table = "mysql.__%" 以筛选副本上的 Azure MySQL 内部表。 若要从 Azure 门户修改此参数,请导航到 Azure Database for MySQL 灵活服务器实例,然后选择“服务器参数”以查看/编辑 Replicate_Wild_Ignore_Table 参数。
请在 MySQL 手册中参阅以下有关复制筛选器的一般指导:
- MySQL 5.7 参考手册 - 13.4.2.2 CHANGE REPLICATION FILTER 语句
- MySQL 5.7 参考手册 - 16.1.6.3 副本服务器选项和变量
- MySQL 8.0 参考手册 - 17.2.5.4 基于复制通道的筛选器