mysql的日誌類型及作用

來源:互聯網
上載者:User

標籤:mysql   日誌   

mysql的日誌類型及作用


  當服務起不來或者報錯的時候,我們第一時間想到的就是日誌,日誌這個東西記載了許多重要的資訊,有利於我們排除故障。當然,mysql也有日誌。

  先來說說,mysql日誌的作用,當資料庫遭到意外損壞,服務起不來等等,可以通過記錄檔來拍錯。

還可以利用記錄檔來進行資料恢複。


一、日誌的分類

1、錯誤記錄檔:記錄了mysql服務的啟動,關閉和運行時發生的錯誤;

2、通用查詢日誌:記錄使用者的所有操作,包括啟動、關閉服務,插入、查詢等語句;

3、二進位日誌:以二進位的形式記錄了資料庫中的操作,但不記錄查詢語句;

4、慢日誌:記錄了mysql 所有查詢逾時的語句


二、日誌設定
1、除了二進位日誌,其他都是文字檔
2、記錄檔通常儲存在Mysql資料目錄下
3、預設只啟動了錯誤記錄檔功能,其他需要手工啟動
4、但開機記錄功能會降低Mysql的執行速度,因為一條操作寫進日誌中是要花時間的

  

二進位日誌

  以二進位檔案的形式記錄了資料庫的操作,但是不記錄查詢語句,也叫變更日誌

  啟動與設定二進位日誌,在mysql設定檔中添加

[[email protected] data]# cat /etc/my.cnflog-bin = /data/mysql-bin


啟動與設定二進位日誌:在Mysql的設定檔中,log-bin=DIR/filename
DIR是存放二進位日誌的目錄;
每啟動一次Mysql,該目錄下就會產生一個filename.00000x的檔案;
目錄下還有一個filename.index的檔案,用於儲存所有二進位檔案清單;
如果我們沒有設定DIR和filename,則預設在資料目錄下以hostname-bin.00000x命名


去到/data目錄下查看是否有檔案產生

[[email protected] ~]# cd /data/

[[email protected] data]# ls

aria_log.00000001  ibdata1      ib_logfile1  mysql-bin.000001  performance_schema  xhk

aria_log_control   ib_logfile0  mysql        mysql-bin.index   test


臨時停止與啟動二進位日誌

MariaDB [(none)]>  set sql_log_bin=0; 停止MariaDB [(none)]>  set sql_log_bin=1; 啟動

注意:二進位記錄檔與資料庫資料檔案最好不要放在同一塊硬碟上,如果存放資料檔案的硬碟壞了,可以用另一塊硬碟的二進位日誌來恢複資料


查看二進位日誌

[[email protected] data]# mysqlbinlog mysql-bin.000001


刪除二進位日誌

刪除所有

MariaDB [(none)]> reset master;


刪除00004之前的所有

MariaDB [(none)]> purge master logs to ‘mysql-bin.000004‘;


刪除指定日期時間之前的所有

MariaDB [(none)]> purge master logs to ‘2016-08-10 15:00:00‘;


使用二進位日誌還原資料庫

[[email protected] data]# mysqlbinlog mysql-bin.000001 | mysql -u root -p

[[email protected] data]# mysqlbinlog mysql-bin.000002 | mysql -u root -p

這條命令可以理解為:使用mysqlbinlog讀取二進位記錄檔然後使用mysql命令還原到資料庫中

注意還原時必須是編號小的先還原


還可以制定你想恢複的時間點

[[email protected] data]# mysqlbinlog --start-position="213" sstop-position="456" mysql-bin.000001 | mysql -u root -p

數值為二進位檔案中的pos號


========================================================================

錯誤記錄檔

主要用於記錄Mysql服務的開啟、關閉和錯誤資訊,若服務啟動不成功第一件事應該就是去看這個錯誤記錄檔

錯誤記錄檔是預設開啟的,且錯誤記錄檔無法被關閉

設定錯誤記錄檔:在設定檔中,log-error=DIR/filename

[[email protected] ~]# cat /etc/my.cnflog-error = /data/mysql-error.log


======================================================================

通用查詢日誌

用來記錄使用者的所有操作:啟動和關閉mysql、更新語句、查詢語句

啟用和設定通用查詢日誌:設定檔中,log=DIR/filename


============================================================================

慢查詢日誌

記錄執行時間超過指定時間的執行語句

啟動和設定慢查詢日誌:在設定檔中

log-slow-queries=DIR/filename

long_query_time=n   #設定時間為n秒,預設為10s


刪除日誌

mysqladmin -u root -p flush-logs 



本文出自 “xhk__營運” 部落格,請務必保留此出處http://xhk777.blog.51cto.com/13405744/1980893

mysql的日誌類型及作用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.