由于建库时,操作系统时区没有修改为本地时区,导致在数据库主机上和通过客户端连接看到的时间不一致。
1、检查数据库时区设置
select property_value from database_properties where property_name='DBTIMEZONE'; 返回值’-05:00'
2、修改数据库时区设置
alter database set TIME_ZONE='+08:00';
3、重启数据库
注意:如果是RAC数据库,不要用crsctl restart cluster -all命令去重启数据库,这样的话,客户端连接上去还是显示错误的时区。
案例:
S = AIX 6.1 TL06
racle = 11.2.0.2 Gird Infrastructure and Database with RAC
原先的OS时区:CST6CDT
修改后的OS时区:BEIST-8(此时Grid和Database软件以及数据库都已安装完毕)
如果是RAC数据库的话,需要修改GRID用户的环境变量。根据Oracle官方文档,修改$GRID_HOME/crs/install/s_crsconfig_syddb1_env.txt中“TZ”参数值,从我的实验结果看并无效果。整理思路后:认为当使用crsctl命令启动数据库时,调用的TZ环境变量并不是该文件中设置的参数值,而是另有出处( 尚未找到是那个文件)。当发现srvctl命令可以设置数据库的环境变量后,决定通过该命令修改数据库的TZ环境变量。
grid$ srvctl getenv database -d syddb
grid$ srvctl setenv database -d syddb -t "TZ=BEIST-8"
注:BEIST-8是AIX操作系统修改后的时区
1、检查数据库时区设置
select property_value from database_properties where property_name='DBTIMEZONE'; 返回值’-05:00'
2、修改数据库时区设置
alter database set TIME_ZONE='+08:00';
3、重启数据库
注意:如果是RAC数据库,不要用crsctl restart cluster -all命令去重启数据库,这样的话,客户端连接上去还是显示错误的时区。
案例:
S = AIX 6.1 TL06
racle = 11.2.0.2 Gird Infrastructure and Database with RAC
原先的OS时区:CST6CDT
修改后的OS时区:BEIST-8(此时Grid和Database软件以及数据库都已安装完毕)
如果是RAC数据库的话,需要修改GRID用户的环境变量。根据Oracle官方文档,修改$GRID_HOME/crs/install/s_crsconfig_syddb1_env.txt中“TZ”参数值,从我的实验结果看并无效果。整理思路后:认为当使用crsctl命令启动数据库时,调用的TZ环境变量并不是该文件中设置的参数值,而是另有出处( 尚未找到是那个文件)。当发现srvctl命令可以设置数据库的环境变量后,决定通过该命令修改数据库的TZ环境变量。
grid$ srvctl getenv database -d syddb
grid$ srvctl setenv database -d syddb -t "TZ=BEIST-8"
注:BEIST-8是AIX操作系统修改后的时区
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/5359/viewspace-707664/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/5359/viewspace-707664/