資料庫學習之十 mysql日誌管理

2022-06-06 06:21:07 字數 4719 閱讀 4402

課程大綱

1、mysql日誌型別簡介

2、mysql錯誤日誌配置及檢視

3、mysql binlog介紹及管理實戰

4、mysql 慢查詢日誌設定及管理實戰

mysql> show variables like '%log_error%';在配置檔案中指定錯誤日誌位置。

mysql> show variables like '%gen%'; 一般日誌查詢

二進位制日誌,記錄修改記錄。

日誌檔案

選項檔名

程式表名稱

錯誤--log-error

host_name.err

n/a常規

--general_log

host_name.log,general_log

n/a慢速查詢

--slow_query_log --long_query_time

host_name-slow. log,slow_log

mysqldumpslow

二進位制--log-bin --expire-logs-days

host_name-bin.000001

mysqlbinlog

審計--audit_log--audit_log_file...

audit.log

n/a

錯誤日誌:

配置方法:

[mysqld]

log-error=/data/mysql/mysql.log

檢視配置方式:

mysql> show variables like '%log%error%';

作用:記錄mysql資料庫的一般狀態資訊及報錯資訊,是我們對於資料庫常規報錯處理的常用日誌。

一般查詢日誌:

配置方法:

[mysqld]

general_log=on

general_log_file=/data/mysql/server2.log

檢視配置方式:

show variables like '%gen%';

作用:記錄mysql所有執行成功的sql語句資訊,可以做審計用,但是我們很少開啟。

1、二進位制日誌都記錄了什麼?

已提交的資料記錄,以event的形式記錄到二進位制檔案中

2、二進位制記錄格式有哪些?

row:行模式,即資料行的變化過程,如將age=19修改成age=20的過程事件。(一般都是應用這個模式)

statement:語句模式,如將update語句進行記錄。

mixed:以上兩者的混合模式。

3、三總模式有什麼優缺點?

4、binlog的作用

備份恢復、複製

二進位制日誌管理:

1、開啟二進位制日誌

set sql_log_bin=0 -->在會話級別修改為臨時關閉

vi /etc/my.cnf

log-bin=/data/mysql/mysql-bin -->在全域性開啟binlog

2、設定二進位制日誌記錄格式(建議是row):

配置檔案中修改:

binlog-format=row

命令列修改

mysql> set global binlog_format = 'statement';

mysql> set global binlog_format = 'row';

mysql> set global binlog_format = 'mixed';

3、檢視binlog設定

show variables like '%binlog%';

查詢二進位制日誌方法:

mysql> show variables like 'binlog';

mysql> show binary logs;

mysql> show master status; 最近一次的,當前正在使用的二進位制日誌

mysql> show binlog events in 'mysql-bin.000014';

可以通過linux命令列中程序查詢:

[root@centos6-kvm3 mysql]# pwd

[root@centos6-kvm3 data]# mysqlbinlog mysql-bin.000014 #真正二進位制日誌內容

詳細的查詢:日誌內容分析

[root@centos6-kvm3 data]# mysqlbinlog --help | more

[root@centos6-kvm3 data]# mysqlbinlog --base64-output=decode-rows -v mysql-bin.000014

根據需求擷取二進位制日誌:

[root@centos6-kvm3 data]# mysqlbinlog --start-position=1077 --stop-position=1119 mysql-bin.000014

----

二進位制日誌

-----

mkdir /data/binlog -p

chown -r mysql.mysql /data/binlog

vim /etc/my.cnf

log-bin=/data/binlog

binlog_format=row

sync_binlog=1

show binary logs;

show binlog events in 'my-bin.000002'

show master status;

擷取獲取二進位制日誌,進行恢復:

mysqlbinlog --base64-output=decode-rows -v my-bin.000002 #日誌內容分析

mysqlbinlog --start-position=120 --stop-position=721 my-bin.000002 #擷取二進位制日誌

mysqlbinlog --start-position=340 --stop-position=721 my-bin.000002 >/tmp/binlog.sql

source /tmp/binlog.sql

二進位制日誌管理:

重新整理二進位制日誌

flush logs

擷取二進位制日誌

mysqlbinlog --start-position= --stop-position= >a.sql

問題:1、什麼是事件?

2、什麼是position ?

1、通過擷取binlog恢復損壞資料

mysqbinlog --start-position=340 --stop-position=721 my-bin.000002 >/tmp/binlog.sql

2、二進位制日誌翻轉實現閃回資料(擴充套件)

source /tmp/binlog.sql

刪除二進位制:

預設情況下,不會刪除舊的日誌檔案。

根據存在時間刪除日誌:

set global expire_logs_days = 7;

…或者…

purge binary logs before now() - interval 3 day;

根據檔名刪除日誌:

purge binary logs to 'mysql-bin.000010';

reset master;#重啟啟用乙個二進位制檔案。

功能:

slow-log,記錄所有條件內的慢的sql語句

優化的一種工具日誌。幫我們定位問題。

是將mysql伺服器中影響資料庫效能的相關sql語句記錄到日誌檔案

通過對這些特殊的sql語句分析,改進以達到提高資料庫效能的目的。

慢日誌設定:

long_query_time    :  設定慢查詢的閥值,超出次設定值的sql即被記錄到慢查詢日誌,預設值為10s

slow_query_log      :  指定是否開啟慢查詢日誌

slow_query_log_file :  指定慢日誌檔案存放位置,可以為空,系統會給乙個預設的檔案host_name-slow.log

min_examined_row_limit:查詢檢查返回少於該引數指定行的sql不被記錄到慢查詢日誌

log_queries_not_using_indexes: 不使用索引的慢查詢日誌是否記錄到索引

配置例子,新增在配置檔案中:

slow_query_log=1 

slow_query_log_file=/data/slow/slow.log

long_query_time=0.5

log_queries_not_using_indexes

處理慢日誌:

mysqldumpslow命令

mysqldumpslow -s c -t 10 /data/slow/slow.log

mysqldumpslow -s at -t 10 /data/slow/slow.log

這會輸出記錄次數最多的10條sql語句,

其中:-s

是表示按照何種方式排序

c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序。

ac、at、al、ar,表示相應的倒敘。

-t是top n的意思,即為返回前面多少條的資料;

----------自己擴充套件工具

pt-query-diagest percona-toolkit

mysqlsla

MySQL資料庫學習日誌5 11

1.連線資料庫 配置檔案 連線引數database中的params資料庫連線引數。方法配置 呼叫db類動態定義連線資訊或者使用字串 db connect mysql 資料庫連線 資料庫型別 使用者名稱,密碼 資料庫地 資料庫埠號 資料庫名 字符集 2.基本使用資料庫執行sql query和execu...

資料庫學習日誌

引 介面是一種約束,不用管內部的實現,只需要用它的方法。特點 面向介面程式設計,面向資料庫程式設計 jdbc連線資料庫的步驟 第一步 載入資料庫的驅動包 不同的版本驅動包不同,到官網找下就行 第二步 獲取資料庫的連線 第三步 查詢和修改語句,即執行相應的操作 第四部 關閉資源 對應的設計模式 mvc...

mysql日誌類資料儲存 MySQL 日誌管理詳解

大綱 一 日誌分類 二 日誌詳解 注 mysql版本,mysql 5.5.32 不同版本的mysql變數有所不同 一 日誌分類 錯誤日誌 查詢日誌 慢查詢日誌 二進位制日誌 中繼日誌 事務日誌 滾動日誌 二 日誌詳解 1.錯誤日誌 說明 在對應的資料目錄中,以主機名 err命名的檔案,錯誤日誌記錄的...