国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
通過tungsten replicator實現(xiàn)mysql多主一從的備份架構(gòu)



Tungsten replicator簡介

Tungsten是一套用于數(shù)據(jù)庫集群和復(fù)制的軟件集合,包括replication, management, SQL routing, and proxying。Ppc2009大會對這套軟件專門做了介紹,下載地址如下
[url=http://sourceforge.net/project/showfiles.php?group_id=256125]http://sourceforge.net/project/showfiles.php?group_id=256125
tungsten replicator則是這套軟件中用于數(shù)據(jù)復(fù)制的一個組件。通過在主從服務(wù)器上部署的java程序?qū)χ鲾?shù)據(jù)庫的binlog進(jìn)行跟蹤,并將更新的內(nèi)容解析出來發(fā)送到從服務(wù)器,而從服務(wù)器的java則將接收到的更新寫入從數(shù)據(jù)庫。


測試環(huán)境
Master1
192.168.1.8
Master2
192.168.1.4
Slave
192.168.1.7

由于tungsten replicator是java程序,因此需要各個服務(wù)器都架設(shè)jdk環(huán)境

Maser配置

下載tungsten replicator1.0.2的壓縮包,解壓到一個單獨的目錄。將conf目錄下的replicator.properties.mysql重命名為replicator.properties,并根據(jù)實際情況修改以下內(nèi)容:

#聲明當(dāng)前服務(wù)器是master模式
replicator.role=master
#服務(wù)啟動后自動開始復(fù)制
replicator.auto_enable=true
#指定一個全局唯一的id,建議用服務(wù)器名
replicator.source_id=dev08
#指定用于存放復(fù)制數(shù)據(jù)的庫名,在mysql手動生成一個空的庫,并在my.cnf中將這個庫加入binlog-ignore-db參數(shù)里。默認(rèn)數(shù)據(jù)庫為tungsten
replicator.schema=tungsten
#指定master的ip,本機(jī)則使用localhost
replicator.thl.remote_uri=thl://localhost/
#如果replicator.schema參數(shù)指定了其他的數(shù)據(jù)庫名,則需要把tungsten改成指定的數(shù)據(jù)庫名。
replicator.thl.url=jdbc:mysql://localhost/tungsten
#指定binlog文件所在的目錄
replicator.extractor.mysql.binlog_dir=/usr/local/mysql/var
#指定binlog文件名的前綴
replicator.extractor.mysql.binlog_file_pattern=mysql-bin
#指定replicator程序使用的數(shù)據(jù)庫用戶名和密碼,并在數(shù)據(jù)庫中生成該用戶,需要super權(quán)限。
replicator.thl.user=tungsten
replicator.thl.password=secret
replicator.applier.mysql.host=localhost
replicator.applier.mysql.port=3306
replicator.applier.mysql.user=tungsten
replicator.applier.mysql.password=secret
replicator.extractor.mysql.host=localhost
replicator.extractor.mysql.user=tungsten
replicator.extractor.mysql.password=secret

配置完成后使用bin目錄下的trepsvc命令啟動
Trepsvc start
用bin目錄下的trepctl查看服務(wù)器狀態(tài)
Trepctl status
Name
Value
===============================================
System ID
dev08
System Version:
1.0-beta5
System State:
ONLINE:MASTER
System Uptime (S): 282739.972s
State Uptime (S):
282739.351s
Error:
null
Error Exception:
null
Min Seq No:
0
Max Seq No:
179
Monitor Intvl (S): 282740.011
Extr Total:
179
Extr Last Seq No:
179
Extr/Sec:
6.330904427029223E-4
Recv Total:
0
Recv Last Seq No:
-1
Recv Source TS:
null
Recv Target TS:
null
Recv Latency (S):
0.0
Recv/Sec:
0.0
Apply Total:
0
Apply Last Seq No: -1
Apply Source TS:
null
Apply Target TS:
null
Apply Latency (S): 0.0
Apply/Sec:
0.0
State: ONLINE:MASTER
Seqno Range: 0 -> 179
當(dāng)state為ONLINE:MASTER說明啟動成功。
[font=Wingdings]
[/font]Slave配置

由于要從2個master上同步數(shù)據(jù),所以要將tungstereplicator解壓到2個不同的目錄,然后分別啟動2個目錄里的tungsten replicator程序。
基本配置和master相同,只是replicator.properties的內(nèi)容不同,根據(jù)實際情況修改以下內(nèi)容:

#聲明本機(jī)是slave模式
replicator.role=slave
#服務(wù)啟動后自動開始復(fù)制
replicator.auto_enable=true
#指定一個全局唯一的id,slave上2個replicator需要不同的id
replicator.source_id=dev071
#指定用于存放復(fù)制數(shù)據(jù)的庫名,并在my.cnf中將這個庫加入binlog-ignore-db參數(shù)里。2個replicator需要不同的庫存放數(shù)據(jù),在mysql里手動生成這2個空的庫,并在my.cnf中將這2個庫加入binlog-ignore-db參數(shù)里
replicator.schema=svnrep
#指定rmi端口,2個replicator需要指定不同端口
replicator.rmi_port=11000
#指定thl端口,2個replicator需要指定不同端口
replicator.thl.uri=thl://0.0.0.0:12112/
#指定master的ip,2個replicator指定不同master用于復(fù)制數(shù)據(jù)庫。
replicator.thl.remote_uri=thl://192.168.1.4/
# replicator.schema參數(shù),將svnrep改為實際的數(shù)據(jù)庫名。
replicator.thl.url=jdbc:mysql://localhost/svnrep
其他配置與master相同。

配置完成后使用bin目錄下的trepsvc命令啟動
Trepsvc start
用bin目錄下的trepctl查看服務(wù)器狀態(tài)
Trepctl status
Name
Value
===============================================
System ID
dev071
System Version:
1.0-beta5
System State:
ONLINE:SLAVE
System Uptime (S): 6509.149s
State Uptime (S):
6325.891s
Error:
null
Error Exception:
null
Min Seq No:
0
Max Seq No:
5
Monitor Intvl (S): 6509.153
Extr Total:
0
Extr Last Seq No:
-1
Extr/Sec:
0.0
Recv Total:
2
Recv Last Seq No:
5
Recv Source TS:
2009-06-22 15:53:54.581
Recv Target TS:
2009-06-22 15:58:26.343
Recv Latency (S):
271.762
Recv/Sec:
3.072588835840643E-4
Apply Total:
1
Apply Last Seq No: 5
Apply Source TS:
2009-06-22 15:53:54.581
Apply Target TS:
2009-06-22 15:58:26.352
Apply Latency (S): 271.771
Apply/Sec:
1.536292765781721E-4
State: ONLINE:SLAVE
Seqno Range: 0 -> 5
當(dāng)state為ONLINE:SLAVE時,說明已經(jīng)復(fù)制成功。
 
由于當(dāng)前版本的trepctl命令默認(rèn)使用的是10000端口,所以查看端口為11000的replicator狀態(tài)需要手動設(shè)置一下系統(tǒng)變量
export REPLICATOR_RMI_PORT=11000
然后再執(zhí)行trepctl即可。

Tungsten replicator的一些特點

Tungsten replicator被定義為是異構(gòu)數(shù)據(jù)庫復(fù)制框架,可實現(xiàn)不同版本,不同種類數(shù)據(jù)庫之間的數(shù)據(jù)庫復(fù)制。根據(jù)官方的說明,現(xiàn)在可以實現(xiàn)mysql各版本件,以及mysql與oracle間的數(shù)據(jù)庫復(fù)制,但是一些函數(shù)上限制還是不能避免。
本來測試這個軟件是想用來代替mysql replication的,但是測試的效果不是很好,100萬條記錄同步,mysql replication需要4分10秒,tungsten replicator需要5分30秒。對行復(fù)制模式的binlog支持不是很好,對ddl語句支持不是很好。
由于tungsten replicator使用的是jdbc進(jìn)行數(shù)據(jù)操作,所以一些在數(shù)據(jù)庫中可以進(jìn)行的操作會被jdbc認(rèn)為是非法操作而導(dǎo)致復(fù)制中止,例如像datetime字段插入一個空字符。,所以如果web應(yīng)用層不是java程序的話還是有一定風(fēng)險的。而且java程序本身也需要一定的內(nèi)存,當(dāng)數(shù)據(jù)庫的寫入和更新操作比較頻繁導(dǎo)致內(nèi)存不夠的時候,master上的tungsten會因為內(nèi)存不夠而出錯,但是不會造成數(shù)據(jù)丟失,只是復(fù)制會中止。測試中我的服務(wù)器是2G內(nèi)存,innodb_buffer_pool_size為1G,當(dāng)我批量生成100萬的數(shù)據(jù)的時候就會出錯。tungsten默認(rèn)最大內(nèi)存為256M,可以通過修改wrapper.conf的wrapper.java.maxmemory參數(shù)來增加內(nèi)存上限。
不過這個軟件更新還是很快的,測試的時候還是1.0.1,測試完畢后就已經(jīng)更新到1.0.2了。在這個軟件的開發(fā)計劃中,并行復(fù)制是比較讓人期待的功能。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
異地多活:MySQL實時雙向(多向)復(fù)制實踐
保駕11.11 京東多中心交易系統(tǒng)技術(shù)解析
auto_create_slave
Galera replication for MySQL
最新MakerBot Replicator 2 桌面3D打印機(jī)發(fā)布
有關(guān)Mysql master/slave replication的應(yīng)用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服