W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們都知道binlog_format有三種可選配置:STATEMENT、ROW、MIXED,相應(yīng)地,基于這三種模式的Replication分別稱(chēng)為SBR(STATEMENT BASED Replication)、RBR、MBR。 同時(shí),我們也知道,MySQL Replication可以支持比較靈活的binlog規(guī)則,可以設(shè)置某些庫(kù)、某些表記錄或者忽略不記錄。
通常地,我們強(qiáng)烈建議不要設(shè)置這些規(guī)則,默認(rèn)都記錄就好,在Slave上也是如此,默認(rèn)所有庫(kù)都進(jìn)行Replicate,不要設(shè)置DO、IGNORE、REWRITE規(guī)則。 如果非要設(shè)置這些規(guī)則的話(huà),可能會(huì)導(dǎo)致某些場(chǎng)景下或者某些特定的SQL無(wú)法被記錄,就需要特別注意了。
我經(jīng)過(guò)比較簡(jiǎn)單的測(cè)試,不同的binlog_format可能會(huì)導(dǎo)致某些SQL不被記錄的情況總結(jié)如下:
上面的測(cè)試區(qū)分了兩種模式,一種是連接時(shí)指定了其他數(shù)據(jù)庫(kù),一種是連接時(shí)未指定任何數(shù)據(jù)庫(kù),相當(dāng)于下面的兩種方式:
#假設(shè)do/ignore規(guī)則中的DB名字叫DoDB/IgnoreDB/RewriteDB的話(huà),OtherDB是規(guī)則之外的其他DB
#一種是:連接時(shí)指定了do/ignore/rewrite規(guī)則之外的其他DB
mysql -h host -u user -p passwd -p port -A OtherDB
#還有一種是:連接時(shí)不指定任何DB
mysql -h host -u user -p passwd -p port -A
#tips,加上 -A 是--no-auto-rehash的縮寫(xiě),其作用是連接后不讀取數(shù)據(jù)庫(kù)、表、字段信息。與其相反的選項(xiàng)是 --auto-rehash,也就是連接后會(huì)讀取數(shù)據(jù)庫(kù)、表、字段信息,以便自動(dòng)補(bǔ)齊。
更多情況請(qǐng)讀者自行進(jìn)行測(cè)試吧 :)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: