• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        mysql中日志體系的示例分析

        這篇文章主要介紹了MySQL中日志體系的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

        成都創(chuàng)新互聯(lián)主營臨湘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,臨湘h5成都小程序開發(fā)搭建,臨湘網(wǎng)站營銷推廣歡迎臨湘等地區(qū)企業(yè)咨詢

        一、 mysql錯誤日志:
        錯誤日志記錄的事件:
        a)、服務(wù)器啟動關(guān)閉過程中的信息
        b)、服務(wù)器運行過程中的錯誤信息
        c)、事件調(diào)試器運行一個事件時間生的信息
        d)、在從服務(wù)器上啟動從服務(wù)器進程時產(chǎn)生的信息
        log_error參數(shù)指定錯誤日志存放路徑以及文件名。如果不指定文件,默認文件名是[host_name].err,保存路徑為%datadir%。
        mysql> system hostname
        mysql
        mysql> show variables like '%datadir%';
        +---------------+-----------------+
        | Variable_name | Value           |
        +---------------+-----------------+
        | datadir       | /var/lib/mysql/ |
        +---------------+-----------------+
        mysql> show variables like 'log_error';
        +---------------+--------------------------+
        | Variable_name | Value                    |
        +---------------+--------------------------+
        | log_error     | /var/lib/mysql/mysql.err |
        +---------------+--------------------------+
        錯誤日志中記錄的信息分為三類:[Note],[warning],[Error]??梢酝ㄟ^設(shè)置log_warnings來控制警告信息是否被記錄,默認值為1表示記錄,為0表示禁用。如果大于1,則對于連接失敗、新連接拒絕等類型的消息也會被寫入到錯誤日志中去。
        mysql> show variables like "%log_warning%";
        +---------------+-------+
        | Variable_name   | Value   |
        +---------------+-------+
        | log_warnings    | 1       |
        +---------------+-------+
        1 row in set (0.00 sec)
         
        二、  mysql的查詢?nèi)罩荆?br/>查詢?nèi)罩居涗洸樵冋Z句與啟動時間,建議不是在調(diào)試環(huán)境下不要開啟查詢?nèi)罩?,因為會不斷占?jù)你的磁盤空間,并會產(chǎn)生大量的IO。
        查詢?nèi)罩居袃煞N,分別是慢查詢?nèi)罩荆⊿low Query Log)和通用查詢?nèi)罩荆℅eneral Query Log)。而且mysql的查詢?nèi)罩静粌H可以記錄到文件,還能自動保存到MySql數(shù)據(jù)庫中的表對象里。
        1、慢查詢?nèi)罩荆?br/>指的是所有查詢語句執(zhí)行時間超過系統(tǒng)變量long_query_time(默認值是10秒)指定的參數(shù)值,并且訪問的記錄數(shù)超過系統(tǒng)變量min_examined_row_limit(默認值是0條)的數(shù)量的語句。這里的執(zhí)行時間是不包括初始化表鎖的開銷。
        慢查詢?nèi)罩局姓Z句記錄和順序有可能跟執(zhí)行順序不同,因為每條語句執(zhí)行完并且釋放了鎖資源之后,mysqld才會將符合條件的sql語句寫入到慢查詢?nèi)罩局腥ァ?br/>開啟和禁用慢查詢?nèi)罩就ㄟ^以下兩個系統(tǒng)參數(shù),這兩個參數(shù)可以動態(tài)修改:
        slow_query_log  指定是否輸出慢查詢?nèi)罩荆?表示輸出,0表示不輸出,默認為0。
        slow_query_log_file   指定日志文件存儲路徑和文件名,如果沒有指定,默認文件名為[host_name]-slow.log,保存路徑為%datadir%。
        mysql>  show variables like "%slow_query_log%";
        +---------------------+-------------------------------+
        | Variable_name       | Value                         |
        +---------------------+-------------------------------+
        | slow_query_log      | OFF                           |
        | slow_query_log_file | /var/lib/mysql/mysql-slow.log |
        +---------------------+-------------------------------+
        全局禁用/開啟慢查詢?nèi)罩?
        SET GLOBAL slow_query_log='OFF';
        SET GLOBAL slow_query_log='ON';
        其他參數(shù):
        long_query_time
        log_short_format
        log_slow_admin_statements
        log_queries_not_using_indexes
        log_throttle_queries_not_using_indexes
        log_slow_slave_statements
        mysqld判斷一條sql語句是否需要被記錄到慢查詢?nèi)罩緯r做的判斷步驟如下:
        1)判斷執(zhí)行的是查詢語句,還是管理性語句
        2)查詢語句執(zhí)行的時間達到或者超過了long_query_time參數(shù)值,或者是符合log_queries_not_using_indexes條件
        3)查詢的記錄量達到了min_examined_row_limit參數(shù)值
        4)查詢語句不違反log_throttle_queries_not_using_indexes設(shè)定的值
        如果慢查詢?nèi)罩痉浅4螅梢杂胢ysql自帶的mysqldumpslow命令,或者其他第三方工具查看分析。
        2、通用查詢?nèi)罩荆?br/>這個日志可以記錄mysqld進程所做的幾乎所有操作,包括sql語句執(zhí)行,數(shù)據(jù)庫對象管理,客戶端的連接和斷開。
        這個日志的最大功能是審計。
        開啟和禁用通用查詢?nèi)罩就ㄟ^以下兩個系統(tǒng)參數(shù),這兩個參數(shù)可以動態(tài)修改:
        general_log   指定是否輸出慢查詢?nèi)罩荆?表示輸出,0表示不輸出,默認為0。
        general_log_file   指定日志文件存儲路徑和文件名,如果沒有指定,默認文件名為[host_name].log,保存路徑為%datadir%。
        mysql>  show variables like "general_log%";
        +------------------+--------------------------+
        | Variable_name    | Value                    |
        +------------------+--------------------------+
        | general_log      | OFF                      |
        | general_log_file | /var/lib/mysql/mysql.log |
        +------------------+--------------------------+
        全局禁用/開啟通用日志:
        SET GLOBAL general_log='OFF';
        SET GLOBAL general_log='ON';
        會話級禁用/開啟通用日志:
        SET sql_log_off='OFF';
        SET sql_log_off='ON';
        通用查詢?nèi)罩疚募姓Z句出現(xiàn)的順序,是按照mysqld接收的順序。
        3、配置查詢?nèi)罩荆?br/>在mysql服務(wù)啟動時指定--log-output選項,可以決定查詢?nèi)罩臼潜4嬖诓僮飨到y(tǒng)中的文件里,還是保存在數(shù)據(jù)庫系統(tǒng)中的專用表。
        --log-output  可選值有三個:table,輸出到表,對應(yīng)的表有g(shù)eneral_log和slow_log
                                    file,輸出到日志文件
                                    none,不輸出查詢?nèi)罩?br/>--log-output可以設(shè)定多個值。
        默認情況下,日志表使用CSV引擎,5.1以后,日志表也可以修改為MyIsam引擎。
        日志表(general_log和slow_log)支持create table,alter table,drop table,truncate table,rename,check。不支持lock tables,insert,update,delete操作,日志表的增刪改查均由mysql服務(wù)內(nèi)部自己進行。            
        flush tables with read lock以及設(shè)置全局系統(tǒng)變量read_only,對日志表無效。
        日志表的寫操作不會計入二進制日志,有復(fù)制環(huán)境的話,日志表的內(nèi)容也不會被復(fù)制到其他Slaves節(jié)點。
        用flush tables或flush logs來刷新日志表或者日志文件。
        日志表不允許創(chuàng)建分區(qū)。
         
        三、  二進制日志文件:
        通過二進制日志文件,可以主要實現(xiàn)三個重要的功能:用于復(fù)制,用于恢復(fù),用于審計。
        啟用二進制日志文件,在mysql服務(wù)啟動時添加參數(shù)log-bin=[base_name]。如果不指定參數(shù)值,默認文件名為[host_name]-bin.log,保存路徑為%datadir%。
        mysql>  show variables like "%log_bin%";
        +---------------------------------+-------+
        | Variable_name                   | Value |
        +---------------------------------+-------+
        | log_bin                         | OFF   |
        | log_bin_basename                |       |
        | log_bin_index                   |       |
        | log_bin_trust_function_creators | OFF   |
        | log_bin_use_v1_row_events       | OFF   |
        | sql_log_bin                     | ON    |
        +---------------------------------+-------+
        二進制日志文件不會只有一個,從序號1開始起,每次啟動mysql服務(wù)或者刷新日志時,生成一個新的二進制日志文件。而且單個日志文件不可能無限增長,當漲到參數(shù)max_binlog_size指定的大小時,就會創(chuàng)建新的二進制日志文件。但是也有可能日志文件比max_binlog_size指定的值要大,假如有執(zhí)行的事務(wù)很大,所有的事務(wù)信息必須寫到一個日志文件中去。
        為了跟蹤二進制日志文件的狀態(tài),mysql服務(wù)創(chuàng)建了一個和二進制日志文件同名,但是擴展名為.index的二進制日志索引文件。這個文件中包含所有可供使用的二進制日志文件。
        如果擁有super權(quán)限的用戶執(zhí)行操作前,執(zhí)行了set sql_log_bin=0命令,則會禁止其執(zhí)行的語句生產(chǎn)二進制日志。
        --binlog-do-db和--binlog-ignore-db兩個選項,表示指定那些庫記錄或者不記錄二進制日志,這兩個選項每次只能設(shè)定一個值,如果有多個庫,反復(fù)設(shè)置多條。
        二進制日志文件的格式有三種:基于行格式記錄(row-based logging)、基于語句記錄(statement-based logging)、混合模式記錄(mixed-based logging)。
        因為mysql中既有支持事務(wù)的存儲引擎,也有不支持事務(wù)的存儲引擎,因此在操作基于不同的存儲引擎對象時,二進制日志的處理也不一樣。
        對于非事務(wù)表來說,語句執(zhí)行后就會立即寫入二進制日志文件中。而對于事務(wù)表,則要到等到當前沒有任何鎖定或未提交的信息時才會寫入二進制日志文件中,以確保日志被記錄的始終是其執(zhí)行的順序。
         
        四、  事務(wù)日志:
        事務(wù)日志文件名為"ib_logfile0"和“ib_logfile1”,默認存放在表空間所在目錄
        與事務(wù)日志相關(guān)變量:
        innodb_log_group_home_dir=/PATH/TO/DIR    #設(shè)定InnoDB重做日志文件的存儲目錄。在缺省使用InnoDB日志相關(guān)的所有變量時,其默認會在數(shù)據(jù)目錄中創(chuàng)建兩個大小為5MB的名為ib_logfile0和ib_logfile1的日志文件。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        innodb_log_file_size={108576 .. 4294967295}   #設(shè)定日志組中每個日志文件的大小,單位是字節(jié),默認值是5MB。較為明智的取值范圍是從1MB到緩存池體積的1/n,其中n表示日志組中日志文件的個數(shù)。日志文件越大,在緩存池中需要執(zhí)行的檢查點刷寫操作就越少,這意味著所需的I/O操作也就越少,然而這也會導(dǎo)致較慢的故障恢復(fù)速度。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        innodb_log_files_in_group={2 .. 100}   #設(shè)定日志組中日志文件的個數(shù)。InnoDB以循環(huán)的方式使用這些日志文件。默認值為2。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        innodb_log_buffer_size={262144 .. 4294967295}   設(shè)定InnoDB用于輔助完成日志文件寫操作的日志緩沖區(qū)大小,單位是字節(jié),默認為8MB。較大的事務(wù)可以借助于更大的日志緩沖區(qū)來避免在事務(wù)完成之前將日志緩沖區(qū)的數(shù)據(jù)寫入日志文件,以減少I/O操作進而提升系統(tǒng)性能。因此,在有著較大事務(wù)的應(yīng)用場景中,建議為此變量設(shè)定一個更大的值。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        innodb_flush_log_at_trx_commit = 1  #表示有事務(wù)提交后,不會讓事務(wù)先寫進buffer,再同步到事務(wù)日志文件,而是一旦有事務(wù)提交就立刻寫進事務(wù)日志,并且還每隔1秒鐘也會把buffer里的數(shù)據(jù)同步到文件,這樣IO消耗大,默認值是"1",可修改為“2”
        innodb_locks_unsafe_for_binlog = OFF   #這個變量建議保持OFF狀態(tài),詳細的原理不清楚
        innodb_mirrored_log_groups = 1    #事務(wù)日志組保存的鏡像數(shù)
         
        五、  中繼日志:
        在復(fù)制環(huán)境中產(chǎn)的的日志信息
        與中繼日志相關(guān)的變量:
        log_slave_updates   #用于設(shè)定復(fù)制場景中的從服務(wù)器是否將從主服務(wù)器收到的更新操作記錄進本機的二進制日志中。本參數(shù)設(shè)定的生效需要在從服務(wù)器上啟用二進制日志功能。
        relay_log=file_name  #設(shè)定中繼日志的文件名稱,默認為host_name-relay-bin。也可以使用絕對路徑,以指定非數(shù)據(jù)目錄來存儲中繼日志。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        relay_log_index=file_name   #設(shè)定中繼日志的索引文件名,默認為為數(shù)據(jù)目錄中的host_name-relay-bin.index,作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        relay-log-info-file=file_name  #設(shè)定中繼服務(wù)用于記錄中繼信息的文件,默認為數(shù)據(jù)目錄中的relay-log.info。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        relay_log_purge={ON|OFF}   #設(shè)定對不再需要的中繼日志是否自動進行清理。默認值為ON。作用范圍為全局級別,可用于選項文件,屬動態(tài)變量。
        relay_log_space_limit=      #設(shè)定用于存儲所有中繼日志文件的可用空間大小。默認為0,表示不限定。最大值取決于系統(tǒng)平臺位數(shù)。作用范圍為全局級別,可用于選項文件,屬非動態(tài)變量。
        max_relay_log_size={4096..1073741824}    #設(shè)定從服務(wù)器上中繼日志的體積上限,到達此限度時其會自動進行中繼日志滾動。此參數(shù)值為0時,mysqld將使用max_binlog_size參數(shù)同時為二進制日志和中繼日志設(shè)定日志文件體積上限。作用范圍為全局級別,可用于配置文件,屬動態(tài)變量。

        感謝你能夠認真閱讀完這篇文章,希望小編分享的“mysql中日志體系的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

        文章名稱:mysql中日志體系的示例分析
        本文地址:http://www.jbt999.com/article18/pdjhdp.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號靜態(tài)網(wǎng)站、搜索引擎優(yōu)化網(wǎng)站內(nèi)鏈、網(wǎng)頁設(shè)計公司小程序開發(fā)

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

        h5響應(yīng)式網(wǎng)站建設(shè)

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            免费操逼视频在线观看 | 老鸭窝国产 | 精品国产人妻一区二区三区 | 大香伊人焦在线 | 欧美丁香五月 | 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 波多野结衣精品在线 | 久久夜色精品国产嚕嚕亚洲AV | 欧美精品三级视频在线看 | 国产成人无码AV在线专区 |