zoukankan      html  css  js  c++  java
  • 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_<nodename>_env.txt 文件中。
    实际我的环境中,该文件当前的时区设置是:

    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
    

    至此,修改时区工作已完成。

  • 相关阅读:
    【设计模式
    【JavaEE】之SSM入门项目的搭建
    【Android
    【Android
    【Android
    【Android
    【Android
    【Android
    随风 随意
    优秀代码所具备的品质
  • 原文地址:https://www.cnblogs.com/jyzhao/p/7048162.html
Copyright © 2011-2022 走看看