首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更新mysql 5.5服务器上的系统时间是否有风险?

更新mysql 5.5服务器上的系统时间是否有风险?
EN

Database Administration用户
提问于 2015-08-17 19:06:09
回答 1查看 1.1K关注 0票数 4

我们刚刚发现我们的mysql系统中有一个没有运行ntp,其结果是时间有点漂移。

如果我启用ntp,并在系统运行时同步时间,是否存在任何可能的问题?主人现在慢了大约4分钟,一个奴隶在后面3:45左右。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-08-17 19:30:55

随着时钟时间的变化,师父

  1. 可能会丢失奴隶的数据。
  2. 从服务器可以重播它已经处理过的查询。

与其冒这两个极端的风险,不如安排一个短暂的停机时间。

以下是你应该做的事情:

步骤01:停止对母版的所有写入

代码语言:javascript
运行
复制
SET GLOBAL read_only = 1;
FLUSH TABLES WITH READ LOCK;

第二步:确保母版上的写已停止

代码语言:javascript
运行
复制
SHOW MASTER STATUS;

你可能会看到这样的事情

代码语言:javascript
运行
复制
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步:在奴隶身上,运行这几次

代码语言:javascript
运行
复制
SHOW SLAVE STATUS\G

确保

  • Seconds_Behind_Master为0
  • Read_Master_Log_File没有变化
  • Relay_Master_Log_File没有变化
  • Exec_Master_Log_Pos没有变化

步骤04 :在奴隶上运行以下命令

代码语言:javascript
运行
复制
STOP SLAVE;
CHANGE MASTER TO master_log_file='bin-log.000001',master_log_pos=4;

第05步:在主人身上,跑

代码语言:javascript
运行
复制
RESET MASTER;

这将擦除母版上的所有绑定日志,并从一个新的开始

第06步:关于奴隶,

代码语言:javascript
运行
复制
START SLAVE; DO SLEEP(5); SHOW SLAVE STATUS\G

确保Seconds_Behind_Master为0

第07步:关于大师,

代码语言:javascript
运行
复制
UNLOCK TABLES;

就这样。

最好这样做,只需在一个实时系统上翻转时钟

我大约在1.5年前就提出过这样的建议(更改MySQL服务器主机时钟的风险)

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/111317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档