1:二進位制日誌
二進位制日誌記錄了所有的ddl(資料定義語言)語句和dml(資料操作語言)語句,但是不記錄包括資料查詢的語句。語句以「事件」的形式儲存,它描述了資料的更改過程,此日誌對於災難時的資料恢復起著極其重要的作用
2:日誌的位置和格式
當用—log-bin[=file_name]選項啟動時,mysqld將包含所有更新資料的sql命令寫入日誌檔案。如果沒有給出file_name值,預設名為主機名後面跟_bin,如果給出了檔名,但沒有包含路勁,則檔案預設被寫入引數datadir(資料目錄)指定的目錄
3:日誌的讀取
由於日誌以二進位制的方式儲存,不能直接讀取,需要用mysqlbinlog工具來檢視,語法如下:
#mysqlbinlog log_file
4:日誌的刪除
對於比較繁忙的oltp系統,由於每天生產日誌量大,這些日誌如果長時間不清理,將會對磁碟空間帶來很大的浪費,因此,定期刪除日誌是dba維護mysql
資料庫的乙個重要工作內容,下面將介紹幾種刪除日誌的常見方法
(1):
執行「reset master;」命令,該命令將刪除所有二進位制日誌,新日誌的編號從「000001」 開始,命令如下
mysql>reset master;
(2):
執行「purge master logs to 『mysql-bin.*****』」 命令,該命令將刪除「*****」 編號之前的所有日誌,下列中刪除了「mysql-bin.000001」之前編號的所有日誌
mysql>purge master logs to 『mysql-bin.000015;
從結果中發現,編號000015之前的所有日誌都已經刪除
(3):
執行「purge master logs before 『yyyy-mm-dd hh24:min:ss』」命令,該命令將刪除日期為「yyyy-mm-dd hh24:mi:ss」之前產生的所有日誌,下列中刪除了日期在「2010-05-22 01:00:00」之前的所有日誌
mysql>purge master logs before 『2010-05-22 01:00:00』』;
(4):
設定引數—expire_logs_days=#(days),此引數的含義是設定日誌的過期天數,過來指定的天數後日誌將會被自動刪除,這樣將有利於減少dba管理日誌的工作量。
#vi /etc/my.cnf
[mysqld]
--expire_logs_days=3
mysql> show
var
iables like
'%expire%'
;
+------------------+-------+
| variable_name | value |
+------------------+-------+
| expire_logs_days |
0
|
+------------------+-------+
1
row
in
set
(
0.00
sec)
mysql>
set
global expire_logs_days=
3
;
query ok,
0
rows affected (
0.00
sec)
為了使之生效,需要flush logs。
不要輕易手動去刪除binlog,會導致binlog.index和真實存在的binlog不匹配,而導致expire_logs_day失效
這樣,3天前的日誌都會被刪除,系統自動刪除
mysql清理二進位制檔案
顯示日誌檔案 show binary logs 顯示日誌配置資訊 show variables like log 設定過期時間,或者修改my.ini檔案 set global expire logs days 10 觸發條件 binlog大小超過max binlog size 手動執行flush l...
mysql二進位制 MySql二進位制連線方式詳解
使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...
mysql二進位制恢復 mysql二進位制日誌恢復
二進位制日誌匯出 1.按時間節點匯出 no defaults 用來對mysql5.5之前mysqlbinlog命令報錯 mysqlbinlog no defaults start date 2017 08 08 15 04 04 stop date 2017 08 08 15 12 00 progr...