您好,登錄后才能下訂單哦!
這篇文章主要介紹“Oracle集群時間怎么同步”,在日常操作中,相信很多人在Oracle集群時間怎么同步問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Oracle集群時間怎么同步”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在RAC中集群的時間應該是保持同步的,否則可能導致很多問題,比如:依賴于時間的應用會造成數據的錯誤,各種日志打印的順序紊亂,這將會影響問題的診斷,嚴重的可能會導致集群宕機或者重新啟動集群時節點無法加入集群。
在11gR2前,集群的時間是由NTP同步的,而在11gR2后,Oracle引入了CTSS組件,如果系統沒有配置NTP,則由CTSS來同步集群時間。
NTP和CTSS是可以共存的,且NTP的優先級要高于CTSS,也就是說如果系統中同時有NTP和CTSS,集群的時間是由NTP同步的,CTSS會處于觀望(Observer)模式,只有當集群關閉所有的NTP服務,CTSS才會處于激活(Active)模式。
以下是集群時間同步的兩種模式:
1)NTP同步模式
節點1的octssd.log中記錄發現ntp服務,ctss服務會自動切換到觀望模式。
節點2的octssd.log中也會記錄發現ntp服務,ctss服務為觀望模式,并且同步時間的主節點是節點1。
2)CTSS同步模式
節點1的octssd.log中記錄沒有發現ntp服務,ctss服務為激活模式。
節點2的octssd.log中記錄沒有發現ntp服務,ctss服務為激活模式,同步時間的主節點是節點1,并且會告訴你集群的時間有差異,但是因為差異過小,無需調整。
雖然集群時間不一致,但是這種情況下校驗結果是通過的,而且略微的差異范圍內集群也會自動同步回來。
如果在我們生產系統中碰到集群時間不一致會導致什么結果,我們的排查思路是怎么樣的,以下是模擬集群時間不一致的場景。
更改節點2的時間后在ASM和DB的alert日志中產生了以下的告警信息
點擊(此處)折疊或打開
Warning: VKTM detected a time drift.
Time drifts can result in an unexpected behavior such as time-outs. Please check trace
file for more details.
oracle@com2:/opt/oracle/diag/rdbms/orcl/orcl2/trace>more orcl2_vktm_34715.trc
Trace file /opt/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_vktm_34715.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
ORACLE_HOME = /opt/oracle/products/11.2.0
System name: Linux
Node name: com2
Release: 3.10.0-693.11.1.el7.x86_64
Version: #1 SMP Fri Oct 27 05:39:05 EDT 2017
Machine: x86_64
Instance name: orcl2
Redo thread mounted by this instance: 0 <none>
Oracle process number: 4
Unix process pid: 34715, image: oracle@com2 (VKTM)
*** 2018-06-08 20:01:39.824
*** SESSION ID:(921.1) 2018-06-08 20:01:39.824
*** CLIENT ID:() 2018-06-08 20:01:39.824
*** SERVICE NAME:() 2018-06-08 20:01:39.824
*** MODULE NAME:() 2018-06-08 20:01:39.824
*** ACTION NAME:() 2018-06-08 20:01:39.824
kstmmainvktm: succeeded in setting elevated priority
highres_enabled
*** 2018-06-08 20:01:39.824
VKTM running at (1)millisec precision with DBRM quantum (100)ms
[Start] HighResTick = 1528459299824585
kstmrmtickcnt = 0 : ksudbrmseccnt[0] = 1528459299
*** 2018-06-10 20:04:00.000
kstmchkdrift (kstmhighrestimecntkeeper:highres): Time jumped forward by
(172844812599)usec at (1528632240000738) whereas (1000000) is allowed
VKTM進程發現系統時間變了,alert日志會產生相應的告警信息,從產生的trace文件中可知,系統向前推進了172844812599微秒,也即為48小時(也就是我們模擬更改的時間),而允許的差異范圍為1秒。
節點2的octssd.log中和ctss狀態都記錄了偏移的時間,而且校驗也是失敗的,校驗結果是需要同步節點2的時間,此時因為集群時間差異較大,同步服務往往是無法做到的,只有手工同步才能修復。
在沒有同步時間之前,重啟節點2是無法正常啟動的,從以下命令可知是在ctss這一步有問題,通過重新更改正確時間后,集群才能正常啟動。
到此,關于“Oracle集群時間怎么同步”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。