日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL的日志管理

發布時間:2024/4/19 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL的日志管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL的日志:

SHOW GLOBAL VARIABLES LIKE '%log%'; 查看和日志有關的變量配置
-----------------------------------------------------------
日志的類型:
錯誤日志
查詢日志
慢查詢日志
二進制日志
中繼日志
事務日志
------------------------------------------------------------
錯誤日志:
錯誤日志文件記錄的內容:
?1 服務器啟動過程中的信息.
?2 服務器運行過程中產生的錯誤信息.
?3 時間調度器運行一個事件的時候產生的錯誤信息
?4 從服務器啟動過程中產生的信息.

錯誤日志的文件默認是數據目錄中,文件的命名 hostname.err

錯誤日志是不能關閉的.

服務器配置參數變量:
?log_error = PATH 指定錯誤日志的文件的位置 和 文件名

?log_warning = 0 | 1 表示警告信息是否寫入錯誤日志文件中
--------------------------------------------------------------

查詢日志:
查詢日志記錄了所有的查詢的語句,在生產服務器中,我們是不回打開這個開關的,會消耗服務器的資源

服務器的配置參數變量:
?general_log = On | Off ?查詢日志的開關

?general_log_file = PATH 查詢日志文件的位置和文件名命令

?log = On | Off 表示是否所有的語句(delete update...)都寫入查詢日志?

?log_output = FILE | TABLE | NONE 查詢日志輸出的位置
FILE 表示輸出到文件 使用 general_log_file參數
TABLE 表示輸出到表中 mysql.general_log 表中
NONE 表示即使打開general_log 也不記錄日志
?
---------------------------------------------------------------
慢查詢日志:
慢查詢日志記錄了執行時間查過了指定時間的SQL語句,這個日志一般是開啟的,不會消耗太多的系統資源.

服務器的配置參數:
?long_query_time = 超時時間
?
?slow_query_log = On | Off 慢查詢日志的開關

?slow_query_log_file = PATH 慢查詢日志的位置

?log_slow_queries = On | OFf 慢查詢日志的開關 5.6之前使用

? ? ? ? ? log_output = FILE | TABLE | NONE?
FILE 表示使用slow_query_log_file 參數
? ? ? ?TABLE 表示記錄到數據庫的表中 mysql.slow_log? ? ? ? ??
----------------------------------------------------------------

二進制日志:
二進制日志文件保存了 修改 和 潛在可能修改的語句.

二進制日志文件的作用 是 復制 和 恢復

二級制日志的滾動:避免單個二進制日志文件過大
1 基于大小的滾動
2 基于時間的滾動
3 服務器啟動的時候滾動
4 FLUSH LOGS;命令滾動日志

查看當前使用的二進制日志文件:
SHOW MASTER STATUS;

查看所有的二進制日志文件:(查看索引文件中的內容)

SHOW BINARY LOGS;

查看二進制日志的內容:
1 使用用戶空間的工具
?mysqlinlog '文件';
?mysqlbinlog --start-datetime ‘二進制日志文件';
?mysqlbinlog --stop-datetime '二進制日志文件';
?mysqlbinlog --start-position '二進制日志文件';
?mysqlbinlog --stop-position '二進制日志文件';

2 使用mysql的命令
?mysql> SHOW BINLOG EVENTS IN '文件' FROM pos;

Log_Name :二進制日志文件的文件名
Pos : 二進制日志的開始的相對位置
Server_id : 產生該日志的服務器的ID號碼
ENd_log_pos : 結束日志的相對位置
Info : 日志的信息

刪除二進制日志文件:
PURGE BINARY LOGS TO '二進制日志文件'; 表示刪除指定二進制日志文件之前的所有二進制日志文件.

服務器參數配置變量:
binlog_formart = STATEMENT | ROW | MIXED 定義了二進制日志的格式
STATEMENT 是基于語句保存數據
ROW 是基于行保存數據
MIXED 是混合的保存方式
binlog_cache_size = 定義事務性語句使用的用戶空間的緩沖二進制日志的大小

binlog_stmt_cache_size = 定義非事務性語句使用的用戶空間的緩沖二進制日志的大小

bin_log = PATH 指定二進制日志文件的位置

bin_log_index = 指定二進制日志的索引文件的位置

sql_log_bin = On | OFF 是否開啟二進制日志 這個會話參數 是不能在配置文件中配置的

max_binlog_cache_size =

max_binlog_stmt_cache_size =?

sync_binlog = 控制同步二進制日志
0 表示由文件系統決定什么時候同步二進制日志 從文件系統到磁盤
n 表示每n次二進制寫入文件系統緩沖就 有文件系統同步到磁盤中

中繼日志:
中繼日志是從主服務器中復制而來的二進制日志文件,并在本地保存為中繼日志.

事務日志:

事務日志是將 非順序的I/O操作轉化為順序的I/O操作.


服務器的配置參數變量:

innodb_flush_log_at_trx_commit 事務提交的時候同步事務日志的方式
0 表示每秒同步一次I/O到文件系統,并且執行磁盤flush從文件系統到磁盤中
1 表示每次事務提交同步I/O到文件系統,并且執行flush從文件系統到磁盤中
2 表示每次事務提交同步I/O到文件系統,但是不指定flush同步到磁盤文件,由操作系統決定同步.

innodb_log_buffer_size = 用戶空間事務日志的緩沖的大小
innodb_log_file_size = 日志文件的大小

innodb_log_file_in_group = 日志文件的個數

innodb_log_group_home_dir = 日志文件的家目錄


配置:


---------------------------------------------
錯誤日志:


log_error = /mydata/errorlogs/error-log.log 指定錯誤日志的文件


log_warnings = 1 開啟警告寫入錯誤日志文件中


---------------------------------------------


查詢日志:


general_log = Off 表示關閉寫入查詢日志


general_log_file = PATH 這個參數可以不配置


log = Off 表示并不把非查詢語句寫入查詢日志中


----------------------------------------------


慢查詢日志:


slow_query_log = On 表示開啟慢查詢日志


log_slow_queries = On 表示開啟慢查詢日志


slow_query_log_file = PATH 指定查詢日志的位置


log_output = FILE 指定查詢日志的輸出類型是寫入文件


-----------------------------------------------


二進制日志:


sql_log_bin = On 這個是會話級別的參數 是不能寫入配置文件中


log_bin = /mydata/logbins/log-bin 指定二進制日志文件的位置文件名


log_bin_index = /mydata/data/log-bin.index 指定二進制日志索引文件


binlog_format = MIXED 指定二進制日志的格式


binlog_cache_size = 指定事務性語句的用戶空間二進制緩沖大小 每一個連接用戶都會分配獨立的內存空間


binlog_stmt_cache_size = 指定非事務性語句的用戶空間的二進制緩沖的大小 每一個連接的用戶都會分配獨立的內存空間


max_binlog_cache_size = 最大值 不需要設置


max_binlog_stmt_cache_size = 最大值 不需要設置


expire_logs_days = 0 是否過期二進制日志文件 0表示不過期


sync_binlog = 0 同步二進制日志 文件系統(內存緩沖) 到 磁盤 至于用戶空間到文件系統這個過程是內部的機制自動完成的.


0 表示由操作系統決定從文件系統到磁盤的同步
n 表示每n次寫入文件系統的緩沖就同步到磁盤中


---------------------------------------------------


事務性日志:


innodb_log_buffer_size = 用戶空間事務日志緩沖的大小


innodb_log_file_size = 指定事務日志文件的大小


innodb_log_files_in_group = 事務日志的個數


innodb_log_group_home_dir = 事務日志的位置


innodb_flush_log_at_trx_commit = 事務日志的同步機制


0 表示每秒由用戶空間innodb_log_buffer_size 到 文件系統緩沖再調用系統fsync()函數同步到磁盤中
1 表示每次事務提交從用戶空間innodb_log_buffer_size 到 文件系統 再調用系統fsync()函數同步到磁盤中
2 表示每次事務提交從用戶空間innodb_log_buffer_size 到文件系統 文件系統到磁盤是由系統調用函數執行的.



總結

以上是生活随笔為你收集整理的MySQL的日志管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。