亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1505 | 回復(fù): 0
打印 上一主題 下一主題

MySQL5.5 Semi-synchronous Replication(半同步復(fù)制) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-20 09:46 |只看該作者 |倒序?yàn)g覽

MySQL5.5有很多的改進(jìn)和增強(qiáng),也引入了很多新功能。在可用性方面有如下幾點(diǎn)新特性:

  • Semi-synchronous Replication
  • Replication Heartbeat
  • Automatic Relay Log Recovery
  • Replication Per Server Filtering
  • Replication Slave Side Data Type Conversions

Semi-synchronous Replication(半同步復(fù)制)

我們知道在5.5之前,MySQL的復(fù)制其實(shí)是異步操作,而不是同步,也就意味著允許主從之間的數(shù)據(jù)存在一定的延遲,mysql當(dāng)初這樣設(shè)計(jì)的目的可能也是基于可用性的考慮,為了保證master不受slave的影響,并且異步復(fù)制使得master處于一種性能最優(yōu)的狀態(tài):寫完binlog后即可提交而不需要等待slave的操作完成。這樣存在一個(gè)隱患,當(dāng)你使用slave作為備份時(shí),如果master掛掉,那么會(huì)存在部分已提交的事務(wù)未能成功傳輸?shù)絪lave的可能,這就意味著數(shù)據(jù)丟失!

在MySQL5.5版本中,引入了半同步復(fù)制模式(Semi-synchronous Replication)能夠成功避免上述數(shù)據(jù)丟失的隱患。在這種模式下:master會(huì)等到binlog成功傳送并寫入至少一個(gè)slave的delay log之后才會(huì)提交,否則一直等待,直到timeout(默認(rèn)10s)。當(dāng)出現(xiàn)timeout的時(shí)候,master會(huì)自動(dòng)切換半同步為異步,直到至少有一個(gè)slave成功收到并發(fā)送Acknowledge,master會(huì)再切換回半同步模式。結(jié)合這個(gè)新功能,我們可以做到,在允許損失一定的事務(wù)吞吐量的前提下來保證同步數(shù)據(jù)的絕對安全,因?yàn)楫?dāng)你設(shè)置timeout為一個(gè)足夠大的值的情況下,任何提交的數(shù)據(jù)都會(huì)安全抵達(dá)slave。

半同步模式其實(shí)是作為MySQL5.5的一個(gè)plugin實(shí)現(xiàn)的,master和slave使用不同的plugin。默認(rèn)情況下沒有安裝該plugin,官方提供的MySQL Server RPM包默認(rèn)安裝后,會(huì)在/usr/lib(64)/mysql/plugin/下面找到該插件。安裝完插件之后,還需要手動(dòng)設(shè)置系統(tǒng)參數(shù)以開啟半同步復(fù)制模式。詳細(xì)的過程可參考下面步驟。

——————————————————————————

設(shè)置步驟:

【Master】

安裝插件

mysql>install plugin rpl_semi_sync_master soname ‘semisync_master.so’;
(文檔中給的插件名用單引號引起來了,我執(zhí)行卻提示語法錯(cuò)誤,把引號去掉后方能執(zhí)行成功)

然后會(huì)出現(xiàn)以下4個(gè)系統(tǒng)參數(shù):

  • rpl_semi_sync_master_enabled OFF
  • rpl_semi_sync_master_timeout 10000
  • rpl_semi_sync_master_trace_level 32
  • rpl_semi_sync_master_wait_no_slave ON

動(dòng)態(tài)修改rpl_semi_sync_master_enabled=ON,同時(shí)根據(jù)情況需要修改timeout=1000  (單位毫秒)

在show global status中也會(huì)出現(xiàn)如下的幾個(gè)狀態(tài):

  • Rpl_semi_sync_master_clients                0      ##表示有多少slave設(shè)置了半同步模式。
  • Rpl_semi_sync_master_net_avg_wait_time      0
  • Rpl_semi_sync_master_net_wait_time          0
  • Rpl_semi_sync_master_net_waits              0
  • Rpl_semi_sync_master_no_times               0
  • Rpl_semi_sync_master_no_tx                  0      ##表示沒有成功接收slave回執(zhí)的提交次數(shù)
  • Rpl_semi_sync_master_status                 OFF    ##表示當(dāng)前是異步模式還是半同步模式。
  • Rpl_semi_sync_master_timefunc_failures      0
  • Rpl_semi_sync_master_tx_avg_wait_time       0
  • Rpl_semi_sync_master_tx_wait_time           0
  • Rpl_semi_sync_master_tx_waits               0
  • Rpl_semi_sync_master_wait_pos_backtraverse  0
  • Rpl_semi_sync_master_wait_sessions          0
  • Rpl_semi_sync_master_yes_tx                 0      ##表示成功接收slave回執(zhí)的提交次數(shù)

————————————————————————-

【Slave】

安裝插件

mysql>install plugin rpl_semi_sync_slave soname ‘semisync_slave.so’;

然后會(huì)出現(xiàn)下列2個(gè)參數(shù):

  • rpl_semi_sync_slave_enabled OFF
  • rpl_semi_sync_slave_trace_level 32

動(dòng)態(tài)設(shè)置rpl_semi_sync_slave_enabled =ON,然后重啟replication(stop slave;start slave;)即可。記得一定要重啟,否則master無法確認(rèn)該slave是否開啟了半同步。相同的操作可以在任意多個(gè)slave中進(jìn)行設(shè)置。

show global status會(huì)出現(xiàn)下面的系統(tǒng)狀態(tài):

  • Rpl_semi_sync_slave_status ON   ##表示當(dāng)前處于異步模式還是半同步模式
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP