mysql主从分区table不存在

mysql master-slave partitioned table doesn't exists

我用create Raw Data Files做mysql-master-slave replication,设置后,查询分区表时是return table xxx doesn't exists,但是在其他表。

而且,当我改用mysqldump时,一切正常。

谁能帮我解决这个问题?

如果分区 table 没有工作但其他 tables 工作并且 mysqldump 工作正常,我最好的猜测是你的分区数据没有存储在同一个地方您的其余数据。因此,当您使用 tar、zip 或 rsync 方法复制数据目录时,您遗漏了组成分区 table 的数据。您需要找到分区数据的存储位置,并将其与数据目录的其余部分一起移动。

然而,根据您在下面的评论,您遇到了所谓的 famous Schrodinger table. Based on Schrodinger's Cat 悖论,这就是 Mysql 认为 table 存在的地方,因为当您运行 show tables,但不允许你查询它;因为它存在但不存在。

通常这是由于未正确复制元数据(如在 ibdata1 文件和 ib_logfiles 中)造成的。如果可能的话,您可以做的一件事是从 table 中 remove the partition 并再次尝试您的 rsync。如果您仍然收到此错误,则这与 table 已分区这一事实无关。然后,这个测试会让我相信你没有正确复制所有数据。