尽pipe出于我的“核心”知识,我维护一个双向复制的MySQL数据库(主数据库和备份数据库)。 它一直工作得很好。 所有更改都几乎在两台服务器之间即时复制。
但是现在我注意到了一些奇怪的事情:我有一些情况,29日下午没有复制。 无可否认,我还没有确认所有复制都已经丢失。 但迄今为止我发现的所有案例都有这个问题。
不久之前,我在备份上将时区从UTC改为CET,一直以来都是CET。
我是否因为发生在闰日而着迷,还是会有一些东西呢?
这些服务器都是CentOS 5.4和MySQL 5.0
我可以感觉到可能的担忧。 如果一切都是UTC,这不会是一个问题。
这是一个需要思考的问题:
在涉及夏令时的日子里,你有同样的问题吗?
CET确实遵守夏令时。
您所描述的复制问题也应该在时钟前进时发生。 理论上这应该持续一个小时左右。
你可以做两件事情之一,以确保相同的数据:
选项1:将主数据库中的所有数据mysqldump备份
MYSQL_HOST_ROOT=localhost MYSQL_USER_ROOT=roothome MYSQL_PASS_ROOT=rootpassword MYSQL_CONN_ROOT="-h${MYSQL_HOST_ROOT} -u${MYSQL_USER_ROOT} -p${MYSQL_PASS_ROOT}" MYSQL_HOST_BCKP=localhost MYSQL_USER_BCKP=rootremote MYSQL_PASS_BCKP=rootremotepassword MYSQL_CONN_BCKP="-h${MYSQL_HOST_BCKP} -u${MYSQL_USER_BCKP} -p${MYSQL_PASS_BCKP}" echo "SET SQL_LOG_BIN=0;" > /root/MySQLData.sql echo "STOP SLAVE;" >> /root/MySQLData.sql MYSQLDUMP_OPTIONS="--master-data=1 --all-databases --routines --triggers" mysqldump ${MYSQL_CONN_ROOT} ${MYSQLDUMP_OPTIONS} >> /root/MySQLData.sql echo "START SLAVE;" >> /root/MySQLData.sql mysql ${MYSQL_CONN_BCKP} -A < /root/MySQLData.sql
选项2:使用pt-table-checksum和pt-table-sync
我写了一个示例脚本 ,它使用mk-table-checksum和mk-table-sync,但也可以应用于pt-table-checksum和pt-table-sync 。
复制通常只是逐步走过二进制日志。 (不注意实际的date)
你确定你的主人和奴隶拥有实际的数据吗?