Oracle及SQL Server Job运行时间讨论及夏令时问题

 

 

Oracle10g, SQL Server 2000, 2005
Linux AS 5.3 , Windows 2003 

 

一,讨论Linux及Windows时间变化及硬件CMOS时间问题。

修改Linux时间命令:

[root@lhtestdb01 ~]# date
Thu Mar 10 11:11:50 CST 2011
[root@lhtestdb01 ~]#
[root@lhtestdb01 ~]# date -s 12:11:55
Thu Mar 10 12:11:55 CST 2011
[root@lhtestdb01 ~]# date -s 03/09/2011 

在Linux中修改OS时间后,等待一段时间(比如1小时,具体多长时间待查),CMOS
会与OS时间进行同步,以便下次启动server时候读取的cmos时间和os时间能匹配。


在Linux下修改时间后如果需要手工同步到硬件时钟,可以使用:

# hwclock -r ; date  查看硬件时间及系统时间
# hwclock --set --date="4/28/05 11:10:05"(月/日/年 时:分:秒) 
或者
# clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)

如果让硬件时钟与系统时间同步,则用
# hwclock –w
或者
# hwclock --hctosys  (hc代表硬件时间,sys代表系统时间)


修改Windows时间的命令非常简单,不做介绍。windows在修改时间
后,会马上将OS最新时间更新到cmos中。

 

 

二,讨论Linux及Windows时间变化后Oracle及SQL Server的系统时间。


修改时间后我们可以通过查询来确认Oracle及SQL Server系统中的时间。

select sysdate from dual ;  (oracle)

use master
select getdate() ;      (sql server)

可以测试发现,Oracle及SQL Server中无论OS时间如何变化,Oracle及
SQL Server数据库中的系统时间都会跟着变化 。 

备注: 注意修改时区还是需要重新启动Server的。


JOB在运行结束之后才会更新next_date,但是计算的方法是JOB刚开始的时间加上interval设定的间隔

 

三,讨论Oracle的时间及job问题。

1. 时间由8:00am调整为9:00am,跨度为1小时。

Oracle job运行时间间隔为2分钟,job运行时间为1秒。
-- 时间调整后Oracle job会正常自动运行,这时候last_date变成了
9:00:02, next_date变成了9:02:02 .

2. 时间由9:00am调整为8:00am,跨度为1小时。

Oracle job 不能正常运行,需要手工执行一次后,last_date变成执行
结束时候的时间,随后恢复正常。 

 

四,讨论SQL Server的时间及job问题。

修改時間:
1) 8:00->9:00  :
數據庫不需要重啟, getdate()時間會自動從8點修改到9點;
Job下次運行的時間會根據修改的時間自動調整到對應的時間點.

2) 8:00->7:00  :
數據庫不需要重啟,getdate()時間會自動從8點修改到7點;
Job下次運行的時間還是會保持不變,並且即使手動運行該Job之後,下次
運行時間仍然不會變化.會直接等到之前的"下次運行時間"的時候才執行的

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-689020/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-689020/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值