您好,登錄后才能下訂單哦!
mariadb日志分類:
查詢日志:query log 慢查詢日志:slow query log 查詢操作時間超過指定時間 錯誤日志:error log 也包含啟動關閉服務信息 二進制日志(重要):binary log 中繼日志:reley log 事務日志:transaction log
1.查詢日志(一般不開啟):記錄查詢操作
general_log=ON|OFF general_log_file=HOSTNAME.log 保存在相當路徑(不能解析主機名的話保存為localhost.log) log_output=TABLE|FILE|NONE 以什么形式記錄 #set @@global.general_log=1 #命令行開啟方式,重啟失效
2.慢查詢日志(默認關閉,生產中應開啟):查詢操作時間超過指定時間
show global variables like 'long_query_time'; 查看默認時長 select @@GLOBAL.long_query_time; set global long_query_time= slow_query_log=ON|OFF #log_slow_queries=xx.log 5.6版本后被廢 slow_query_log_file=HOSTNAME-slow.log
3.錯誤日志(一般開啟)
① mysqld啟動和關閉過程中輸出的事件信息
② mysqld運行中產生的錯誤信息
③ event scheduler事件調度器運行一個event時產生的日志信息
④ 在主從復制架構中從服務器上啟動從服務器線程時產生的信息
log_error=/var/log/mariadb/mariadb.log|OFF log_warnings=1|0 是否記錄警告信息
4.二進制日志(重要)
功能:用于通過重放日志文件中的事件來生成數據副本
記錄導致數據改變或潛在導致數據改變的sql語句
show {BINARY|MASTER} LOGS; 查看mariadb自行管理使用中的二進制日志文件列表 show {BINERY|MASTER} status; 查看正在使用中的日志文件 show binlog events in 'mysql-bin.000001' [from num] [limit rows]; 查看記錄的事件
二進制日志記錄格式:binlog_format
基于sql語句記錄(SBR):statement
基于行記錄(RBR):row
混合模式(MBR):mixed,讓系統自行判斷該基于哪種模式(默認)
#運行時修改SET SESSION binlog_format =
二進制日志文件構成:
日志文件:mysql-bin.文件名后綴 二進制格式
索引文件:mysql-bin.index 文本格式
服務器變量:
log_bin=/PATH/TO/BIN_LOG_FILE|OFF #sql_log_bin= {ON|OFF} 是否記錄 #session.sql_log_bin={ON|OFF} 控制某會話中的“寫”操作語句是否會被記錄于日志文件中;(重放時應臨時關閉) max_binlog_size=100M 單個二進制日志文件的最大體積,默認為1G sync_binlog=0或大于0的整數 #默認0異步記錄性能更好,由操作系統自己決定什么時候刷新緩存到持久化設置,如果這個值比0大,它指定了兩次刷新到磁盤的動作之間間隔多少次二進制日志寫操作。設置1最安全但是最耗內存, 很多MySQL DBA設置的sync_binlog并不是最安全的1,而是100或者是0。這樣犧牲一定的一致性,可以獲得更高的并發和性能。
mysqlbinlog:客戶端命令工具(直接查看二進制日志)
--start-datetime="YYYY-MM-DD hh:mm:ss" 開始事件 --stop-datetime="YYYY-MM-DD hh:mm:ss" 結束時間 -j, --start-position=# 從哪個位置開始 --stop-position=# 從哪個位置結束 --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 /*!*/;
事件的起始位置:# at 553
事件發生的日期時間:#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/*!*/;
事件內容:BEGIN
5.中繼日志:
從服務器上記錄下來從主服務器的二進制日志文件同步過來的事件;
6.事務日志:
事務型存儲引擎innodb用于保證事務特性的日志文件:
redo log
undo log
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。