事務日誌 transaction log
中繼日誌 reley log
錯誤日誌 error log
通用日誌 general log
慢查詢日誌 slow query log
二進位制日誌 binary log
vim /etc/my.cnf
[mysqld]
innodb_log_group_home_dir=/data/mysqllogs/
show variables like 『%datadir%』; 可檢視路徑,預設可知在
/var/lib/mysql/
小技巧:
optimize table testlog;
testlog表刪除了大量資料,檔案大小不會縮減,執行此命令後可縮小資料庫檔案
show variables like '%slow%' 檢視是否開啟慢日誌
set global slow_query_log=on 開啟慢查詢
show variables like '%long_query%' 檢視閾值
set long_query_time=5 設定超過5秒的記錄日誌
生成檔案 例: centos7-slow.log
思路:記錄日誌後,可為記錄語句新增索引,優化速度
1.select * from testlog where age=90000;
先執行語句記錄日誌
2.explain select * from testlog where age=90000;
檢視此語句執行過程
3.create index idx_age on testlog(age);
建立索引
4.select * from testlog where age=99000;
測試新增索引後是否優化了速度
show variables like 'profiling' 查詢狀態
set profiling =on 開啟
select * from teachers; 執行乙個查詢語句
show profiles; 查詢剛剛執行的語句編號
show profile for query 1; 查詢1號的過程
記錄導致資料改變或潛在導致資料改變的sql語句
記錄已提交的日誌
不依賴於儲存引擎型別
功能:通過「重放」日誌檔案中的事件來生成資料副本
基於備份,資料丟失先備份還原,然後用二進位制日誌還原到最新的操作
注意:建議二進位制日誌和資料檔案分開存放
日誌檔案:mysql|mariadb-bin.檔名字尾,二進位制格式
如: mariadb-bin.000001
索引檔案:mysql|mariadb-bin.index,文字格式
binlog_format=statement|row|mixed:二進位制日誌記錄的格式,預設statement
max_binlog_size=1073741824:單個二進位制日誌檔案的最大體積,到達最大值會自動滾動,預設為1g
說明:檔案達到上限時的大小未必為指定的精確值
sync_binlog=1|0:設定是否啟動二進位制日誌即時同步磁碟功能,預設0,由作業系統負責同步日誌到磁碟
expire_logs_days=n:二進位制日誌可以自動刪除的天數。 預設為0,即不自動刪除
檢視mariadb自行管理使用中的二進位制日誌檔案列表,及大小
show logs
檢視使用中的二進位制日誌檔案,更詳細
show master status
檢視二進位制檔案中的指定內容
show binlog events [in 『log_name』] [from pos] [limit [offset,] row_count]
show binlog events in 『mysql-bin.000001' from 6516 limit 2,3
從6516開始看,其中的2,3條
mysqlbinlog [options] log_file…
選項:–start-position=# 指定開始位置
–stop-position=#
–start-datetime2018-01-30 20:30:10
–stop-datetime=
–base64-out=decode-rows 解碼64
-v-vvv
從位置查:
mysqlbinlog --start-position=6787 --stop-position=7527 /var/lib/mysql/mariadb-bin.000003 -v
從時間查:
mysqlbinlog --start-datetime="2018-01-30 20:30:10" --stop-datetime="2018-01-30 20:35:22" mariadb-bin.000003 -vvv
準備:
mysqlbinlog /data/mysqlbin/mysql-bin.000001 --start-position=48355715 > /data/test.sql
按位置匯出日誌
cat /data/test.sql
檢視檔案格式
二進位制日誌事件的格式:
# at 48355715
#151105 16:31:40 server id 1 end_log_pos 431 query thread_id=1 exec_time=0 error_code=0
use `mydb`/*!*/;
set timestamp=1446712300/*!*/;
create table tb1 (id int, name char(30))
/*!*/;
內容解釋:
事件發生的伺服器標識:server id 1
事件的結束位置:end_log_pos 431
事件的型別:query
事件發生時所在伺服器執行此事件的執行緒的id:thread_id=1
語句的時間戳與將其寫入二進位制檔案中的時間差:exec_time=0
錯誤**:error_code=0
事件內容:
gtid:global transaction id,mysql5.6以mariadb10以上版本專屬屬性:gtid
測試環境沒問題,準備上線才使用,從頭開始計數
reset master 全清除
flush logs;
mysql-bin.000001
mysql-bin.000002
生成乙個新乙個日誌檔案,原日誌檔案不會被刪。
作用:原日誌檔案已經備份了,可以存放新日誌檔案
封裝框架(十)日誌類
每個框架都有日誌類,日誌類非常的重要,接下來要在我們的框架中加入日誌類 首先我們要對日誌類有乙個規劃 1 確定日誌的儲存方式,例如 存到檔案中 存到資料庫中 2 寫日誌 我們這裡確定為把日誌存到檔案系統中 首先我們在lib目錄下建乙個log.php用來確定儲存方式 namespacecore lib...
Linux基礎(十) 日誌服務管理(一)
程序和作業系統核心需要能夠為發生的事件記錄日誌,這些日誌可用於系統審核和問題的故障排除,一般這些日誌永久的儲存 var log目錄中 系統檔案記錄資訊 日誌檔案 用途 var log message 大多數系統日誌資訊記錄在這裡 var log secure 安全和身份認證相關的訊息和錯誤的日誌檔案...
Kafka日誌儲存解析(二)日誌索引
每個日誌分段檔案對應了兩個索引檔案,主要用來提高查詢訊息的效率。如上圖 kafka中的索引檔案屬於稀疏索引,不是所有的訊息都有對應的索引項。每當寫入一定量 由broker端引數log.index.interval.bytes指定,預設是4kb 的訊息時,偏移量索引檔案和時間戳索引檔案分別增加乙個偏移...