環境:oracle linux5.6 oracle11gR2.0.2 (active dataguard)
最近發現在幾個伺服器的系統時間不準了,資料庫上線才4個多月,都跟正常時間偏差。如下
主庫:比正常時間快10分鐘
備庫1:比正常時間慢2分鐘
備庫2:比正常時間快4分鐘
看來是有快有慢。當時設的是主機板硬體時間同步(hwclock --systohc),時間基本上一樣的。看了現在硬體時間都不準了,這我們同步方法不是很可靠,因為每臺機器的硬體時間可能不一致。
通過在測試環境上測試實驗:
1.將主庫的時間調慢10分鐘,DG仍能正常同步,對系統沒有影響;
2.再將備庫1時間調快5分鐘,DG仍能正常同步,對系統沒有影響;
3.最後,分別在主備上將時間調慢或調快幾分鐘都對系統沒有影響。
通過實驗結果看,系統的時間調整對active dg環境同步沒有影響,並且都是線上修改的時間,資料庫都沒有停,修改完重啟完沒有出現異常,DG能正常同步。
只是修改主庫時間時,在alter.log出現了下面的錯誤:
“opiodr aborting process unknown ospid (28225) as a result of ORA-609”
但是系統沒有出現其它的異常。
下一步就是在生環境上修改系統時間了,希望同步不會有任何異常。
為了保險、安全起見,最終我們還是先把資料庫停掉後,然後再修改的系統時間。完成後資料庫沒有異常,執行正常。
下面是修改系統linux時間同步的具體方法:
當有多臺伺服器共同工作時,有時候時間的不同步會帶來不小的麻煩。
一、 配置時間伺服器
將時間伺服器要與外網的時間伺服器同步時間,所以作為時間伺服器必須可以連線外網。
1、將時間伺服器與網際網路時間伺服器同步
# /usr/bin/rdate -s time-b.timefreq.bldrdoc.gov
2、安裝ntp server
--修改/etc/ntp.conf,新增如下資訊:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
--如果想在網際網路做ntp server,取消noquery就可以了,如果只是給內部提供,加一行ip限制就行:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap nopeer
--然後重啟ntpd服務:
[root@bogon ~]# service ntpd restart
--最後等ntp第一次去他的上級ntp server同步,可以檢視:
[root@appserver ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
======================================================================
114.80.81.13 66.220.9.122 2 u 22 64 1 37.802 -292.77 0.001
122.226.192.4 127.67.113.92 2 u 21 64 1 38.103 -298.15 0.001
61.153.197.226 .INIT. 16 u - 64 0 0.000 0.000 0.000
LOCAL(0) .LOCL. 10 l 21 64 1 0.000 0.000 0.001
3、啟動時間伺服器
# /etc/init.d/ntpd start
4、每週同步一次時間
--設定計劃任務,每週定時的去同步時間伺服器的時間。先建立一個同步指令碼:
# vi /etc/cron.weekly/rdateweekly.sh
#!/bin/sh
/usr/bin/rdate -s time-b.timefreq.bldrdoc.gov
--把該指令碼新增到crontab任務中,定時自動執行:
# chmod 755 /etc/cron.weekly/rdateweekly.sh
# crontab –e
01 00 * 1 * /etc/cron.weekly/rdateweekly.sh &> /dev/null
5、將ntpd設定成為開機自啟動
# chkconfig ntpd on
6、修改防火牆使允許時間伺服器通訊
--如果伺服器開了防火牆,則需要手工配置防火牆的配置檔案,使防火牆允許時間伺服器通訊。
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 123 -j ACCEPT
二、設定區域網內其它伺服器與該時間伺服器同步
1、先停止要同步時間的ntp服務
[root@client ~]# /etc/init.d/ntpd stop --或用service ntpd stop
關閉 ntpd: [確定]
2、內網伺服器時間同步
[root@client ~]# ntpdate 192.168.1.8
27 Oct 11:24:05 ntpdate[5707]: step time server 192.168.1.8 offset 199.356250 sec
注:該IP為上面的時間伺服器IP。
3、設定計劃任務每週定時同步
先建立一個同步指令碼:
[root@client ~]# vi /etc/cron.weekly/ntpdateweekly.sh
#!/bin/sh
ntpdate 192.168.1.8
--在crontab任務中新增定時同步任務:
01 00 * * 6 /etc/cron.weekly/ntpdateweekly.sh &> /dev/null
[root@client ~]# chmod 755 /etc/cron.weekly/ntpdateweekly.sh
到此,區域網時間伺服器就算配置完成,以後再也不用為時間的不同步而煩惱了。
三、內網伺服器時間同步錯誤
1、no server suitable for synchronization found
[root@client ~]# ntpdate 192.168.1.8
27 Oct 11:00:02 ntpdate[5299]: no server suitable for synchronization found
解決辦法:安裝ntp server
修改/etc/ntp.conf,新增如下資訊:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
如果想在網際網路做ntp server,取消noquery就可以了,如果只是給內部提供,加一行ip限制就行:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap nopeer
然後重啟ntpd服務:
[root@client ~]# service ntpd restart
最後等ntp第一次去他的上級ntp server同步,可以檢視:
[root@appserver ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
======================================================================
114.80.81.13 66.220.9.122 2 u 22 64 1 37.802 -292.77 0.001
122.226.192.4 127.67.113.92 2 u 21 64 1 38.103 -298.15 0.001
61.153.197.226 .INIT. 16 u - 64 0 0.000 0.000 0.000
LOCAL(0) .LOCL. 10 l 21 64 1 0.000 0.000 0.001
否則用客戶端同步,會報錯:
[root@client ~]# ntpdate -d 192.168.1.8
27 Oct 11:00:44 ntpdate[5307]: ntpdate Thu May 13 14:38:23 UTC 2010 (1)
Looking for host 192.168.1.8 and service ntp
host found : 192.168.1.8
transmit(192.168.1.8)
transmit(192.168.1.8)
transmit(192.168.1.8)
transmit(192.168.1.8)
transmit(192.168.1.8)
192.168.1.8: Server dropped: no data
server 192.168.1.8, port 123
stratum 0, precision 0, leap 00, trust 000
refid [192.168.1.8], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Thu, Feb 7 2036 14:28:16.000
originate timestamp: 00000000.00000000 Thu, Feb 7 2036 14:28:16.000
transmit timestamp: d25347df.73e86849 Thu, Oct 27 2011 11:00:47.452
filter delay: 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000
27 Oct 11:00:48 ntpdate[5307]: no server suitable for synchronization found
2、the NTP socket is in use, exiting
[root@client ~]# ntpdate 192.168.1.8
2 Dec 15:20:42 ntpdate[2748]: the NTP socket is in use, exiting
解決辦法:在客戶端伺服器上沒停止ntpd服務
[root@client ~]# /etc/init.d/ntpd stop
關閉 ntpd: [確定]