chris Asked: 2015-08-18 11:06:09 +0800 CST2015-08-18 11:06:09 +0800 CST 2015-08-18 11:06:09 +0800 CST 在 mysql 5.5 服务器上更新系统时间有什么风险吗? 772 刚刚发现我们的一个mysql系统没有运行ntp,导致时间有点漂移。 如果我开启ntp,在系统运行的时候同步时间,会不会有什么问题?master 目前慢了 4 分钟左右,slave 落后了 3:45 左右。 mysql replication 1 个回答 Voted Best Answer RolandoMySQLDBA 2015-08-18T11:30:55+08:002015-08-18T11:30:55+08:00 随着 Master 时钟时间的变化 从站可能会丢失数据 从站可以重播它已经处理过的查询 与其冒这两种极端情况中的任何一种的风险,您应该安排一个短暂的停机时间。 这是你应该做的: 步骤 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:设置主时钟时间(如果需要,还可以设置从时钟) 第 04 步:在 Slave 上运行几次 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 步:在 Master 上,运行 RESET MASTER; 这将清除您在 Master 上的所有二进制日志并从一个新的开始 步骤 06:在奴隶上, START SLAVE; DO SLEEP(5); SHOW SLAVE STATUS\G 确保Seconds_Behind_Master为 0 步骤 07:在 Master 上, UNLOCK TABLES; 而已。 最好这样做只是在实时系统上翻转时钟 我在大约 1.5 年前就提出过这个建议(Risk of changing clocktime on MySQL server host)
随着 Master 时钟时间的变化
与其冒这两种极端情况中的任何一种的风险,您应该安排一个短暂的停机时间。
这是你应该做的:
步骤 01:停止对 Master 的所有写入
第 02 步:确保主服务器上的写入已停止
你可能会看到这样的东西
运行几次并确保没有任何东西在运行
步骤 03:设置主时钟时间(如果需要,还可以设置从时钟)
第 04 步:在 Slave 上运行几次
确保
Seconds_Behind_Master
是0Read_Master_Log_File
没有改变Relay_Master_Log_File
没有改变Exec_Master_Log_Pos
没有改变第 04 步:在 Slave 上运行以下命令
第 05 步:在 Master 上,运行
这将清除您在 Master 上的所有二进制日志并从一个新的开始
步骤 06:在奴隶上,
确保
Seconds_Behind_Master
为 0步骤 07:在 Master 上,
而已。
最好这样做只是在实时系统上翻转时钟
我在大约 1.5 年前就提出过这个建议(Risk of changing clocktime on MySQL server host)