手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

MySQL日志文件詳述

2018-05-28 17:17:40 9553

錯(cuò)誤日志

        錯(cuò)誤日志不用多說,記錄了MySQL運(yùn)行過程中的錯(cuò)誤信息,當(dāng)出現(xiàn)問題時(shí),我們可以通過錯(cuò)誤日志查找線索。

慢查詢?nèi)罩?/p>

        可以通過參數(shù)long_query_time來設(shè)置時(shí)間,當(dāng)sql語(yǔ)句執(zhí)行超過指定的時(shí)間,就會(huì)被記錄下來,用來進(jìn)行sql調(diào)優(yōu)。

        還有一個(gè)參數(shù)log_queries_not_using_indexs,如果運(yùn)行的sql語(yǔ)句沒有使用索引,就會(huì)記錄下來。但是不能一直這樣記錄,會(huì)導(dǎo)致文件過大,索引可以通過log_throttle_queries_not_using_indexes來表示每分鐘允許記錄到slow log的未使用索引的SQL語(yǔ)句的次數(shù)。默認(rèn)為0,表示沒有限制。如果日志記錄到文件中,可以使用mysqldumpslow命令來進(jìn)行篩選。

        慢查詢?nèi)罩究梢暂敵龅轿募校部梢暂敵龅奖碇小?梢酝ㄟ^log_output參數(shù)指定慢查詢?nèi)罩据敵龅侥睦铩?/p>

        在慢查詢?nèi)罩局卸加涗浟耸裁葱畔ⅲ梢酝ㄟ^slow_query_type進(jìn)行控制。

        0表示不將SQL語(yǔ)句記錄到slow log。

        1 表示根據(jù)運(yùn)行時(shí)間將SQL語(yǔ)句記錄到slow log。

        2 表示根據(jù)邏輯IO次數(shù)將SQL語(yǔ)句記錄到slow log。

        3 表示根據(jù)運(yùn)行時(shí)間和邏輯IO次數(shù)將SQL語(yǔ)句記錄到slow log。

binlog日志

        記錄了對(duì)數(shù)據(jù)庫(kù)除了查詢的所有操作。可以用來數(shù)據(jù)恢復(fù)、主從復(fù)制和判斷數(shù)據(jù)庫(kù)是否被攻擊審計(jì)。

sync_binlog參數(shù)

        binlog日志并不是每次寫的時(shí)候都同步到磁盤。因此當(dāng)數(shù)據(jù)庫(kù)發(fā)生宕機(jī)的時(shí)候,可能會(huì)有一部分?jǐn)?shù)據(jù)沒有日志中。會(huì)跟復(fù)制和恢復(fù)帶來問題。sync_binlog表示每寫緩沖多少次就同步到磁盤。如果設(shè)置位1 即表示每寫一次緩沖就把數(shù)據(jù)同步到磁盤。但是仍然存在問題,如果事務(wù)剛剛把數(shù)據(jù)寫入日志,但是還沒有執(zhí)行的情況下宕機(jī)。數(shù)據(jù)庫(kù)重啟后會(huì)進(jìn)行回滾,但是寫入binlog的日志不能回滾。可以通過innodb_support_xa=1來解決這個(gè)問題。

binlog_format參數(shù)

        該參數(shù)可以設(shè)置的值有STATEMENT、ROW、MIXED。

  1、  STATEMENT格式的日志,只記錄sql語(yǔ)句

  2、  ROW格式的日志,不是記錄SQL語(yǔ)句,而是記錄記錄表的行更改情況。

  3、  MIXED格式的日志,根據(jù)情況決定使用STATEMENT還是ROW格式記錄日志。

  MySQL數(shù)據(jù)庫(kù)的事務(wù)格式離別為REPEATABLE READ,跟binlog_format是有關(guān)系的,如果設(shè)置為READ COMMITED的事務(wù)隔離級(jí)別,會(huì)出現(xiàn)類似丟失更新的現(xiàn)象,從而出現(xiàn)主動(dòng)數(shù)據(jù)不一致。如果binlog_format采用的是ROW格式的記錄,就可以將事務(wù)隔離級(jí)別調(diào)整為READ COMMITED來提高性能。

查詢?nèi)罩?/p>

        記錄所有的對(duì)數(shù)據(jù)庫(kù)的請(qǐng)求,一般不開啟。  

重做日志

        該日志文件屬于Innodb存儲(chǔ)引擎,記錄了Innodb存儲(chǔ)引擎的食物日志,直觀重要。當(dāng)執(zhí)行事務(wù)失敗時(shí),該日志就能派上用場(chǎng)。

        每個(gè)Innodb存儲(chǔ)引擎至少有兩個(gè)日志文件組,每個(gè)文件組下面至少有兩個(gè)重做日志。

      參數(shù)

        Innodb_log-file_size     表示每個(gè)重做日志的大小。

        Innodb_log_files_in_group    表示每個(gè)日志文件組有幾個(gè)日志,最少有兩個(gè),默認(rèn)為2個(gè)。

        Innodb_mirrored_log_groups   鏡像,為了高可用設(shè)計(jì)。如果進(jìn)行了磁盤陣列,可以不設(shè)置。

        Innodb_log_group_home_dir   日志文件存放的位置,默認(rèn)為”./”。

        Innodb_flush_log_at_trx_commit    當(dāng)值為0時(shí),代表當(dāng)提交事務(wù)時(shí),并不將事務(wù)的重做日志寫入磁盤上的日志文件,而是等待主線程每秒的刷新。

         當(dāng)值為1時(shí),表示執(zhí)行commit時(shí)將重做日志緩沖同步寫到磁盤,即伴有fsync的調(diào)用。當(dāng)事務(wù)提交時(shí),必須保證事務(wù)已經(jīng)寫入重做日志文件。當(dāng)數(shù)據(jù)庫(kù)宕機(jī)時(shí),可以通過重做日志文件恢復(fù),并保證可以恢復(fù)已經(jīng)提交的事務(wù)。

         當(dāng)值為2時(shí),表示將重做日志異步寫到磁盤。即寫到文件系統(tǒng)的緩存中。因此不能完全保證執(zhí)行commit時(shí)肯定會(huì)寫入重做日志文件,知識(shí)有這個(gè)動(dòng)作。當(dāng)數(shù)據(jù)庫(kù)宕機(jī)而服務(wù)器并沒有宕機(jī)的情況下,因?yàn)榇藭r(shí)未寫入磁盤的事務(wù)保存在文件系統(tǒng)緩存中,當(dāng)恢復(fù)時(shí)同樣保證數(shù)據(jù)不丟失。

提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: