oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(4)

wangyiou1988發表於2014-05-11
       資料庫現在的問題依然是重啟之後,系統時間正確,但是在客戶端查詢時間會出現時間前移的問題,只有透過手工sqlplus啟動資料庫的方式才能解決,透過一個語句可以直觀的檢視出時間:
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'),to_char(current_date,'YYYY-MM-DD HH24:MI:SS') from dual;
執行結果就是 sysdate比current 早13個小時左右。
       這時我開看到了一篇文章
DOC ID 1476294.1  11.2.0.3 Wrong Sysdate Returned for Connections Through Listener if Database is Started With srvctl [ID 1476294.1]
文章裡說的解決方法就是設定LIBPATH 環境變數。
The workaround is to set environment variable LIBPATH and restart. To set environment variable:

$ srvctl setenv database -d -t 'LIBPATH=/lib'

 To check environment varilables for a running process:

於是我在兩個節點的oracle 下開始設定,但不好使,重啟之後時間依然有差距。

      這時我在metalink上又看到了一篇文章:How To Change Timezone for 11gR2Grid Infrastructure [ID 1209444.1],
裡面的意思是說:一旦OS預設時區被修改,注意確保以下2點:
1. 對於11.2.0.1 ,確保root、grid、oracle使用者的shell環境變數TZ設定正確!
2. 對於11.2.0.2及以上版本,確認 $GRID_HOME/crs/install/s_crsconfig_
< nodename>_env.txt 中的引數設定為正確的時區
     問題找到了,我們的資料庫版本是11.2.0.4,需要修改這個檔案,開啟這個檔案,

### This file can be used to modify the NLS_LANG environment variable,which determines the charset to be used for messages.

### For example, a new charset can be configured by settingNLS_LANG=JAPANESE_JAPAN.UTF8

### Do not modify this file except to change NLS_LANG, or under thedirection of Oracle Support Services

TZ=CST6CDT

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

RT_GRQ=ON

TNS_ADMIN=

ORACLE_BASE=

       安裝oracleCRS的時候作業系統時區為CST6CDT,安裝之後我們修改了作業系統時區和資料庫時區後就沒有修改過這個值。

       我們修改s_crsconfig_spdb1_env.txt的    TZ=Asia/Hong_Kong 
       注意:兩個節點都要修改,修改之後重啟生效。

到這裡,這個事總算是解決了,重啟時間正常。學到了很多啊

    


 

 

 

 

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25116248/viewspace-1158436/,如需轉載,請註明出處,否則將追究法律責任。

相關文章