1. 程式人生 > >修改ORACLE RAC的系統時間

修改ORACLE RAC的系統時間

環境:RHEL 6.4  oracle 11g RAC架構

問題說明:環境中主要有以下幾個時間:一個是linux系統時間、一個是linux硬體時間、還有一個是應用從oracle中取出的系統時間;其中第三個時間主要取決於第一個時間;而系統重啟的時候,作業系統會根據硬體時間來修改linux系統時間。本問題中,linux系統時間和硬體時間不一致,且系統時間晚了40分鐘,導致資料庫取系統時間時,同樣晚40分鐘。

原理說明:ORACLE RAC有兩種時間更新機制:一個是利用NTPD服務更新時間;二是通過CTSSD服務從主節點將時間同步至其他節點。本叢集採用了第二種方式。

調整過程:本叢集為兩節點叢集,因此只需要停掉副節點,修改主節點時間,然後再開啟副節點即可。具體操作流程如下:

第一部分:關閉主節點相關服務

1、關閉資料庫:export ORACLE_SID=db2 ;sqlplus / as sysdba ;shutdown

2、關閉叢集軟體:crsctl stop has -f (需要用root賬號執行,如果執行報錯commond not found,則開啟$grid_home/bin/目錄再執行)

第二部分:修改主節點系統時間

3、修改主節點時間:date -s "2018-11-15 18:00:00"(修改主節點系統時間);hwclock  --systohc(將主節點系統時間同步至硬體時間);date  /hwclock --show (觀察主節點系統時間及硬體時間是否正確)

第三部分:啟動副節點叢集及應用

4、#crsctl start has (啟動叢集軟體)

5、export ORACLE_SID=db2 ;sqlplus / as sysdba(啟動資料庫)

第四部分:檢視副節點系統時間,並更新副節點硬體時間

6、date(檢視系統時間)

7、hwclock --systohc(同步系統時間至硬體時間)

8、hwclock  --show(檢視硬體時間)