我使用亚马逊rds,并有一个跨区域复制。当我做一些模式更改时,我的read副本给了我这个错误,并且停止了复制。
消息:读取复制复制错误- SQLError: 1146,原因:在查询中不存在错误表phppoint_koreannoona.phppos_items。默认数据库: DB_NAME;查询: ALTER phppos_items DROP列aaatex_qb_item_name
是什么导致的?桌子在主人那里。我的迁移确实删除了这个字段,但是整个表在奴隶中丢失了。
我不得不重建奴隶。
发布于 2019-04-15 08:32:49
是什么导致的?
让我们深入了解事实,然后再进行推测:
Table phppoint_koreannoona.phppos_items doesn't exist on query您对一个不存在的表执行了一个ALTER TABLE查询。在运行alter时,您的表在主服务器上存在(否则,它不会遍历binlog并试图在副本上执行),但是在副本上不存在。这使得复制中断,因为它不能以一致的方式继续。
是什么使一个表存在于主程序上而不是副本上?若干备选方案:
修复副本上不一致的最安全的方法是从头开始重新创建它。如果表的写入量较低,则可以复制单个表并相对容易地同步它,但这不会阻止其他表上的其他数据漂移。
最重要的部分是在一些地方进行检查,以便及早发现问题。pt表-校验和或简单转储和比较等工具可能允许您更早地检测差异。由于mysql的配置是否安全取决于具体的设置,在提供了信息之后,不可能确切地说明是什么原因造成的。一些一般性建议:
https://dba.stackexchange.com/questions/234481
复制相似问题