在11gR2 GI中怎么改变时区?
来源于:
How To Change Timezone for 11gR2 Grid Infrastructure (文档 ID 1209444.1)
适用于:
Oracle Database - Enterprise Edition - Version 11.2.0.1 and later
Information in this document applies to any platform.
目标:
本文用于演示在11gR2 GI安装完之后,怎么改变时区?
解决方案:
译者注:
所谓时区,其实分为两个部分:Grid Time Zone Setting 和 OS Default Timezone Setting。下面会分别介绍
Grid Time Zone Setting:
一旦操作系统默认的时区变化了,务必保证如下:
1. 对11.2.0.1来说,grid用户和root用户的 shell environment variable TZ 要被正确的设置
2. 对11.2.0.2以及更高版本来说, $GRID_HOME/crs/install/s_crsconfig_<nodename>_env.txt 文件中的TZ entry需要设置为正确的时区
TZ必须是OS支持的TZ,比如说:
grep TZ s_crsconfig_<nodename>_env.txt TZ=US/Pacific
下面的是一个不正确的TZ的例子,因为里边有不相关的字符(一个不正确的时区设置可能导致诸如通过监听器连接到数据库中session会显示错误的时间)
TZ=%s_Asia/Kuala Lumpur%
在修改前请备份。一旦修改完成并由有权限的用户验证通过,GI可以被重启。
对于11.2之前的CRS, "init.cssd diag" can be used to confirm TZ setting for CRS;
init.cssd could be located in /etc/init.d, /etc or /sbin/init.d depend on platform
OS Default Timezone Setting
Linux:
改变时区请使用:
/usr/sbin/timeconfig
显示当前时区的状态:
cat /etc/sysconfig/clock ZONE="America/Los_Angeles" UTC=true ARC=false
如下命令显示所有的有效的时区设置:
ls -l /usr/share/zoneinfo
显示于该目录(/usr/share/zoneinfo)的任何时区均是可以用来使用的,比如CST6CDT and America/Chicago
注意:在OL6.3/RHEL6.3中,/etc/sysconfig/clock中的“Zone”field 与 /usr/share/zoneinfo中的有差异。
/usr/share/zoneinfo中的时区信息应该被用于$GRID_HOME/crs/install/s_crsconfig_<nodename>_env.txt
hp-ux
显示当前时区的设置:
cat /etc/default/tz PST8PDT
改变时区:
set_parms timezone
找到所有有效的时区:
ls -l /usr/lib/tztab
Solaris
显示当前的设置:
grep TZ /etc/TIMEZONE TZ=US/Pacific
To change on x64, modify TIMEZONE, also run "rtc -z US/pacific; rtc -c"
To find out all valid settings: ls -l /usr/share/lib/zoneinfo
对于Solaris 11:
在Solaris 11中,/etc/TIMEZONE 这个文件被废弃(obsoleted)。在Solaris 11中,需要通过timezone:default service的方式来修改时区
# svccfg -s timezone:default setprop timezone/localtime= astring: <timezone> # svcadm refresh timezone:default
AIX:
显示当前的设置:
grep TZ /etc/environment TZ=GMT
关于AIX上的时区,请参考:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.files/doc/aixfiles/environment.htm