最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL主從同步加速Transfer--FAQ

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 09:41:53
文檔

MySQL主從同步加速Transfer--FAQ

MySQL主從同步加速Transfer--FAQ:Q: Transfer是什么 A: 是一個解決MySQL原生主從同步延遲的方案。 Transfer本身是一個在MySQL源碼上打的patch,可以用于當(dāng)Slave,也可以用于當(dāng)?shù)谌焦ぞ?,將Master的數(shù)據(jù)同步發(fā)給Slave。 利用多線程實(shí)現(xiàn)主從無延遲。 Q: Transfer目前的發(fā)布形式?
推薦度:
導(dǎo)讀MySQL主從同步加速Transfer--FAQ:Q: Transfer是什么 A: 是一個解決MySQL原生主從同步延遲的方案。 Transfer本身是一個在MySQL源碼上打的patch,可以用于當(dāng)Slave,也可以用于當(dāng)?shù)谌焦ぞ?,將Master的數(shù)據(jù)同步發(fā)給Slave。 利用多線程實(shí)現(xiàn)主從無延遲。 Q: Transfer目前的發(fā)布形式?

Q: Transfer是什么 A: 是一個解決MySQL原生主從同步延遲的方案。 Transfer本身是一個在MySQL源碼上打的patch,可以用于當(dāng)Slave,也可以用于當(dāng)?shù)谌焦ぞ?,將Master的數(shù)據(jù)同步發(fā)給Slave。 利用多線程實(shí)現(xiàn)主從無延遲。 Q: Transfer目前的發(fā)布形式? A: Transfer

Q: Transfer是什么

A: 是一個解決MySQL原生主從同步延遲的方案。 Transfer本身是一個在MySQL源碼上打的patch,可以用于當(dāng)Slave,也可以用于當(dāng)?shù)谌焦ぞ?,將Master的數(shù)據(jù)同步發(fā)給Slave。 利用多線程實(shí)現(xiàn)主從無延遲。

Q: Transfer目前的發(fā)布形式?

A: Transfer會在今年內(nèi)開源,目前的發(fā)布形式是可執(zhí)行的mysqld文件。 有兩個版本,分別是官方的5.1.48 和 Percona Server 5.5.18.
-


Transfer.MySQL.5.1.48 下載地址 md5: 4d49f8d90e8bee8c870c1ef3a38cc979

Transfer.Percona.5.5.18 下載地址 md5: f4783971c38008e0780cca44a97368eb

最后更新日期 2012.9.12

(下載后先對一下md5 ^_^)

Q: Transfer是否會改變主庫上的binlog在從庫上的執(zhí)行順序,導(dǎo)致數(shù)據(jù)不一致?

A:會改變執(zhí)行順序。但Transfer保證對于相同記錄的操作都是按順序的,因此不會導(dǎo)致數(shù)據(jù)不一致。

Q: 我使用了transfer模式,但是transfer的錯誤日志為什么一直在輸出 "trans->inner_events 3",而從庫上沒有更新?

A: Transfer啟動前需要保證Transfer里面要有與slave上相同的表和表結(jié)構(gòu),請先確認(rèn)下,若無,則需要從slave把schema都dump 過去。



Q: 我用的是mysql5.1.48版本,我在transfer里面建表的時候會core dump

A: 若你用的是innodb_plugin版本,還需要替換ha_innodb_plugin.so.0.0.0 (lib/mysql/plugin 目錄下) 下載地址



Q: 需要配置上做什么改變

A:請參考此文 http://www.linuxidc.com/Linux/2012-09/70627.htm



Q: 對主從庫有什么配置限制

A:有以下限制

1) 主庫的binlog格式必須是row

2) 主庫的表必須有primary key

3) 從庫的 max_allowed_packet建議改為1G。主庫的單個事務(wù)大小不能超過max_allowed_packet



Q: 我覆蓋了mysqld后,Transfer整個實(shí)例起不來?

A:先確認(rèn)一下mysqld是否有可執(zhí)行權(quán)限, 若無,執(zhí)行 chmod 755 mysqld.



Q: 我用slave模式,能夠隨時替換回原來的版本嗎?

A: 如果要隨時替換回原來的版本,可以把增加的參數(shù)都加上loose_前綴,這樣替換mysqld,重啟,start slave,就可以了。



Q: 什么情況下不適合用Transfer?

A: 其實(shí)一個簡單的原則,如果你的原生從庫不延遲,就不需要用(貌似是廢話).



Q: 我的測試場景下transfer的TPS比原生的還慢?感謝 @-周博

A: 若是從空表開始壓力,并且你的BP開很大,io性能很好,更新語句簡單,qps很高(這個case里是12w/s),此時單線程完全能夠執(zhí)行得飛快。Transfer模型中的生產(chǎn)+消費(fèi)環(huán)節(jié)和多線程爭用反而會導(dǎo)致性能下降(在這個case里面是6w/s)。

在實(shí)際線上場景中,更多的情況是io瓶頸,此時才能利用好多線程的效果,Transfer的效果才能體現(xiàn)出來。在我們一個線上場景的測試中是原生500/s,用Transfer后6000/s.

PS: 個人比較建議用源碼安裝,Percona Server的 源碼地址

我的cmake參數(shù)

CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
CXX=gcc
CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
export CFLAGS CXX CXXFLAGS
#cmake . -DCMAKE_INSTALL_PREFIX=/home/dingqi.lxb/mysql5 -DEXTRA_CHARSETS=all
cmake . \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DSYSCONFDIR:PATH=/home/mysql5 \
-DCMAKE_INSTALL_PREFIX:PATH=/home/mysql5 \
-DENABLED_PROFILING:BOOL=ON \
-DENABLE_DEBUG_SYNC:BOOL=OFF \
-DMYSQL_DATADIR:PATH=/home/dingqi.lxb/mysql5/data \
-DMYSQL_MAINTAINER_MODE:BOOL=OFF \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_BIG_TABLES:BOOL=ON \
-DWITH_FAST_MUTEXES:BOOL=ON \
-DENABLE-PROFILING:BOOL=ON \
-DWITH_SSL:STRING=bundled \
-DWITH_UNIT_TESTS:BOOL=OFF \
-DWITH_ZLIB:STRING=bundled \
-DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON \
-DWITH_PLUGINS=heap,csv,partition,innodb_plugin,myisam \
-DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DWITH_EXTRA_CHARSETS=ALL \
-DENABLED_ASSEMBLER:BOOL=ON \
-DENABLED_LOCAL_INFILE:BOOL=ON \
-DENABLED_THREAD_SAFE_CLIENT:BOOL=ON \
-DENABLED_EMBEDDED_SERVER:BOOL=OFF \
-DWITH_CLIENT_LDFLAGS:STRING=all-static \
-DINSTALL_LAYOUT:STRING=STANDALONE \
-DCOMMUNITY_BUILD:BOOL=ON;

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

MySQL主從同步加速Transfer--FAQ

MySQL主從同步加速Transfer--FAQ:Q: Transfer是什么 A: 是一個解決MySQL原生主從同步延遲的方案。 Transfer本身是一個在MySQL源碼上打的patch,可以用于當(dāng)Slave,也可以用于當(dāng)?shù)谌焦ぞ?,將Master的數(shù)據(jù)同步發(fā)給Slave。 利用多線程實(shí)現(xiàn)主從無延遲。 Q: Transfer目前的發(fā)布形式?
推薦度:
標(biāo)簽: 同步 加速 mysql
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top