数据库
首页 > 数据库> > 更新mysql 5.5服务器上的系统时间有任何风险吗?

更新mysql 5.5服务器上的系统时间有任何风险吗?

作者:互联网

我们刚刚发现我们的一个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)建议了这个

标签:linux,mysql,time,replication,mysql-5-5
来源: https://codeday.me/bug/20190806/1603277.html