課程大綱
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命名的檔案,錯誤日誌記錄的...