环境 :oracle hp RAC
现象:用sqlplus user/pass和sqlplus user/pass@servername分别连接同一数据库服务器,select sysdata from dual 结果不一致,直接用sqlplus user/pass连接时得到的时间与系统时间相同,用sqlplus user/pass@servername连接时,得到的时间与系统时间差12小时左右。
测试:1、开始怀疑时区设置有问题,但检查后发现系统与oracle时区设置一致。
      2、又怀疑用sqlplus user/pass@servername连接时实际上连去了别的节点,但建了某表后,用sqlplus user/pass连接也能看到,说明两者连到了同一节点,排除。那是为什么呢?mm求解

解决方案 »

  1.   

    是RAC环境,所以你的每个node的时间不可能相差的如此之大的,12个小时。使用tnsname的方式,有可能连接到别的机器的实例,sysdata去的是服务器的时间,有可能服务器的时区不一致,导致这个问题了。用select systimestamp from dual;试试。这个包含了时区信息。
      

  2.   

    二楼tx所说我已经通过上述两个测试排除了
    我用的试select dbtimezone from dual ;