mysql replication for tungsten

來源:互聯網
上載者:User

tungsten本身就是一個資料複製的中介軟體,他支援不同的資料之間的資料轉送。 基本上做資料流平台的都會用到這個工具。
這個東西的作用簡單來說就是:你不必搭建Mysql主從複製關係,也能複製資料。

前面已經介紹過tungsten是什麼東西,現在主要介紹一下怎麼使用。
master-slave的tungsten安裝很簡單,因為我一台機器上我是一台機器上安裝了master,slave,所以我需要安裝兩次tungsten.
Mysql 部署好以後,搭建好主從複製關係,在slave上執行stop slave;
然後安裝兩個tungsten.命令分別為:
master:
到tungsten的home目錄下,執行

1 ./tools/tungsten-installer \2 –master-slave \3 –master-host=x.x.x.x \4 --cluster-hosts=x.x.x.x \5 –datasource-user=root \6 –datasource-password=123 \7 –service-name=sys \8 –home-directory=/home/ddb/zty/liky \9 –start 

安裝之前確定許可權沒有問題。
slave:

 1 ./tools/tungsten-installer \ 2 --master-slave \ 3 --cluster-hosts=x.x.x.x \ 4 --master-host=x.x.x.x \ 5 --master-thl-port=2112 \ 6 --datasource-port=6999 \ 7 --datasource-mysql-conf=./my2.cnf \ 8 --datasource-user=zty \ 9 --datasource-password=zty \10 --service-name=sys \11 --home-directory=/home/ddb/liky1 \12 --thl-port=4112 \13 --rmi-port=12000 \14 --start-and-report

同樣的安裝之前需要確認許可權沒有問題,同時thl-port,rmi-port都指定一下,因為master使用的預設值,slave就不能再使用了。
--datasource-mysql-conf這個也手動指定下,不然也會出錯。
更多的詳細配置參考:

./tools/tungsten-installer --help-all

還有一點需要注意的是,master和slave的server-name必須一樣。

查看安裝是否成功:

 1 master: 2 ddb@db-35:~/zty/liky1/tungsten/tungsten-replicator/bin$ ./trepctl services 3 Processing services command... 4 NAME VALUE 5 ---- ----- 6 appliedLastSeqno: 1614963 7 appliedLatency : 0.212 8 role : master 9 serviceName : sys10 serviceType : local11 started : true12 state : ONLINE13 Finished services command...14 15 slave :16 ddb@db-35:~/zty/liky1/tungsten/tungsten-replicator/bin$ ./trepctl -port 12000 services17 Processing services command...18 NAME VALUE19 ---- -----20 appliedLastSeqno: 161496321 appliedLatency : 0.99422 role : slave23 serviceName : sys24 serviceType : local25 started : true26 state : ONLINE27 Finished services command...

下面我們類比往master上insert資料,看看tungsten會產生什麼格式的資料。

查看資料的命令很簡單:
在slave上查看。

 1 ddb@db-35:~/zty/liky1/tungsten/tungsten-replicator/bin$ ./thl -conf ../conf/static-sys.properties list | less 2  3 SEQ# = 14 / FRAG# = 0 (last frag) 4 - TIME = 2012-08-17 12:38:08.0 5 - EPOCH# = 1 6 - EVENTID = mysql-bin.000034:0000000000002494;0 7 - SOURCEID = db-35 8 - METADATA = [mysql_server_id=999;service=sys;shard=test] 9 - TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent10 - SQL(0) =11 - ACTION = INSERT12 - SCHEMA = test13 - TABLE = t114 - ROW# = 015 - COL(1: ) = 1116 - COL(2: ) = 1

在命令後面加一個 -sql會能更容易觀察。

ddb@db-35:~/zty/liky1/tungsten/tungsten-replicator/bin$ ./thl -conf ../conf/static-sys.properties list -sql

1 insert into test.t1(b) values (1) /* ___SERVICE___ = [sys] */;2 - METADATA = [mysql_server_id=999;service=sys;shard=test]3 - TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent4 SET INSERT_ID = 16294965 - OPTIONS = [##charset = ISO8859_1, autocommit = 1, sql_auto_is_null = 0, foreign_key_checks = 1, unique_checks = 1, sql_mode = '', character_set_client = 8, collation_connection = 8, collation_server = 8]6 USE ;

tungsten的LOG會在 安裝目錄/THL/server-name/ , 也是使用thl工具就能單獨查看。
有個問題,如果mysql使用的是ROW Base的binlog-format的話,tungsten就不支援使用-sql參數解析:

# SQL output on row change events is not supported yet.- METADATA = [mysql_server_id=999;service=sys;shard=test]- TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent# SQL output on row change events is not supported yet.

你也可以通過這樣的命令查看tungsten的LOG的寫入狀態。

./trepctl -port 12000 status。

Tungsten支援從任意POST接收BINLOG,做法:

./trepctl offline
./trcpctl online -from-enent

如果寫入的過程中出現了問題,你也可以SKIP掉這個位置:

./trcpctl online -skip-seqno
具體請查看:
./trcpctl help

Tungsten會在Mysql上建立一個database,裡面有一些表,trep_commit_seqno表會記錄binlog的即時變化情況,如果binlog一直有變化,會一直有Update語句更新這個表,
這個表只有一條記錄,所以這是對應能有影響的。

不知道你注意到沒有我安裝兩個tungsten的時候,一直有指定–master-slave,其實是有兩種的:{--direct|--master-slave}
它是什麼意思呢?看圖吧:

master-slave

direct

同時tungsten也支援M-M也就是master-master,不過看了一下,沒啥特別的地方,還是一個同一時刻只能有一個master寫,second master 做臨時切換用的。大家自己找文檔看看吧。

http://code.google.com/p/tungsten-replicator/wiki/TRCMultiMasterInstallation#Multi-Master_Installation

 

http://code.google.com/p/tungsten-replicator/wiki/TRCMultiMasterInstallation#Multi-Master_Installation

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.