久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MySQL binlog日志三種模式選擇及配置

 HUC王子 2021-08-12

在認識binlog日志三種模式前,,先了解一下解析binlog日志的命令工mysqlbinlog,。mysqlbinlog工具的作用是解析mysql的二進制binlog日志內(nèi)容,把二進制日志解析成可以在MySQL數(shù)據(jù)庫里執(zhí)行的SQL語句,。binlog日志原始數(shù)據(jù)是以二進制形式存在的,需要使用mysqlbinlog工具轉(zhuǎn)換成SQL語句形式,。

mysql的binlog日志作用是用來記錄mysql內(nèi)部增刪改等對mysql數(shù)據(jù)庫有更新內(nèi)容的記錄(對數(shù)據(jù)庫進行改動的操作),,對數(shù)據(jù)庫查詢的語句如show,select開頭的語句,,不會被binlog日志記錄,,主要用于數(shù)據(jù)庫的主從復制與及增量恢復。

案例:

在對數(shù)據(jù)庫進行定時備份時,,只能備份到某個時間點,,假如在凌晨0點進行全備了,但是在中午12點出現(xiàn)故障需要恢復數(shù)據(jù),使用0點的全備只能恢復到0點時刻的數(shù)據(jù),,難道0點到12點的數(shù)據(jù)只能丟失了嗎,?

這時就是體現(xiàn)binlog日志重要性的時候了,需要對binlog日志進行定時推送(一分鐘一次或五分鐘一次,,時間頻率視業(yè)務場景而定)完成增量備份,。當出現(xiàn)故障時,可以使用定時備份和增量備份恢復到故障點時刻的數(shù)據(jù),。具體的恢復方案,,這里不做簡述,后面再寫文章來講解,。

binlog日志三種模式

ROW Level

記錄的方式是行,,即如果批量修改數(shù)據(jù),記錄的不是批量修改的SQL語句事件,,而是每條記錄被更改的SQL語句,,因此,ROW模式的binlog日志文件會變得很“重”,。

優(yōu)點:row level的binlog日志內(nèi)容會非常清楚的記錄下每一行數(shù)據(jù)被修改的細節(jié),。而且不會出現(xiàn)某些特定情況下存儲過程或function,以及trigger的調(diào)用和觸發(fā)器無法被正確復制的問題,。

缺點:row level下,,所有執(zhí)行的語句當記錄到日志中的時候,都以每行記錄的修改來記錄,,這樣可能會產(chǎn)生大量的日志內(nèi)容,,產(chǎn)生的binlog日志量是驚人的。批量修改幾百萬條數(shù)據(jù),,那么記錄幾百萬行……

Statement level(默認)

記錄每一條修改數(shù)據(jù)的SQL語句(批量修改時,,記錄的不是單條SQL語句,而是批量修改的SQL語句事件),??瓷厦娴膱D解可以很好的理解row level和statement level兩種模式的區(qū)別。

優(yōu)點:statement模式記錄的更改的SQ語句事件,,并非每條更改記錄,,所以大大減少了binlog日志量,節(jié)約磁盤IO,,提高性能,。

缺點:statement level下對一些特殊功能的復制效果不是很好,比如:函數(shù),、存儲過程的復制,。由于row level是基于每一行的變化來記錄的,,所以不會出現(xiàn)類似問題

Mixed

實際上就是前兩種模式的結(jié)合。在Mixed模式下,,MySQL會根據(jù)執(zhí)行的每一條具體的sql語句來區(qū)分對待記錄的日志形式,,也就是在Statement和Row之間選擇一種。

企業(yè)場景如何選擇binlog的模式

1,、 如果生產(chǎn)中使用MySQL的特殊功能相對少(存儲過程,、觸發(fā)器、函數(shù)),。選擇默認的語句模式,,Statement Level。

2,、 如果生產(chǎn)中使用MySQL的特殊功能較多的,,可以選擇Mixed模式。

3,、 如果生產(chǎn)中使用MySQL的特殊功能較多,,又希望數(shù)據(jù)最大化一致,此時最好Row level模式,;但是要注意,該模式的binlog非?!俺林亍?。

查看binlog模式

復制代碼
mysql> show global variables like "%binlog_format%";  
+---------------+-----------+  
| Variable_name | Value    |  
+---------------+-----------+  
| binlog_format | STATEMENT |  
+---------------+-----------+ 
復制代碼

配置binlog日志模式

vim my.cnf(在[mysqld]模塊中配置)

log-bin = /data/3306/mysql-bin  
binlog_format="STATEMENT"  
#binlog_format="ROW"  
#binlog_format="MIXED" 

不重啟,使配置在msyql中生效

SET global binlog_format='STATEMENT';

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多