当前位置:  数据库>oracle

Oracle 11g RAC 本地时间和通过listener连接时间不相同的问题

    来源: 互联网  发布时间:2017-05-14

    本文导语: 背景 客户生产数据库服务器重启后,本地时间和通过listener连接时间不相同的问题,比我们实际时间要慢13个小时。 操作系统版本:AIX 6.1 数据库版本 Oracle 11.2.0.2 RAC 问题描述和诊断过程 1.使用本地直接登陆和在本地通过listener查询...

背景

客户生产数据库服务器重启后,本地时间和通过listener连接时间不相同的问题,比我们实际时间要慢13个小时。

操作系统版本:AIX 6.1

数据库版本

Oracle 11.2.0.2 RAC

问题描述和诊断过程

1.使用本地直接登陆和在本地通过listener查询时间相差13个小时,初步定位为时区问题

bash-2.05b$ sqlplus "/as sysdba"

SQL> select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS'

--------------------------------------

2012-03-27 15:17:52

bash-2.05b$ sqlplus test/testaa@spprod

SQL> selectto_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS'

--------------------------------------

2012-03-27 02:18:50

SQL>

2.根据上面推论,查看操作系统时区和数据库时区,发现时区都一致,都是正8区,说明操作系统时区或者数据库设置没有问题,这时候推断可能是listener有问题或者是sysdate远程取值有问题

bash-2.05b$ echo $TZ

Asia/Shanghai

bash-2.05b$

查看数据库时区

SQL> select  dbtimezone from dual;

DBTIMEZONE

------------

+08:00

3.根据上面推断可能是listener有问题或者sysdate取值有问题,我们先看一下sysdate的取值的原理,根据metalink [ID 227334.1],SYSDATE和 SYSTIMESTAMP只是简单调用操作系统去取得时间,也就是说sysdate的取值来源于操作系统,oracle不会对sysdate的值进行处理,sysdate没有问题

4. sysdate问题排除,那就是listener的问题了,继续往下看,发现这这篇文档中也提到,操作系统时间和通过listener时间不一致的情况,出现这种情况可能是数据库启动时的时区和现在操作系统的时间不一致导致的,需要重启数据库和listener,在另一篇文档中[ID 301420.1]也说是这种情况导致的,解决方案也是重启数据库和listener

5.由于是RAC环境,打算一个节一个节点的重启,于是把两个节点的实例和CRS一个一个的进行重启

停节点2实例

bash-2.05b$ srvctl stop instance -d spprod -i spprod2

切换到root用户下面停CRS

bash-2.05b# /sporacle/11202/grid/bin/crsctl stop crs

上面crs启来之后再把实例启来,接下来我们重复上面操作,重启第一个节点

停实例1

bash-2.05b$ srvctl stop instance -d spprod -i spprod1

切换到root用户停CRS

bash-2.05b# /sporacle/11202/grid/bin/crsctl stop crs

6.重启之后发现和原来一样,说明不是这个问题,是不是和grid用户下管理ASM的实例时区也有关系呢?两个节点grid下面实例时区都是’+00.00’,于是查询公司另外的11G RAC环境,发现其它环境也一样,但是其它环境没有这个问题,基本可以排除这个问题

7.问题还没有解决,只能继续查了,最后找到了下面这篇文档How To Change Timezone for 11gR2Grid Infrastructure [ID 1209444.1],文档上面说在oracle 11.2.0.1 grid直接读取操作系统时区,在oracle 11.2.0.2 grid的时区放在$GRID_HOME/crs/install/s_crsconfig__env.txt这个文件中,如果需要调整时间需要修改这个文件

8.根据文档查看s_crsconfig__env.txt发现时区为TZ=CST6CDT,刚好和我们时区相差13个小时,于是修改TZ=Asia/Shanghai

bash-2.05b# more s_crsconfig_spdb1_env.txt

### This file can be used to modify the NLS_LANG environment variable,which determines the charset to be used for messages.

### For example, a new charset can be configured by settingNLS_LANG=JAPANESE_JAPAN.UTF8

### Do not modify this file except to change NLS_LANG, or under thedirection of Oracle Support Services

TZ=CST6CDT

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

RT_GRQ=ON

TNS_ADMIN=

ORACLE_BASE=

修改s_crsconfig_spdb1_env.txt的TZ=Asia/Shanghai (别忘记两个节点都需要修改)

9.修改好之后重启database和CRS,问题解决

10.总结

估计为安装oracleCRS的时候操作系统时区为CST6CDT,安装之后有人修改过操作系统时区和数据库时区。


    
 
 

您可能感兴趣的文章:

  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 在Oracle9i中Oracle DATA计算时间差
  • 如何将从JSP页面中取得的系统当前时间写入oracle数据库表中?
  • oracle 时间格式的调整
  • 怎样将当前时间写到Oracle中date类型的字段中!!!!!!!!!!!!
  • 修改Oracle默认用户密码有效期时间
  • 网间Oracle的连接,远程连接Oracle服务器?? iis7站长之家
  • Oracle如何修改系统默认时间格式
  • 轻轻松松学会在Oracle中实现时间相加处理
  • Oracle时间精确到时、分、秒处理方案
  • 在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误
  • 有关java.sql.ResultSet 利用SetDate往 oracle 中插入时间和日期的问题!!
  • Oracle公布SPARC五年计划和Solaris 11上市时间
  • Oracle时间型数据的insert语句
  • 请问在jsp中将系统当前时间插入到Oracle中Date字段中?(很急,在线等待)
  • 取Oracle中sysdate作为聊天室即时时间
  • Oracle下时间转换在几种语言中的实现
  • 日期时间型,用setString写入oracle中,高手请进
  • oracle获取上一旬的开始时间和结束时间的实现函数
  • oracle日期时间型timestamp的深入理解
  • Oracle中比例和时间二者需兼得
  • oracle9i中的listener
  • Linux下如何启动oracle的Listener服务??
  • 如何配置 linux 下 oracle 的 listener .ora 和
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 网间Oracle的连接,远程连接Oracle服务器??
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • 不想装oracle却还要在redhat8.0下用jdbc连接oracle如何实现?
  • 我用JBuilder 7连接局域网内一ORACLE 9( 在本机可以连接)的问题?
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • oracle 数据库连接分析
  • Linux系统下利用java连接Oracle 10G
  • Jbuilder 7.0 连接 Oracle 数据库
  • 怎么直接通过JDBC连接oracle?
  • 请教: Javaswing 和 Oracle JDBC thin 连接的问题
  • opendbx 为什么连接不上oracle?
  • 100分寻求最优化的连接oracle的java程序,请给我讲出理由,我是初学者,在做项目时不想让连接oracle影响我的程序性能
  • 如何在JBuilder中连接Oracle数据库?
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • 请教JSP与ORACLE连接问题。
  • jdbc连接oracle
  • 关于Jbuilder7连接oracle9??
  • 再问java 连接oracle 问题,急!
  • jsp文件连接oracle失败
  • 讨论:jdbc连接oracle数据库
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,