MySQL服务器时间同步问题处理(3)

[root@wgq_idc_mon_1_12 ~]# hwclock --show
2015年09月26日 星期六 13时58分34秒  -0.219418 seconds
[root@wgq_idc_mon_1_12 ~]#
hwclock –hctosys 把硬件时间设置成系统时间

hwclock –systohc 把系统时间设置成硬件时间

hwclock –set –date=”mm/dd/yy hh:mm:ss” 设置硬件时间我们可以开机的时候在BIOS里设定.也可以用hwclock命令

date -s “dd/mm/yyyy hh:mm:ss” 修改系统时间用date命令就最简单了

现在我们知道了如何设置系统和硬件的时间. 但问题是如果这两个时间都不准确了怎么办? 那么我们就需要在互联网��找到一个可以提供我们准确时间的服务器然后通过一种协议来同步我们的系统时间,那么这个协议就是NTP了. 接下去我们所要说的同步就都是指系统时间和网络服务器之间的同步了

2.4 设置NTP Server前的准备
其实这个标题应该改为设置”NTP Relay Server”前的准备更加合适. 因为不论我们的计算机配置多好运行时间久了都会产生误差,所以不足以给互联网上的其他服务器做NTP Server. 真正能够精确地测算时间的还是原子钟. 但由于原子钟十分的昂贵,只有少部分组织拥有, 他们连接到计算机之后就成了一台真正的NTP Server. 而我们所要做的就是连接到这些服务器上同步我们系统的时间,然后把我们自己的服务器做成NTP Relay Server再给互联网或者是局域网内的用户提供同步服务.

1). 架设一个NTP Relay Server其实非常简单,我们先把需要的RPM包装上
rpm -ivh ntp-4.2.2p1-5.el5.rpm

2).找到在互联网上给我们提供同步服务的NTP Server
是NTP的官方网站,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server

那么比如在英国的话就可以选择下面两个服务器

0.uk.pool.ntp.org
1.uk.pool.ntp.org
它的一般格式都是number.country.pool.ntp.org
中国的ntp服务器地址:

server 133.100.11.8 prefer
server 210.72.145.44
server 203.117.180.36
server 131.107.1.10
server time.asia.apple.com
server 64.236.96.53
server 130.149.17.21
server 66.92.68.246
server
server 18.145.0.30
server clock.via.net
server 137.92.140.80
server 133.100.9.2
server 128.118.46.3
server ntp.nasa.gov
server 129.7.1.66
server ntp-sop.inria.fr
server (国家授时中心服务器IP地址)

3).在打开NTP服务器之前先和这些服务器做一个同步,使得我们机器的时间尽量接近标准时间.
这里我们可以用ntpdate命令

ntpdate 0.uk.pool.ntp.org
6 Jul 01:21:49 ntpdate[4528]: step time server 213.222.193.35 offset -38908.575181 sec
ntpdate 0.pool.ntp.org
6 Jul 01:21:56 ntpdate[4530]: adjust time server 213.222.193.35 offset -0.000065 sec
假如你的时间差的很离谱的话第一次会看到调整的幅度比较大,所以保险起见可以运行两次. 那么为什么在打开NTP服务之前先要手动运行同步呢?

因为根据NTP的设置,如果你的系统时间比正确时间要快的话那么NTP是不会帮你调整的,所以要么你把时间设置回去,要么先做一个手动同步

当你的时间设置和NTP服务器的时间相差很大的时候,NTP会花上较长一段时间进行调整.所以手动同步可以减少这段时间

2.5 配置和运行NTP Server
现在我们就来创建NTP的配置文件了, 它就是/etc/ntp.conf. 我们只需要加入上面的NTP Server和一个driftfile就可以了

vim /etc/ntp.conf
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
非常的简单. 接下来我们就启动NTP Server,并且设置其在开机后自动运行

/etc/init.d/ntpd start
 chkconfig --level 35 ntpd on
2.6 查看NTP服务的运行状况
现在我们已经启动了NTP的服务,但是我们的系统时间到底和服务器同步了没有呢? 为此NTP提供了一个很好的查看工具: ntpq (NTP query)

我建议大家在打开NTP服务器后就可以运行ntpq命令来监测服务器的运行.这里我们可以使用watch命令来查看一段时间内服务器各项数值的变化

watch ntpq -p
Every 2.0s: ntpq -p                                  Sat Jul 7 00:41:45 2007
    remote          refid      st t when poll reach  delay  offset jitter
==============================================================================
+193.60.199.75  193.62.22.98    2 u  52  64 377    8.578  10.203 289.032
*mozart.musicbox 192.5.41.41      2 u  54  64 377  19.301 -60.218 292.411
现在我就来解释一下其中的含义

remote: 它指的就是本地机器所连接的远程NTP服务器

refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/430507ebdf7cefc8dc61b97bef307c9a.html