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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql 清理 reley_MySQL日志相关

發布時間:2025/3/15 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 清理 reley_MySQL日志相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL日志:

查詢日志:query log

慢查詢日志:查詢執行時長超過指定時長的查詢操作所記錄日志 #slow query log

錯誤日志:error log 包括服務自己啟動或關閉的正常信息

二進制日志:binary log 非常重要的日志,數據恢復

中繼日志:reley log MySQL復制中用到的日志

事務日志:transaction log

ACID, 隨機I/O轉換為順序I/O

1、查詢日志:

記錄查詢操作:

記錄在文件中:file

表中:table

mysql> SHOW GLOBAL VARIABLES LIKE '%log%';

log_output = {TABLE|FILE|NONE}

log_output = TABLE,FILE,NONE

FILE: gerenal_log

general_log = {ON|OFF}: 是否啟用查詢日志

general_log_file = HOSTNAME.log:當log_output有FILE類型時,日志信息的記錄位置;

2、慢查詢日志:

查詢時長超過指定時長的查詢操作:

mysql> SELECT @@GLOBAL.long_query_time; #查看執行的指定時長

+--------------------------+

| @@GLOBAL.long_query_time |

+--------------------------+

| 10.000000 |

+--------------------------+

1 row in set (0.01 sec)

mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';

+-----------------+-----------+

| Variable_name | Value |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

mysql> SET GLOBAL long_query_time=''; #設置臨時修改,如需要永久生效,需要寫入配置文件

slow_query_log = {ON|OFF}:是否啟用慢查詢日志

slow_query_log = /path/to/somefile: 日志文件路徑

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、錯誤日志:#默認是不開啟的

記錄的并非完全的錯誤日志信息,記錄MySQL的正常啟動與關閉的日志信息

mysqld啟動和關閉過程中輸出的信息;

mysqld運行中產生的錯誤信息;

event scheduler運行一個event時產生的日志信息;

在主從復制架構中的從服務器上啟動從服務器線程時產生的日志信息;

log_error = /path/to/somefile #指向絕對路徑

log_warnings = {ON|OFF}:1|0 也是可以的,#是否記錄警告信息于錯誤日志中;

4、二進制日志:不能使用cat等命令打開,可能會導致文件損壞

記錄導致數據改變或潛在導致數據改變的SQL語句;

功能:用于通過“重放”日志文件中的事件來生成數據副本;

SHOW {BINARY | MASTER} LOGS:查看主服務器端處于由mysqld維護狀態中的二進制日志文件;

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

SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]:顯示指定的二進制日志文件中的相關事件

二進制日志記錄格式:

基于“語句”記錄;statement

基于“行”記錄;row

“混合模式” :mixed,讓系統自動判定該基于那種方式進行;

二進制日志文件的構成:

兩類文件

日志文件:文件名前綴.文件名后綴

索引文件:文件名前綴.index #文本格式

服務器變量:

log_bin = /path/to/somefile 二進制日志記錄的文件位置,通常為OFF

binlog_format = STAETMENT|ROW|MIXED 二進制日志記錄的格式;

sql_log_bin = ON 是否記錄二進制日志

max_binlog_size = 1073741824 #單個二進制日志文件的最大體積,默認是1G;

注意:(1)到達最大值會自動滾動;(2)文件到達上限時的大小未必會到達指定的最大值

二進制日志文件的單文件上限;

max_binlog_cache_size = 18446744073709547520

max_binlog_stmt_cache_size = 18446744073709547520

expire_logs_days = 0 二進制日志的自動清理功能默認設置為0,不啟動該功能。

sync_binlog = 0|1:設定多久同步一次二進制日志文件;

0表示不同步;任何正值都表示記錄多少個語句后同步一次;

1表示同步數據,當遇到事務commit時將進行二進制日志同步一次;

二進制日志事件的格式:

# at 19364

#140829 15:50:07 server id 1 end_log_pos 19486 Query thread_id=13 exec_time=0 error_code=0

SET TIMESTAMP=1409298607/*!*/;

GRANT SELECT ON tdb.* TO tuser@localhost

/*!*/;

# at 19486

事件發生的日期和時間;(140829 15:50:07)

事件發生在服務器的標識(server id)

事件的結束位置:(end_log_pos 19486)下一個事件的起始位置

事件的類型:(Query)

事件發生時所在的服務器執行此事件的線程的ID:(thread_id=13)

語句的時間戳與將其寫入二進制文件中的時間差:(exec_time=0)

錯誤代碼:(error_code=0)

事件內容:(SET TIMESTAMP=1409298607/*!*/;

GRANT SELECT ON tdb.* TO tuser@localhost)

GTID事件專屬:Global Rransction ID;

事件所屬的全局事務的GTID:(GTID 0-1-2)

二進制日志的查看命令:

mysqlbinlog:客戶端命令工具

查看二進制文件事件信息

mysqlbinlog [OPTIONS] log_files

./mysqlbinlog /usr/log/mysql-bin.000003 二進制文件的覺得路徑

mysqlbinlog

-j, --start-position=#:從指定的事件位置查看

--stop-position=#:只顯示到指定的事件位置

--start-datetime=name

--stop-datetime=name

YYYY-MM-DD hh:mm:ss

-u

-h

-p

5、中繼日志:

復制架構中,從服務器用于保存從主服務器的二進制日志中讀取到的事件;

6、事務日志(innodb存儲引擎):

幫助事務性存儲引擎保存數據的,事務型存儲引擎自行管理和使用的;

事務型存儲引擎自行管理和使用

redo log

undo log

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

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