我们刚刚发现我们的一个mysql系统没有运行ntp,结果是时间有点漂移了.
如果我启用ntp,并在系统运行时同步时间是否有任何可能的问题?目前主人大约慢了4分钟,而奴隶大约落后3:45.
解决方法:
随着Master上时钟时间的变化
>奴隶可能会丢失数据
> slave可以重播已经处理的查询
您应该安排短暂的停机时间,而不是冒这些极端风险.
这是你应该做的:
步骤01:停止对Master的所有写入
SET GLOBAL read_only = 1;
FLUSH TABLES WITH READ LOCK;
步骤02:确保主机上的写入已停止
SHOW MASTER STATUS;
你可能会看到这样的东西
mysql> show master status;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| bin-log.005956 | 59702913 | | dba | |
+----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
运行几次,确保没有运行
步骤03:在Master(和Slave,如果需要)上设置时钟时间
步骤04:在奴隶上,运行几次
SHOW SLAVE STATUS\G
确保
> Seconds_Behind_Master为0
> Read_Master_Log_File没有改变
> Relay_Master_Log_File没有改变
> Exec_Master_Log_Pos没有改变
步骤04:在Slave上运行以下命令
STOP SLAVE;
CHANGE MASTER TO master_log_file='bin-log.000001',master_log_pos=4;
步骤05:在主人身上,跑
RESET MASTER;
这将清除Master上的所有binlog,并从一个新的binlog开始
第06步:在奴隶身上,
START SLAVE; DO SLEEP(5); SHOW SLAVE STATUS\G
确保Seconds_Behind_Master为0
第07步:在师父身上,
UNLOCK TABLES;
而已.
这样做最好只是在现场系统上翻转时钟
我在大约1.5年前(Risk of changing clocktime on MySQL server host)建议了这个