轉~timesten系列六:定義複製,實現timesten的高可用性

xlfsy發表於2011-01-20
如果只有一臺TT放在前面提供服務,就算它再快,可能你也要考慮一下,這一臺TT出問題了怎麼辦?
TT的解決方案就是透過類似ORACLE data guard技術的複製,實現高可用性。
在TT裡面,源TT稱為master,而目標TT稱為 subscriber 。

在TT裡面,可以定義如下一些型別的高可用性環境
1.一臺TT為主,另外一臺只做資料複製
當主TT出現問題的時候,另外一臺接管業務
2.一臺TT為主,另外一臺TT為active standby
當主TT出現問題的時候,另外一臺接管業務,這種模式用得最多,也是TT推薦的模式
3.兩臺TT同時對外提供服務,但是隻分別提供部分表的操作
比如TT A提供表一的操作,同時把表一的修改同步到TT B
而TT B則提供表二的操作,同時把表二的修改同步到TT A
4.兩臺TT同時對外提供同樣的服務
同一張表可以同時在TT A 和TT B上面提供服務

在所有的高可用性模式下,TT都可供了三種資料同步模式
1.完全非同步
這種模式下,事物在master 直接提交,由 replication agent根據日誌非同步完成同步工作
這種模式提高了最高的效能模式。
2.半同步模式
這種模式下,事物在master 提交時,由 replication agent 把修改資訊複製到 subscriber ,等 subscriber 確認收到這些修改後,
事物在master上才能提交。
3.完全同步模式
這種模式下,事物在master 提交時,由 replication agent 把修改資訊複製到 subscriber ,等 subscriber 確認收到這些修改後,並且在subscriber 應用完成這些事物並提交後,事物在master上才能提交。
這種模式提高了最高的保護模式。

這和oracle的data guard保護模式幾乎一致。

同步的原理是 master和 subscriber 都透過replication agent ,根據日誌的資訊,相互同步。

複製的單位可以是一張表,幾張有主外來鍵關係的表,或者整個data store .

建立複製,非常的簡單,以如下環境為例說明
主機 rac01安裝了TT ,data store放在 /oracle/timesten/TimesTen/tt70/info/wzy ,檔案以wzy開頭,DSN=wzy_tt70
主機 rac02安裝了TT ,data store放在 /oracle/timesten/TimesTen/tt70/info/wzy ,檔案以wzy開頭,DSN=wzy_tt70

首席檢查rac01和rac02的 /etc/hosts檔案,加上對rac01,rac02的解析
如下:
10.0.0.1 rac01
10.0.0.2 rac02
我們以test_r表為例說明,首先在兩臺TT的data store上面建立該表
ttIsql wzy_tt70
Command> create table test_r(id number(2) primary key);

然後登陸rac01
執行如下操作:從rac01複製到rac02
建立單向的複製
登陸rac01的wzy_tt70 data store
ttIsql wzy_tt70
Command>CREATE REPLICATION reptest ELEMENT TABLE test_r MASTER wzy on "rac01" SUBSCRIBER wzy on "rac02";

注意:MASTER 和 SUBSCRIBER 後面跟的都是 data store對應的檔名的字首! 比如
datastore的配置是
/oracle/timesten/TimesTen/tt70/info/wzy/dstest,那麼就應該是dstest .


然後在rac01和rac02上面 啟動 replication agent
ttAdmin -repStart wzy_tt70

在rac01的wzy_tt70上面生成一些記錄,現在就能夠同步到rac02的wzy_tt70了。
簡單吧?
[@more@]

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

相關文章