在做DB2 集群復制的時候要求兩台主機想時間一致。
但是在一台主機上系統時間和硬件時間相差12個小時左右;手動同步後,重啟後又相差12個小時左右。
為什麼會是這樣的,先介紹下系統時鐘和硬件時鐘的區別:
Linux時鐘分為系統時鐘(System Clock)和硬件(Real Time Clock,簡稱RTC)時鐘。系統時鐘是指當前Linux Kernel中的時鐘,而硬件時鐘則是主板上由電池供電的時鐘,這個硬件時鐘可以在BIOS中進行設置。當Linux啟動時,硬件時鐘會去讀取系統時鐘的設置,然後系統時鐘就會獨立於硬件運作。
查時間
swas702:~ # date
Fri Mar 9 13:33:15 CST 2011
swas702:~ # hwclock --show
Fri Mar 9 13:33:22 2011 -0.517526 seconds
設置系統時間
was7:/ccc # date
Fri Mar 9 14:02:35 CST 2011
was7:/ccc # date -s "2011-03-09 14:02:35"
Fri Mar 9 14:02:35 CST 2011
was7:/ccc # date
Fri Mar 9 14:02:36 CST 2011
設置硬件時間
swas702:~ #hwclock --set --date="2011-03-09 13:33:22"
swas702:~ # hwclock --show
Fri Mar 9 13:33:22 2011 -0.517526 seconds
如果讓系統時間與硬件時鐘同步,則用
swas702:~ # hwclock --hctosys (hc代表硬件時間,sys代表系統時間)
swas702:~ # clock --systohc 系統時鐘和硬件時鐘同步