为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
MySQL


事因:

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

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

wKiom1mu3hWz5dy-AAO7cm2NUp0479.png-wh_50

wKioL1mu3PqxmoPwAAIOrHhFk9M872.png-wh_50

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

2、用sysdba查看本地时间:

wKioL1mu4TmStFH9AAXwZGuwLqE143.png-wh_50

wKiom1mu4ZOhxRcSAAXi94utqMs970.png-wh_50

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

2.1)用其它普通账号登录

wKioL1mu5ErwYlBeAAWolW9y4KM753.png-wh_50

wKiom1mu5GrjMCJQAAWJu--hurE006.png-wh_50

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

wKiom1mu5gnAIZTOAA06s9fhnn8566.png-wh_50

注意查看箭头:变成了-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"

wKiom1mvBf-DU5dcAAzI2Qw531M349.png-wh_50

wKioL1mvBhuygBIoAAaz1dzd9OM973.png-wh_50

3.1)数据库时区:

wKiom1nJTinC2Q84AAI9yfZ4fME453.jpg-wh_50

也发现没异常。

排查思路:

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

解决方式:

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

©著作权归作者所有:来自51CTO博客作者任志远Ray的原创作品,如需转载,请与作者联系,否则将追究法律责任

Oracle RACMySQL|Oracle


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消