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

wangyiou1988發表於2014-05-03
       我發現原來在安裝AIX的時候,時區就搞錯了,不是中國的時區,時間卻是一樣的,導致剛才同步的時候,時間直接變到昨天晚上了。我進行了實驗:
在資料庫上執行:
SQL> select sessiontimezone from dual;  顯示出的時區 和系統的時區是一樣的。
SQL> select dbtimezone from dual; 顯示出資料庫的時區。

我們改變了系統的時區之後,sessiontimezone 的時區也隨著系統的改變而改變了。我們原來的老庫的 sessiontimezone 和dbtimezone分別是 +00:00 和 +08:00
說明原來資料庫一般的dbtimezone 都是+ 00:00  但從session的角度,也就是說人們登入的時候,都是按+08:00 北京時間來進行操作的。
對於一個生產資料庫,改變dbtimezone ,我感覺並沒有必要,並且我們的老庫一直也是00:00,我想只是需要把 sessiontimezone改變就可以了,改變作業系統的時區,這個
值就自動的改變了。

還有一個問題,就是確定資料庫中是否有跟timezone型別的列,運用下列語句:


select c.owner || '.' || c.table_name || '(' || c.column_name || ') -'
    || c.data_type || ' ' col
  from dba_tab_cols c, dba_objects o
 where c.data_type like '%WITH LOCAL TIME ZONE'
    and c.owner=o.owner
   and c.table_name = o.object_name
   and o.object_type = 'TABLE'
order by col;


select u.name || '.' || o.name || '.' || c.name TSLTZcolumn
  from sys.obj$ o, sys.col$ c, sys.user$ u
 where c.type# = 231
   and o.obj# = c.obj#
   and u.user# = o.owner#;

如果沒有資料,我們就可以大膽的修改時區了。
具體的步驟規劃如下:
1.停止資料庫。
2.修改作業系統的時區。(修改之後,系統時間會發生改變,但是資料庫已經停止,所以並不影響,注意,按照推算,sessiontimezone也會發生改變)
3.把開機自動啟動資料庫去掉,然後重啟作業系統 (只有重啟,時區的修改才能生效)
4.重啟機器之後,檢查時區是否修改,這時作業系統時間也已經回到了過去,因為原來我的時區錯誤,這時我們開始部署ntp客戶端,同步時間,啟動xntp程式,配置開機自啟。
5.啟動資料庫,檢視sessiontimezone。

先規劃到這,未完待續。

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

相關文章