程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql初識之日志文件篇

mysql初識之日志文件篇

編輯:MySQL綜合教程

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 ended
130420 16:19:30 mysqld_safe Starting mysqld daemon with databases from /data0/mysql_data_7706
error: Found option without preceding group in config file: /data0/mysql_data_7706/my.cnf at line: 1
Fatal error in defaults handling. Program aborted
130420 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.0M
130420 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.00002

log-bin-index文件作用:
記錄目錄所有binlog文件
[root@FZTEST-24178 mysql_data_7706]# cat mysql_7706-relay-bin.index
./mysql_7706-relay-bin.000032

binlog格式說明:
[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 1
6: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=0
SET 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=0
SET TIMESTAMP=1333101286/*!*/;
alter table tt7 engine=innodb/*!*/;

 

  解析binlog格式 位置 位於文件中的位置,“at 196”說明“事件”的起點,是以第196字節開始;“end_log_pos 294”說明以第294字節結束   時間戳 事件發生的時間戳:“120330 17:54:46”   事件執行時間 事件執行花費的   錯誤碼 錯誤碼為:“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 設置日志的數量。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved