注册
系统时钟之于达梦数据库详解
培训园地/ 文章详情 /

系统时钟之于达梦数据库详解

xiaoshu 2022/12/01 1674 0 0

系统时钟对达梦数据库的影响

一般我们在拿到服务器环境并准备安装数据库之前都需要详细检查服务器各项配置。其中,系统时钟和硬件时钟一定要弄清楚,在部署数据库之前确保服务器时间正确以减少后期维护不必要的麻烦

操作系统时间对数据库会有如下等影响:

1、试用授权产品,会导致试用授权过期,无法使用
2、数据库运行日志、数据库服务日志、归档日志、备份集等时间记录错误,导致相关分析、排查工作难度增大。
3、集群自动切换场景,会可能导致集群检测节点服务异常,引发误切换

针对问题1,请看我们以单机库环境上系统时间不对的影响实验:
首先查看当前系统时间和数据库授权信息如下:
image.png
下面修改操作系统时间到2023-08-13 超过过期时间。修改完成后达梦数据库进程已被异常退出并且再次连接数据库无法连接
image.png
image.png
查看服务日志可以看到达梦服务进程异常退出,且因为当前系统时间超出最大过期时间服务进程无法启动。
image.png
那么,此时我们该怎么办呢?很简单,使用hwclock -s命令将内核时钟同步给操作系统时钟时间即刻同步正常并且库可以正常启动起来
image.png

针对问题2,这个我们简单看一下各日志文件、数据文件,归档日志、备份集等
image.png
image.png

通过以上归档日志,服务日志的检查发现文件最后修改时间处于混乱状态,非常不利于我们对故障问题的分析和排查。

针对问题3,据说之前的版本时间错误必定会触发误切换,这边使用2022年8月的版本暂时没有测试出来误切换的情况,可能已经修复了。

实验总结

总之,通过以上实验表明,我们在生产环境上限检查时一定要检查好系统时间,有时间同步服务器的一定要做好时间同步。
下面就linux环境下时钟类型,如何查看时钟、修改时钟等几个维度给大家做详细讲解,供大家参考:

硬件时钟与系统时钟

在Linux系统中有硬件时钟与系统时钟两种时钟。硬件时钟是指主板上的时钟设备,也就是BIOS中设定的时间。系统时钟是kernel中的时钟。Linux命令基本都是读取的系统时钟。这两种时钟可能会出现时间不一致的情况。当Linux系统启动时,系统时钟会先去读取硬件时钟的设定,然后系统时钟才会独立运行。

Linux系统中如何查看系统时钟

在Centos6中查看与设置系统时钟的命令是date,在Centos7中新增了一个timedatectl命令用于查看系统时钟与时区
image.png

Linux系统中如何修改系统时钟

date -s 2022-11-21 #修改日期
date -s 16:30 #修改时间
date -s "2022-11-21 15:30:00" #同时修改日期与时间,需要用引号

Linux系统中如何查看硬件时钟

hwclock

Linux系统中如何修改硬件时钟
使用命令如下:

hwclock --set --date "2022-11-21 12:35"

使用date命令修改系统时钟后,并不会修改硬件时钟,当系统重启后系统时钟会重新读取硬件时钟,导致date修改失效。所以正确的做法是修改了系统时钟后,将系统时钟同步给硬件时钟。

hwclock -w #以系统时钟为准,让硬件时钟和系统时钟同步
hwclock -s #以硬件时钟为准,让系统时钟和硬件时钟同步

Linux系统中如何查看与修改时区
下面以centos为例进行说明
Centos6下:

tzselect #运行命令后根据实际情况选择对应选项即可

Centos7下:

timedatectl list-timezones #查看当前可用的时区
timedatectl set-timezone Asia/Shanghai #设置为上海市区

时间同步设置

为了避免主机时间因为长期运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务端和ntp客户端。在生产系统中,推荐使用像DNS服务器一样分层的时间服务器来同步时间。
不同机器间同步时间,可以使用ntpdate命令,也可以使用ntpd服务。
ntpdate命令
使用ntpdate比较简单。格式如下

[root@node1 ~]# ntpdate [NTP IP/hostname]
[root@node1 ~]# ntpdate 192.168.0.1
[root@node1 ~]# ntpdate time.ntp.org

但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:

0 12 * * * /usr/sbin/ntpdate 192.168.0.1
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服