MySQL Uptime的价值如何"计算"?

时间:2014-05-28 16:06:48

标签: mysql percona uptime

根据MySQL文档,全局变量Uptime定义为" 服务器启动的秒数。"。

但是,有人可以向我解释这个值实际上是计算的吗?什么用作参考,系统时间?

我问这个问题是因为我遇到了一个奇怪的情况:当用MySQL重启虚拟机时,ntpd服务终止,并且在启动时(因为不是在chkconfig上),时间转移了+8小时,你可以见以下内容:

15:01:00 hostname shutdown[30383]: shutting down for system reboot
15:01:00 hostname init: Switching to runlevel: 6
...
15:01:06 hostname ntpd[27553]: ntpd exiting on signal 15
15:01:06 hostname syslog-ng[27399]: Termination requested via signal, terminating;
...
23:04:03 hostname kernel: Bootdata ok 

MySQL错误日志中记录了相同的班次:

15:01:03  InnoDB: Starting shutdown...
15:01:05  InnoDB: Shutdown completed; log sequence number 2746293826
15:01:06 [Note] /usr/sbin/mysqld: Shutdown complete          

15:01:06 mysqld_safe mysqld from pid file /var/lib/mysql/data/hostname.pid ended
23:04:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/data

在我们通过启动ntpd来修复时间之后,似乎Uptime已经转移了:

mysql> show global status like 'Uptime';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime        | 18005 |
+---------------+-------+

1 row in set (0.00 sec)

mysql> show global status like 'Uptime_since_flush_status';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| Uptime_since_flush_status | 18007 |
+---------------------------+-------+

这种行为是否可行,或者可能与其他因素有关?

感谢您的耐心和理解。

1 个答案:

答案 0 :(得分:0)

应该很简单。应用程序将从启动时创建时间戳,并将其与当前时间进行比较。这些时间是从系统时间给出的。

因此,如果您修改系统时间,则不会调整初始时间戳。它会将时间变化视为当前时间并将其作为其比较进行中继。