Timer calibration dump New time value is too much less than the previous one解决办法
症状:
每天固定的时间点,HAHA 2.0数据库会crash崩溃。报错信息类似如下:
原因分析:
HAHA的TSC(时间戳计数器)与操作系统的时间出现不一致,可能是由于修改了操作系统时间,例如通过NTP自动修改的操作系统时间等清空导致。
而自 HANA 2.0 修订版 040.00 起,如果系统时间向后推移超过 5 秒或 10 秒(取决于 SAP HANA 修订版本),HANA系统将崩溃。
受影响的HANA版本:
- SAP HANA 2:
- 修订 >= 040.00 (SPS04)
- 或更高版本
- 或更高版本
解决办法:
办法1:
升级HANA补丁,将补丁打到SPS05或以上
办法2:
以HANA的操作系统管理员登录操作系统,例如:<SID>adm,我的系统是hadadm,设置环境变量:HDB_TIMER=system,在HANA重启之后,会自动取消HANA自己的timer计时器,取而代之的是使用操作系统的计时器。
【可选操作1】设置环境变量的命令:export HDB_TIMER="system" ,通过命令export -p | grep HDB_TIMER 来查看是否设置生效,这种方式,在操作系统重启后,将失效。
【可选操作2】通过hana studio来设置,入下图所示
补充说明:
参考SAP note:2753418建议,
对于启用NTP的Linux操作系统,NTP的时间同步参数建议设置为slew模式,不要使用默认的step模式
操作步骤:
1. systemctl stop ntpd 停止NTP守护进程
2. vim /etc/sysconfig/ntp 找到行 NTPD_OPTIONS="-g -u ntp:ntp",将参数值-g替换为-x
3. systemctl start ntpd 启动NTP服务