最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中二進(jìn)制與重做日志文件的基本概念學(xué)習(xí)教程

 更新時(shí)間:2015年11月24日 10:09:43   作者:一寧  
這篇文章主要介紹了MySQL中二進(jìn)制日志文件與重做日志文件的基本概念學(xué)習(xí)教程,講到了一些重做日志與二進(jìn)制日志的區(qū)別,需要的朋友可以參考下

二進(jìn)制日志
二進(jìn)制日志記錄了所有對(duì)數(shù)據(jù)庫(kù)執(zhí)行更改的操作,二進(jìn)制主要有以下兩種作用:

1、恢復(fù)(recovery)2、復(fù)制(replication)

二進(jìn)制日志的啟動(dòng):配置參數(shù)log-bin[=name],如果不指定name,則默認(rèn)二進(jìn)制日志文件名為主機(jī)名,后綴名為二級(jí)制日志的序列號(hào),所在路徑為數(shù)據(jù)庫(kù)所在目錄。

以index為后綴的文件為二進(jìn)制日志的索引文件,用來(lái)存儲(chǔ)過(guò)往生產(chǎn)的二進(jìn)制日志。

和二進(jìn)制日志相關(guān)的參數(shù):

max_binlog_size、binlog_cache_size、sync_binlog、binlog-do-db、binlog-ignore-db、log-slave-update、binlog_format

max_binlog_size,該參數(shù)指定了單個(gè)二進(jìn)制日志文件的最大值,如果超過(guò)該值,則產(chǎn)生新的二進(jìn)制日志文件,后綴名+1,并記錄到.index文件,從Mysql5.0開(kāi)始的默認(rèn)值為1073741824,代表1G。

Mysql5.5的默認(rèn)值

20151124100730266.png (462×152)

當(dāng)使用事務(wù)的存儲(chǔ)引擎InnoDB時(shí),所有未提交的事務(wù)會(huì)記錄到一個(gè)緩存中,等待事務(wù)提交時(shí),直接將緩沖中的二進(jìn)制日志寫(xiě)入二進(jìn)制日志文件,而該緩沖的大小由binlog_cache_size決定,默認(rèn)大小為32KB,此外,binlog_cache_size是基于回話的,也就是,當(dāng)一個(gè)線程開(kāi)始一個(gè)事務(wù)時(shí),mysql會(huì)自動(dòng)分配一個(gè)大小為binlog_cache_size的緩存,因此該值得設(shè)置需要相當(dāng)小心,可以通過(guò)show global status 查看binlog_cache_use、binlog_cache_disk_use的狀態(tài),可以判斷當(dāng)前binlog_cache_size的設(shè)置是否合適。

Binlog_cache_size的默認(rèn)大小為32KB

20151124100751510.png (365×121)

參數(shù)sync_binlog=[N]表示每寫(xiě)緩存多少次就同步到磁盤,如果將N設(shè)置為1,則表示采用同步寫(xiě)磁盤的方式來(lái)寫(xiě)二進(jìn)制日志,該參數(shù)很重要,這個(gè)以后還會(huì)提到。值得注意的是,在將該參數(shù)設(shè)置為1時(shí),也應(yīng)該將innodb_support_xa設(shè)為1來(lái)解決,這可以確保二進(jìn)制日志和InnoDB存儲(chǔ)引擎數(shù)據(jù)文件的同步。

參數(shù)binlog-do-db和binlog-ignore-db表示需要寫(xiě)入或者忽略寫(xiě)入哪些庫(kù)的日志,默認(rèn)值為空,則表示將所有庫(kù)的日志同步到二進(jìn)制日志。

Log-slave-update該參數(shù)在搭建master=>slave=>slave的架構(gòu)時(shí),需要配置。

Binlog_format參數(shù)也特別重要。從mysql5.1版本開(kāi)始引入這個(gè)參數(shù),該參數(shù)可以設(shè)置的值有STATEMENT\、ROW、MIXED;

(1)STATEMENT格式和之前的mysql版本一樣,二進(jìn)制日志文件記錄的是日志的邏輯失SQL語(yǔ)句。

(2)在ROW格式下,二進(jìn)制日志記錄的不再是簡(jiǎn)單的SQL語(yǔ)句了,而是記錄表的行更改情況,此時(shí)可以將InnoDB的事務(wù)隔離基本設(shè)為READ COMMITTED,以獲得更好的并發(fā)性。

(3)MIXED格式下,mysql默認(rèn)采用的STATEMENT格式進(jìn)行二進(jìn)制日志文件的記錄,但是在一些情況下會(huì)使用ROW格式,可能的情況包括:

1)表的存儲(chǔ)引擎為NDB,這時(shí)對(duì)于表的DML操作都會(huì)以ROW格式記錄

2)使用了UUID()、USER()、CURRENT_USER()、FOUND_ROWS()、ROW_COUNT()等不確定函數(shù)

3)使用了INSERT DELAY語(yǔ)句

4)使用了用戶定義函數(shù)

5)使用了臨時(shí)表

重做日志
Mysql默認(rèn)情況下會(huì)有兩個(gè)文件:ib_logfile0和ib_logfile1,這兩個(gè)文件就是重做日志文件,或者事務(wù)日志。

重做日志的目的:萬(wàn)一實(shí)例或者介質(zhì)失敗,重做日志文件就能派上用場(chǎng)。

每個(gè)InnoDB存儲(chǔ)引擎至少有一個(gè)重做日志文件組,每個(gè)文件組下至少有2個(gè)重做日志文件,如默認(rèn)的ib_logfile0、ib_logfile1。InnoDB存儲(chǔ)引擎先寫(xiě)重做日志文件1,當(dāng)達(dá)到文件的最后時(shí),會(huì)切換至重做日志文件2,當(dāng)重做日志文件2也被寫(xiě)滿時(shí),會(huì)再被切換到重做日志文件1中。

影響重做日志的參數(shù):

Innodb_log_file_size、innodb_log_files_in_group、innodb_log_group_home_dir影響著重做日志文件的屬性。

20151124100900352.png (695×286)

重做日志與二進(jìn)制日志的區(qū)別:

1)二進(jìn)制日志會(huì)記錄所有與mysql有關(guān)的日志記錄,包括InnoDB等其他存儲(chǔ)引擎的日志,而InnoDB存儲(chǔ)引擎的重做日志只記錄有關(guān)其本身的事務(wù)日志,

2)記錄的內(nèi)容不容,不管你將二進(jìn)制日志文件記錄的格式設(shè)為哪一種,其記錄的都是關(guān)于一個(gè)事務(wù)的具體操作內(nèi)容,而InnoDB存儲(chǔ)引擎的重做日志文件記錄的關(guān)于每個(gè)頁(yè)的更改的物理情況;

3)寫(xiě)入的時(shí)間也不同,二進(jìn)制日志文件是在事務(wù)提交前進(jìn)行記錄的,而在事務(wù)進(jìn)行的過(guò)程中,不斷有重做日志條目被寫(xiě)入重做日志文件中。

從日志緩沖寫(xiě)入磁盤上的重做日志文件的條件:

在主線程中每秒會(huì)將重做日志緩沖寫(xiě)入磁盤的重做日志文件中,不論事務(wù)是否提交。另一個(gè)觸發(fā)這個(gè)過(guò)程是由參數(shù)innodb_flush_log_at_trx_commit控制,表示在提交時(shí),處理重做日志的方式。

參數(shù)innodb_flush_log_at_trx_commit可設(shè)的值有0、1、2,0代表當(dāng)提交事務(wù)時(shí),并不將事務(wù)的重做日志寫(xiě)入磁盤上的日志文件,而是等待主線程每秒的刷新,而1和2不同的地方在于:1是在commit時(shí)將重做日志緩沖同步寫(xiě)到磁盤;2是重做日志異步寫(xiě)到磁盤,即不能完全保證commit時(shí)肯定會(huì)寫(xiě)入重做日志文件,只是有這個(gè)動(dòng)作。

 值得注意的一點(diǎn):因?yàn)橹刈鋈罩居袀€(gè)capacity變量,該值代表了最后的檢查點(diǎn)不能超過(guò)這個(gè)閥值。

相關(guān)文章

  • MySQL 5.7.17壓縮版安裝筆記

    MySQL 5.7.17壓縮版安裝筆記

    這篇文章主要介紹了MySQL 5.7.17壓縮版安裝筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • mysql 8.0.11 macos10.13安裝配置方法圖文教程

    mysql 8.0.11 macos10.13安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.11 macos10.13安裝配置方法圖文教程,mysql數(shù)據(jù)庫(kù)安裝及配置環(huán)境變量,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • MySQL 數(shù)據(jù)恢復(fù)的多種方法匯總

    MySQL 數(shù)據(jù)恢復(fù)的多種方法匯總

    日常工作中,總會(huì)有因手抖、寫(xiě)錯(cuò)條件、寫(xiě)錯(cuò)表名、錯(cuò)連生產(chǎn)庫(kù)造成的誤刪庫(kù)表和數(shù)據(jù)的事情發(fā)生。但是,如果每次刪庫(kù)都跑路的話,怕是再也不好找工作了吧!所以,刪庫(kù)跑路不是上上策
    2021-06-06
  • mysql 獲取規(guī)定時(shí)間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù)

    mysql 獲取規(guī)定時(shí)間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù)

    這篇文章主要介紹了mysql 獲取規(guī)定時(shí)間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • mysql實(shí)現(xiàn)合并同一ID對(duì)應(yīng)多條數(shù)據(jù)的方法

    mysql實(shí)現(xiàn)合并同一ID對(duì)應(yīng)多條數(shù)據(jù)的方法

    這篇文章主要介紹了mysql實(shí)現(xiàn)合并同一ID對(duì)應(yīng)多條數(shù)據(jù)的方法,涉及mysql GROUP_CONCAT函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • MySQL Administrator 登錄報(bào)錯(cuò)的解決方法

    MySQL Administrator 登錄報(bào)錯(cuò)的解決方法

    使用MySQL Administrator 登錄,報(bào)錯(cuò): Either the server service or the configuration file could not be found.Startup variable and service section are there for disabled.
    2010-12-12
  • MySQL內(nèi)部函數(shù)的超詳細(xì)介紹

    MySQL內(nèi)部函數(shù)的超詳細(xì)介紹

    眾所周知MySQL有很多內(nèi)置的函數(shù),下面這篇文章主要給大家介紹了關(guān)于MySQL內(nèi)部函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-08-08
  • MySQL 啟動(dòng)失敗(code=exited, status=1/FAILURE)異常解決方案

    MySQL 啟動(dòng)失敗(code=exited, status=1/FAILURE)異常解決方案

    在MySQL服務(wù)啟動(dòng)時(shí)遇到啟動(dòng)失敗問(wèn)題,通過(guò)查看和分析錯(cuò)誤日志文件,找到并解決了配置文件中的錯(cuò)誤項(xiàng),成功重啟了MySQL服務(wù).文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 安裝MySQL 5.7出現(xiàn)報(bào)錯(cuò):unknown variable ‘mysqlx_port=0.0‘的解決方法

    安裝MySQL 5.7出現(xiàn)報(bào)錯(cuò):unknown variable ‘mysqlx_port

    這篇文章主要介紹了安裝MySQL 5.7出現(xiàn)報(bào)錯(cuò):unknown variable ‘mysqlx_port=0.0‘的解決方法,文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • 解析mysql中:單表distinct、多表group by查詢?nèi)コ貜?fù)記錄

    解析mysql中:單表distinct、多表group by查詢?nèi)コ貜?fù)記錄

    本篇文章是對(duì)mysql中的單表distinct、多表group by查詢?nèi)コ貜?fù)記錄進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論

石泉县| 江油市| 华亭县| 阿拉善左旗| 揭东县| 肃宁县| 开封县| 麻城市| 泽普县| 高雄市| 太仓市| 卫辉市| 绵阳市| 永安市| 祁东县| 曲松县| 贡觉县| 汉中市| 富宁县| 自治县| 绿春县| 宁都县| 松江区| 徐水县| 九龙城区| 靖江市| 汶上县| 武宣县| 辰溪县| 永善县| 中山市| 新野县| 高密市| 金门县| 天镇县| 偏关县| 吴忠市| 廉江市| 云南省| 建湖县| 六盘水市|