数据库与操作系统时区更改

来源:互联网 发布:玻璃裁切软件 编辑:程序博客网 时间:2024/06/07 06:33
ORACLE 11G 新部署的环境,刚使用GOLDENGATE 进行完数据迁移和同步,发现ORACLE 自动收集的任务时间并不是设定的晚上22点启动。检查AIX 时区发现设置的CDT ,数据库的TIMEZONE 是CST6CDT,与系统管理员沟通,他答复是AIX 6.1 没有北京时间这个时区了,所以没有按照手册特别设置,现在只能进行时区更改为Asia/Shanghai,OS更改完成后GOLDENGATE / ORACLE /AIX 全部重启。问题接踵而至1.GOLDENGATE 所有的TRAIL FILE 时间都被更改导致REPLICATE ABEND 解决方法:ALTER REPLICAT REP* , extseqno xxx ,extrba xxx 
2.ORACLE 中发现数据库的TIMEZONE 还需是原来的,统计信息自动收集任务时间还是异常
解决方法:
数据库时区更改参考:http://space.itpub.net/175005/viewspace-618100
确认业务表没有使用TIMESTAMP WITH LOCAL TIME ZONE 类型的 

ALTER DATABASE SET TIME_ZONE='+08:00';
Completed: ALTER DATABASE SET TIME_ZONE='+08:00'
Wed Oct 09 09:37:10 2013


重启数据库

检查更改是否成功

select * from database_properties where property_name = 'DBTIMEZONE';

检查  scheduler default_timezone 的设置

9:40:01 SQL> set verify off
9:40:08 SQL> variable v_value varchar2(1000);
9:40:20 SQL> begin
          2  dbms_scheduler.get_scheduler_attribute(attribute => 'default_timezone',value => :v_value);
          3  end;
          4  /

 
PL/SQL procedure successfully completed
 
Executed in 0.016 seconds
v_value
---------
CST6CDT

发现依然是更改前的TZ CST6CDT

进行更改:

9:44:12 SQL> BEGIN
          2   DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
          3     ATTRIBUTE => 'default_timezone',
          4     VALUE => 'Asia/Shanghai');
          5  END;
          6   
          7  /
 
PL/SQL procedure successfully completed
 
Executed in 0.031 seconds

一个小问题折腾了半天。