mysql初識之日志文件篇
日志文件
1. err日志
error log 記錄mysql在運行的過程中所有較為嚴重的警告和錯誤信息,以及mysql server每次啟動和關閉的詳細信息。系統在默認情況下關閉error log 功能。error log 默認存放在data目錄下,默認文件名為主機名.err。error log 通過兩種方式開啟:
1). 啟動mysqld時,附加上--log-error參數
2) . 在my.cnf中配置log-error系統環境變量
當進入mysql后執行 flush logs命令后,mysql會將當前的錯誤日志文件附加-old文件保存,并且創建一個新的空錯誤日志文件,僅僅在指定--log-error的情況下。
注:error log 不全是保存是警告和錯誤信息,還保存每次啟動和關閉的信息。
ps啟動時信息:130420 16:19:29 mysqld_safe mysqld from pid file /data0/mysql_data_7706/FZTEST-24178.pid ended130420 16:19:30 mysqld_safe Starting mysqld daemon with databases from /data0/mysql_data_7706error: Found option without preceding group in config file: /data0/mysql_data_7706/my.cnf at line: 1Fatal error in defaults handling. Program aborted130420 16:19:30 [Note] Plugin 'FEDERATED' is disabled.130420 16:19:30 [Note] Plugin 'ndbcluster' is disabled.130420 16:19:30 InnoDB: Initializing buffer pool, size = 8.0M130420 16:19:30 InnoDB: Completed initialization of buffer pool(以下省略) 查看error 日志是否啟動:mysql> show variables like 'log_error';+---------------+---------------------+| Variable_name | Value |+---------------+---------------------+| log_error | /var/log/mysqld.log |+---------------+---------------------+1 row in set (0.00 sec)關閉mysql: mysqladmin -uroot -p shutdown
2. 二進制日志(binlog)
binlog日志主要記錄mysql的更新內容,記錄每一條更新語句的執行的時間、消耗的資源,以及相關的事務信息。可以用于實時備份,與master/slave復制。
如何打開:
my.cnf中[mysqld] 節點上添加
查看binlog是否打開
mysql> show variables like 'log_%';+---------------------------------+-----------------+| Variable_name | Value |+---------------------------------+-----------------+| log_bin | ON |查看binlog內容: /usr/local/mysql3306/bin/mysqlbinlog mysql-bin.00002log-bin-index文件作用:記錄目錄所有binlog文件[root@FZTEST-24178 mysql_data_7706]# cat mysql_7706-relay-bin.index./mysql_7706-relay-bin.000032binlog格式說明:[root@localhost ~]# mysqlbinlog /home/mysql/binlog/binlog.000003 | more/*!40019 SET @@session.max_insert_delayed_threads=0*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;# at 4#120330 16:51:46 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.45-log created 120330 16:51:46# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.# at 196#120330 17:54:15 server id 1 end_log_pos 294 Query thread_id=3 exec_time=2 error_code=0SET TIMESTAMP=1333101255/*!*/;insert into tt7 select * from tt7/*!*/;# at 294#120330 17:54:46 server id 1 end_log_pos 388 Query thread_id=3 exec_time=28 error_code=0SET TIMESTAMP=1333101286/*!*/;alter table tt7 engine=innodb/*!*/;
解析binlog格式
位置
位于文件中的位置,“at 196”說明“事件”的起點,是以第196字節開始;“end_log_pos 294”說明以第294字節結束
時間戳
事件發生的時間戳:“120330 17:54:46”
事件執行時間
事件執行花費的時間:"exec_time=28"
錯誤碼
錯誤碼為:“error_code=0”
服務器的標識
服務器的標識id:“server id 1”
其他參數說明:
1). binlog_do_db:表示記錄指定數據庫的二進制日志
2).binlog_ignore_db:表示忽略指定的數據庫的二進制日志
3). max_binlog_cache_size:表示使用binlog時最大的內存值
4). binlog_cache_size
此參數表示binlog使用的內存大小,可以通過狀態變量binlog_cache_use和binlog_cache_disk_use來幫助測試。
binlog_cache_use:使用二進制日志緩存的事務數量
binlog_cache_disk_use:使用二進制日志緩存但超過binlog_cache_size值并使用臨時文件來保存事務中的語句的事務數量
5).max_binlog_size
Binlog最大值,最大和默認值是1GB,該設置并不能嚴格控制Binlog的大小,尤其是Binlog比較靠近最大值而又遇到一個比較大事務時,為了保證事務的完整性,不可能做切換日志的動作,只能將該事務的所有SQL都記錄進當前日志,直到事務結束
6).sync_binlog
這個參數直接影響mysql的性能和完整性
sync_binlog=0:
當事務提交后,Mysql僅僅是將binlog_cache中的數據寫入Binlog文件,但不執行fsync之類的磁盤 同步指令通知文件系統將緩存刷新到磁盤,而讓Filesystem自行決定什么時候來做同步,這個是性能最好的。
sync_binlog=n,在進行n次事務提交以后,Mysql將執行一次fsync之類的磁盤同步指令,同志文件系統將Binlog文件緩存刷新到磁盤。
Mysql中默認的設置是sync_binlog=0,即不作任何強制性的磁盤刷新指令,這時性能是最好的,但風險也是最大的。一旦系統繃Crash,在文件系統緩存中的所有Binlog信息都會丟失。
查詢日志
查詢日志即記錄所有的查詢語句的日志,一般建議不開啟,有些query語句比較大,開啟后對性能的也有較大的影響。一般用于跟蹤某特殊 的性能問題才會短暫打開功能,默認的查詢日志文件名為主機名.log。
慢查詢日志
慢查詢日志記錄的是查詢需要較長時間的query,通過在[mysqld] 下添加log-slow-queries=/tmp/slow_log 打開些功能,默認文件名是hostname-slow.log默認的目錄是數據目錄。
分析慢查詢的工具有:msyqlslowdump、mysqlsla
innodb在線日志redo日志
innodb是一個事務安全的存儲引擎,其事務安全性主要是通過在線redo日志和記錄在表空間中的undo信息來保證redo日志中記錄了innodb所做的所有物理變更和事務信息,通過redo日志和undo信息,innodb保證了在任何情況下的事務安全性。innodb的redo日志同樣默認存放 在數據目錄下,可通過innodb_log_group_home_dir來更改設置日志的存放公交車,通過innodb_log_files_in_group 設置日志的數量。
bitsCN.com聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com