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

  免費注冊 查看新帖 |

Chinaunix

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

雙M模式下,DDL到備庫執(zhí)行的好處 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-22 08:53 |只看該作者 |倒序瀏覽
架構(gòu)M1<->M2,M1主,M2備,雙向同步。

現(xiàn)在需要對T1表添加一個字段COL1。
一般的做法是直接在M1上進行ALTER TABLE操作,SQL語句記錄到BINLOG,復(fù)制到M2,再在M2上重放,完成表結(jié)構(gòu)的修改。這樣的操作在表小的時候能夠很快完成,但是存在如下幾種安全隱患:

1:T1表很大,比如10G,由于MYSQL處理DDL機制,導(dǎo)致這個ALTER TABLE操作需要30分鐘才能完成。在這30分鐘內(nèi),T1表是被鎖定的,不能寫入,那么只要涉及到T1表的寫入業(yè)務(wù)就會全部等待,直至超時報錯退出。嚴(yán)重影響了正常業(yè)務(wù)的運行。

2:T1表一般大,比如1G,ALTER TABLE處理需要5分鐘,而且業(yè)務(wù)允許5分鐘的寫入失敗。主上的ALTER TABLE寫入BINLOG日志后,立刻復(fù)制到M2上,在M2上進行回放。由于MYSQL復(fù)制是單線程的,M2對于復(fù)制的SQL線程在完成ALTER TABLE之前,是不會執(zhí)行其他SQL的。因為它排在隊列的最前面。如果此時M1宕機,M2上還會存在5分鐘的SQL沒有被執(zhí)行完,那么M1,M2上的數(shù)據(jù)是不一致的。這時候M2沒法頂上做寫入服務(wù)。

出現(xiàn)1,2都是不能接受的。
處理1的方式:
在M2上以不記錄日志的方式

set sql_log_bin =0
alter table t1.....(在這里給添加的字段一個默認(rèn)值)
set sql_log_bin =1

此時T1被鎖,但是不影響別的表的復(fù)制。當(dāng)M2上的DDL操作完成后,停止M2到M1的復(fù)制,再把寫入切換到M2上,再做M1上的DDL。全部替換好后,替換新的PHP程序。

處理2的方式:
在M2上操作,不寫日志,完成后到M1操作。






您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP