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 已分区这一事实无关。然后,这个测试会让我相信你没有正确复制所有数据。
我用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 已分区这一事实无关。然后,这个测试会让我相信你没有正确复制所有数据。