Error number: MY-010396; Symbol: ER_NDB_SLAVE_MISSING_DATA_FOR_TIMESTAMP_COLUMN; SQLSTATE: HY000
Message: NDB Slave: missing data for %s timestamp column %u.
错误说明:
MY-010396 错误代码 ER_NDB_SLAVE_MISSING_DATA_FOR_TIMESTAMP_COLUMN 将SQLSTATE HY000 。
此错误是由MySQL抛出的,当在作为从服务器时,发生缺失或是影响其他值的时刻标记值缺失,此错误代码会抛出。
解决方法:
1.检查从服务器和主服务器的时间戳列时间是否一致,如果存在不一致的情况,可能会出现该错误。可以重新同步两者的时间,然后再次进行同步操作。
2.在 MySQLSlaveMonitor 里,将 retry_failed_dumps 设置为1 即可,这样可以强制Slave等待下一次发生变动后,从 Masterbinlog 日志重新拉取剩余更新,通过完成剩余更新,以防止ER_NDB_SLAVE_MISSING_DATA_FOR_TIMESTAMP_COLUMN错误发生。
3.禁用 GTID 对时戳列操作,这样容易出现ER_NDB_SLAVE_MISSING_DATA_FOR_TIMESTAMP_COLUMN错误。
4.使用非二进制存储引擎,替换二进制存储引擎,因为二进制存储引擎会记录每一列的变化,如果存在变化的时间戳列,并且在从bin log中没有记录到这个列的变更时,就会出现MY-010396 错误。
5.检查是否有垃圾文件导致数据不一致的情况,可以使用检查工具来进行检查,清除垃圾文件影响。