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之後,下次
運行時間仍然不會變化.會直接等到之前的"下次運行時間"的時候才執行的