[20191230]注意設定SYNC_HWCLOCK=yes.txt
[20191230]注意設定SYNC_HWCLOCK=yes.txt
--//前一段時間的測試,連結:http://blog.itpub.net/267265/viewspace-2670625/=>[20191226]dmesg與時間戳.txt
--//實際上當時機器出現異常,重啟後硬體時鐘與system時鐘不一致造成的情況:
--//主要幾個原因造成這個問題,這個問題主要出現在Oracle Linux Server release 5.9,我檢查6.X以上版本SYNC_HWCLOCK=yes:
1.環境:
# cat /etc/issue
Oracle Linux Server release 5.9
# cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"
# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no
# Additional options for ntpdate
NTPDATE_OPTIONS=""
--//預設安裝後加入-x引數的同時,必須修改SYNC_HWCLOCK=yes.不然啟動ntpd服務不會修改硬體時間.
2.幾點說明:
-x 引數:
-x Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped
if above the threshold. This option sets the threshold to 600 s, which is well within the accuracy window to set the
clock manually. Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment
requires an amortization interval of 2000 s. Thus, an adjustment as much as 600 s will take almost 14 days to
complete. This option can be used with the -g and -q options. See the tinker command for other options. Note: The
kernel time discipline is disabled with this option.
通常情況下,如果偏移量小於步長閾值(預設情況下為128ms),則旋轉時間並步進。如果超過閾值。此選項將閾值設定為600s,該閾值在
精確度視窗內,以設定手動計時。注:由於典型Unix核心的旋轉速率僅限於0.5ms/s,因此每秒調整一次因此,多達600秒的調整需要將近
14天的時間才能完成。完成。此選項可與-g和-q選項一起使用。有關其他選項,請參見修補程式命令。注:用此選項禁用核心時間。
--//首先必須設定-x引數,不然即使設定SYNC_HWCLOCK=yes,也不會呼叫hwclock同步硬體時間.
# vi /etc/init.d/ntpd
...
readconf() {
dostep=''
dropstr=''
OPTIND=1
while getopts ":46aAbc:dD:f:gi:k:l:LnN:p:P:qr:s:t:u:v:V:x" args $OPTIONS;
do
case "$args" in
x) dostep=yes;;
~~~~~~~~~~~~~~~
c) ntpconf="$OPTARG";;
u) dropstr="-U $(echo $OPTARG | sed 's/:.*//')";;
esac
done
[ -x /sbin/ntpd -a -f $ntpconf ] || exit 0
tickers=''
if [ -s "$ntpstep" ]; then
tickers=$(sed 's/#.*//' $ntpstep)
echo "$tickers" | grep -qi '[a-z0-9]' && dostep=yes || tickers=''
fi
if [ -n "$dostep" -a -z "$tickers" ]; then
# -x option is used, but step-tickers doesn't exist or contain
# anything useful, use servers from ntp.conf instead
tickers=$(awk '$1=="peer"||$1=="server"{print $2}' $ntpconf | \
fgrep -v 127.127.1.0)
fi
}
--//注意看下劃線,僅僅設定-x引數,dostep=yes.
start() {
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 1
readconf;
# set -x
# echo 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
if [ -n "$dostep" ]; then
~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -n $"$prog: Synchronizing with time server: "
/sbin/ntpdate $dropstr -s -b $NTPDATE_OPTIONS $tickers &>/dev/null
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
if [ $RETVAL -eq 0 ]; then
[ "$SYNC_HWCLOCK" = "yes" ] && sync_hwclock
else
OPTIONS="$OPTIONS -g"
fi
else
# -g can replace the grep for time servers
# as it permits ntpd to violate its 1000s limit once.
OPTIONS="$OPTIONS -g"
fi
# Start daemons.
echo -n $"Starting $prog: "
daemon ntpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ntpd
return $RETVAL
}
--//注意看下劃線,-n 表示the length of STRING is nonzero,如果$dostep有值才會呼叫裡面的命令.才會執行ntpdate以及同步硬體時
--//間.
--//另外注意一個問題有一些系統有防火牆,必須修改/etc/ntp.conf,必須加入本地時間伺服器.一般這個時間伺服器與上游的時間伺服器
--//同步,不然也不會同步硬體時間.這樣啟動看到的情況是這樣:
# service ntpd restart
Shutting down ntpd: [ OK ]
ntpd: Synchronising with time server: [ OK ]
Syncing hardware clock to system time [ OK ]
Starting ntpd: [ OK ]
--//為什麼要這樣設定,實際上即使你啟動ntpd同步硬體時間,隨著執行時間增加,硬體時鐘與系統時鐘會差距越來越遠:
# hwclock -r ;date
Mon 30 Dec 2019 04:23:38 PM CST -0.897579 seconds
Mon Dec 30 15:57:24 CST 2019
--//也許養成隔段時間重啟ntpd服務很有必要.
--//兩者相差30分鐘.而且硬體時鐘超前系統時鐘.設想如果系統異常重啟,不會同步系統時鐘到硬體時鐘(參考/etc/init.d/halt指令碼).
--//這樣如果你沒有設定SYNC_HWCLOCK=yes,這樣時間差距太大,ntpd會無法啟動.oracle rac系統時間也不正確.注意看前面-x引數說明.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2671283/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 編碼設定應注意
- oracle process設定的注意事情Oracle
- JavaScript 設定CSS與注意事項JavaScriptCSS
- SQL Server Profiler 設定注意事項SQLServer
- 設定samba是應注意的地方!Samba
- [Hive]hive分割槽設定注意事項Hive
- oracle設定process需要注意的事情Oracle
- Oracle:記憶體設定注意事項Oracle記憶體
- vmware gsx server正確設定共享磁碟注意事項Server
- MySQL 透過set global設定變數的注意點MySql變數
- Redis設定Key/value的規則定義和注意事項(附工具類)Redis
- 資料所有權設定中需要注意的事項
- 無線WiFi設定和使用遇到問題及注意事項WiFi
- 網站建設時的注意事項你一定得知道網站
- iOS專案開發實戰——storyboard設定介面技巧與注意事項iOS
- 玩VR經常受傷?那是因為你沒有注意設定這些……VR
- felx佈局,需要定寬的,需注意:
- 程式設計注意事項程式設計
- Oracle資料庫遠端連線設定的四種方法及其注意事項Oracle資料庫
- iOS使用者注意了:日期設定錯誤可導致裝置“變磚”iOS
- C# Winform 設定焦點控制元件的兩種方式和注意事項C#ORM控制元件
- .NetCore在跨域時設定自定義響應頭的注意事項NetCore跨域
- 【TABLE】oracle表線上重定義注意事項Oracle
- 通過JavaScript定義函式的注意點JavaScript函式
- Laravel setting 設定 / 系統設定 / 網站設定Laravel網站
- 深度殘差收縮網路:(四)注意力機制下的閾值設定
- [20190507]sga_target=0注意修改_kghdsidx_count設定.txt
- css中display設定為table、table-row、table-cell後的作用及其注意點CSS
- 【ASM】ASM與DB軟體部署在不同目錄時注意ORACLE_HOME的設定ASMOracle
- COM程式設計注意小結程式設計
- 怎樣做好多人聊天室原始碼開發?注意功能機制的設定原始碼
- lucene3.0_和IndexWriter有關的幾個引數設定及重建索引注意事項Index索引
- win10電腦 tls安全設定怎麼設定為預設設定Win10TLS
- 如何設定 HomePod?HomePod設定教程分享
- 程式設計師的8個注意程式設計師
- Python爬蟲怎麼設定動態IP代理,Python爬蟲要注意哪些事項?Python爬蟲
- Python命令列引數定義及注意事項Python命令列
- 【C++注意事項】2 變數宣告和定義C++變數