我正在尝试从外部源在GCP上创建一个MySQL 5.7.35只读副本。数据库非常庞大,大约有800G的数据。我已经以GCP接受的方式调整了触发器、视图和函数的定义器(root@%),因此数据库迁移服务使完全转储起作用。还使复制与此数据库的架构一起工作(无数据)。
到目前为止,只对数据进行了一次尝试。在此尝试中,完全转储成功(耗时2天零10小时),但在复制开始后的一段时间内失败,并显示以下错误:
2021-09-05T06:09:33.293123Z 2通道‘’的从SQL错误:无法在表pacsdb.content_item上执行Write_rows事件;键'PRIMARY‘的重复条目'1441957’,Error_code: 1062;处理程序错误HA_ERR_FOUND_DUPP_KEY;事件的主日志mysql-bin.000005,end_log_pos 78621021,Error_code: 1062
在副本上选择此行将返回与源相同的数据(该行已存在)。
因为我不能在GCP上停止slave、skip_counter和启动slave或类似的东西,所以我必须弄清楚为什么会发生这种情况。
我的下一步是尝试使用谷歌推荐的标志手动创建转储。
有人遇到了类似的问题,或者知道为什么会发生这种情况?
任何提示都会被删除,谢谢!
发布于 2021-09-27 10:47:01
激活一致性警告和基于GTID的复制应该可以工作。这里有与MySQL 5.7的全局事务标识符相关的复制信息1。
1- https://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html
https://stackoverflow.com/questions/69196709
复制相似问题