MariaDB日志
- 查詢日志:query log;
- 慢查詢日志:slow query log 查詢時長超出指定界限。
- 錯誤日志:error log
- 二進制日志:binary log;此中存儲要發生改變或潛在發生改變的語句。
- 中繼日志:reley log
- 事務日志:transaction log
1、查詢日志
記錄查詢語句,日志存儲位置:一般不開啟。
- 文件:file
- 表:table (mysql.general_log),查詢信息直接再導入到數據庫中。
查看與查詢日志相關的信息SHOW GLOBAL VARIABLES LIKE '%log%';
general_log={ON|OFF} #是否開啟查詢日志
general_log_file=HOSTNAME.log #查詢的日志保存于何處
log_output={FILE|TABLE|NONE} #日志的輸出格式上
2、慢查詢日志
慢查詢:運行時間超出指定時長的查詢;
對于此日志我們應該啟用,而且應該為開機自動啟動,所以就應該寫入配置文件的配置。
查看定義的慢查詢的制定時間
HOW GLOBAL VARIABLES LIKE 'long_query_time'
SELECT @@GLOBAL long_query_time;
設定
SET GLOBAL long_query_time=
存儲位置:
文件:FILE
表:TABLE,mysql.slog_log
slow_query_log={ON|OFF} #是否啟動慢查詢
slow_query_log_file= #日志文件路徑
log_slow_queries={ON|OFF} #是否記錄慢查詢日志
log_output={FILE|TABLE|NONE} #日志的記錄格式
log_slow_filter=admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
表示設置過濾信息
log_slow_rate_limit #指明記錄的速率
log_slow_verbosity #詳細級別
3、錯誤日志
記錄信息:
- (1) mysqld啟動和關閉過程 輸出的信息;
- (2) mysqld運行中產生的錯誤信息;
- (3) event scheduler運行時產生的信息;
-
(4) 主從復制架構中,從服務器復制線程啟動時產生的日志;
log_error= log_warnings={ON|OFF}
4、二進制日志
用于記錄引起數據改變或存在引起數據改變的潛在可能性的語句(STATEMENT)或改變后的結果(ROW),也可能是二者混合;
在my.cnf
的 [mysqld] 字段添加 log_bin
這一行即可
功用:“重放”日志文件中的事件來生成副本。
binlog_format={STATEMENT|ROW|MIXED}
二進制日志記錄格式
STATEMENT:基于語句記錄;
ROW:基于行;
MIXED:混編,讓系統自動判定記錄方式;
二級制日志文件的構成:
日志文件: mysql-bin.文件名后綴;二進制格式
索引文件: mysql-bin.index;文本格式
查看二進制日志文件列表:
SHOW MASTER|BINARY LOGS;
查看當前正在使用的二進制日志文件:
SHOW MASTER STATUS;
查看二進制 日志文件中的事件:
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
SHOW BINLOG EVENTS IN 'mysql-bin.000002'; #就能查看在再次文件內mysql發生的事件。還可以指明顯示的起始位置
服務器變量:
log_bin {ON|OFF}
sql_log_bin {ON|OFF} #這兩個同時為ON就表示啟用二進制日志記錄功能
log_bin=/PATH/TO/BIN_LOG_FILE #日志文件的記錄位置:此功能必須為ON
max_binlog_size=1073741824 :單個二進制文件的最大體積,默認為這個(1G,不一定會精確)
sync_binlog={1|0} #是否啟動二進制日志同步功能。1的話就是精確記錄
mysqlbinlog:客戶端命令工具
mysqlbinlog [option] logfile
命令選項:
-j,
--start-datetime= 根據事件發生的時間范圍
--stop-datetime=
YYYY-MM-DD hh:mm:ss 指明的時間格式
--start-position=# 從哪個事件id開始顯示
--stop-position=# 到哪個事件id結束
--user, --host, --password
二進制日志事件格式:
# at 553
#160831 9:56:08 server id 1 end_log_pos 624 Query thread_id=2 exec_time=0 error_code=0
SET TIMESTAMP=1472608568/*!*/;
BEGIN
/*!*/; #結束標志
事件發生的日期時間:#160831 9:56:08
事件發生的服務器id:server id 1
事件的結束位置:end_log_pos 624
事件的類型:Query
事件發生時所在服務器執行此事件的線程的ID: thread_id=2
語句的時間戳與將其寫入二進制日志文件中的時間差:exec_time=0
錯誤代碼:error_code=0
事件內容:SET TIMESTAMP=1472608568/*!*/;
中繼日志:
復制架構中,從服務器上記錄下來從主服務器的二進制日志文件同步過來的事件;
事務日志:
幫助事務型存儲引擎innodb用于保證事務特性的日志文件:用戶無法手動使用。存儲引擎采用。
具有兩個和兩個以上的文件
用于提交事務到數據磁盤中,也可以回滾。
| innodb_log_file_size | 5242880 事務日志文件大小
| innodb_log_files_in_group | 2 事務文件日志個數
| innodb_log_group_home_dir | ./ 存儲位置
事務日志文件所在位置及名字
/var/lib/mysq/lib_logfile0
/var/lib/mysq/lib_logfile1
事務日志的類別
redo log :重做日志
undo log :撤銷日志
原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/60186