记录一次生产环境修改时区的坑
生产环境发现ORACLE时区不正确,RAC环境
客户自己提出的修改方案如下步骤
1、停止数据库
srvctl stop database -d 库名
2、停止CRS集群服务
/u01/app/19c/grid/bin/crsctl disable crs
/u01/app/19c/grid/bin/crsctl stop crs
3、停止完成后,修改系统时区
timedatectl set-timezone "Asia/Shanghai"
timedatectl
reboot
这边重启了一下服务器,其实没有必要
4、重启完成后,业务发现查看sysdate的时间还是不对,但是我们数据库本地查看的时间的对的
select to_char(sysdate,'yyyy-mm-dd hh24:mm:ss') from dual;
发现:远程客户端查询的结果跟 本地sqlplus 查寻的结果不同。
第一反应是检查数据库内置的时区,后发现数据库内置时区虽然不对,但是参考mos说明。内置时区不影响正常select结果。
第二反应可能是监听问题,修改时区如果监听不重启,或者不重启PMON进程。会出现sysdate依然不正确的情况。但是我们CRS都重启过的呀
5、后查询资料,发现CRS本身也存在时区信息的参数文件
cd $GRID_HOME/crs/install目录下 s_crsconfig_<nodename>_env.txt文件
6、找到可能问题原因后,备份并修改此参数文件,关库,重启CRS后sysdate恢复正常