阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle RAC集群本地时间和远程时间不一致?

166次阅读
没有评论

共计 946 个字符,预计需要花费 3 分钟才能阅读完成。

事因:

征信数据库数据事件不一致导致数据(RAC 集群)混乱,PLSQL 查询时间和数据库时间不一致,严重影响业务。因为之前只是偶遇一次,再加上有过 MySQL 时区解决经验,感觉应该可以很快解决,然而,并非我想的那么简单。

如下是整个事件的经过,算是经验分享吧。(有 vsp,因此只能截图)

1、查看两台服务器的本地时间,以及时区。

Oracle RAC 集群本地时间和远程时间不一致?

Oracle RAC 集群本地时间和远程时间不一致?

可以看到,Asia/Shanghai CST 北京时间东八区。(GMT 代表格林尼治标准时间)

2、用 sysdba 查看本地时间:

Oracle RAC 集群本地时间和远程时间不一致?

Oracle RAC 集群本地时间和远程时间不一致?

AM 表示上午,PM 表示下午。没有什么异常。

2.1)用其它普通账号登录

Oracle RAC 集群本地时间和远程时间不一致?

Oracle RAC 集群本地时间和远程时间不一致?

2.2)用 PLSQL 登录普通账号远程登录查看

Oracle RAC 集群本地时间和远程时间不一致?

注意查看箭头:变成了 -8:00,时间慢了 16 小时。GMT-8,但是 datatimezone 没问题。

提示:SYSDATE 和 SYSTIMESTAMP 的值并不受数据库参数 DBTIMEZONE 的影响,操作系统时区的环境变量 (如 TZ) 会影响它们的输入,因为 SYSDATE 和 SYSTIMESTAMP 实际是调用操作系统底层接口直接返回值。操作系统层面 TZ 环境变量的设置直接影响 sysdate 和 systimestamp 的值,同时也会影响数据库日志写入的时戳。

DBTIMEZONE 的设置会影响数据库内两种数据类型的值:

1)TimeStamp with Time Zone

2)TimeStamp with Local Time Zone。

3、排查环境变量设置

由于使用相同账号,PLSQL 远程登录 -8:00,查看别的数据库都是 +8:00,本地时间都是 UTC:+8:00

因此,只能从数据库方面查。

# srvctl getenv listener -l LISTENER -envs “TZ”

Oracle RAC 集群本地时间和远程时间不一致?

Oracle RAC 集群本地时间和远程时间不一致?

3.1)数据库时区:

Oracle RAC 集群本地时间和远程时间不一致?

也发现没异常。

排查思路:

无论从系统时间,数据库时间,rac 监听,环境变量,均未发现异常,很可能有人修改了参数。

解决方式:

和 dba 沟通,修改 grid 环境变量时区 “Asia/Shanghai”,分批重启数据库,监听恢复之后,问题解决。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148937.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计946字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中