11.2.0.4 RAC测试环境修改时区
当前问题: 系统时区修改后,集群数据库各个日志发现显示的还是之前时区的时间。
依据Linux (RHEL)修改时区更改了系统的时区后,集群数据库的各个日志还是显示之前的时区时间。
查找MOS资料
How To Change Timezone for Grid Infrastructure (文档 ID 1209444.1)
该文档中提到:
For 11.2.0.2 and above, TZ entry in $GRID_HOME/crs/install/s_crsconfig_nodename_env.txt sets to correct time zone.
也就是说,对于11.2.0.2及以上版本的RAC,TZ条目在 $GRID_HOME/crs/install/s_crsconfig_
文件中。
实际我的环境中,该文件当前的时区设置是:
TZ=America/New_York
需要修改为:
TZ=Asia/Shanghai
以上是集群各个节点都需要更改的,更改完成后重启crs后发现各日志的时间已经显示正确。
但是数据库时区还是不匹配,会话和数据库的时区查询:
SQL> SELECT TZ_OFFSET(SESSIONTIMEZONE), TZ_OFFSET(DBTIMEZONE) FROM DUAL;
TZ_OFFS TZ_OFFS
------- -------
+08:00 +00:00
修改数据库时区:
ALTER DATABASE SET TIME_ZONE = '+8:00';
注意:如果数据库中已经有TIMESTAMP WITH LOCAL TIME ZONE的数据类型,是不允许更改的,除非将这些列删除。我这里没有,可直接修改。
重启数据库:
srvctl stop database -d jyzhao
srvctl start database -d jyzhao
再次查询:
SQL> SELECT TZ_OFFSET(SESSIONTIMEZONE), TZ_OFFSET(DBTIMEZONE) FROM DUAL;
TZ_OFFS TZ_OFFS
------- -------
+08:00 +08:00
至此,修改时区工作已完成。