查詢日誌:
general_log = ON| OFF#查詢日誌開關
general_log_file localhost.log #查詢日誌的文件名字
log_output TABLE | FILE | NONE #查詢日誌的存儲形式
慢查詢日誌
執行時長超出指定時間的查詢操做
slow_query_log = OFF|ON #開啓慢查詢日誌
slow_query_log_file = LOCALHOST-SLOW.log #慢查詢日誌的文件路徑
long_query_time #慢查詢時長
log_slow_rate_limit#若是要記錄的慢查詢日誌很是多的話,會按照速率來記錄,默認1秒記錄一個
log_slow_verbosity=full | query_plan #記錄的詳細級別
錯誤日誌
mysqld啓動和關閉過程當中輸出的事件信息
mysqld運行中產生的錯誤信息
event scheduler 運行一個event時產生的日誌信息
在主從複製架構中的從服務器上啓動從服務器線程時產生的信息
log_error = /var/log/mysql_error.log#指定錯誤日誌的輸出位置
log_warnings 爲0, 表示不記錄告警信息。
log_warnings 爲1, 表示告警信息寫入錯誤日誌。
log_warnings 大於1, 表示各種告警信息,例若有關網絡故障的信息和從新鏈接信息寫入錯誤日誌。
二進制日誌
查看二進制日誌:
SHOW {BINARY | MASTER} LOGS
SHOW BINLOG EVENTS [IN 'log_name']
show master status;
記錄致使數據改變或者可能致使數據改變的SQL語句
log_bin = OFF | ON
log_bin_basename = /var/lib/mysql/mysql-bin
binlog_format=STATEMENT|ROW|MIXED:二進制記錄格式
STATEMENT:基於「語句」記錄
ROW:基於「行」記錄
MIXED:讓系統自行斷定該基於哪一種方式進行
sql_log_bin=1|0:是否啓用二進制日誌
log_bin_index=PATH:二進制日誌索引位置
sync_binlog=1|0:設定是否啓動二進制日誌同步功能
max_binlog_size=SIZE:單個二進制文件最大致積,默認爲1G
expire_logs_days=0#超過多少天就清除二進制日誌,默認爲0,表明不啓用此功能
二進制日誌手動滾動:
flush logs;
二進制日誌文件的構成:
兩類文件:
日誌文件:mysql-bin.xxxxx,二進制格式
索引文件:mysql-bin.index,索引文件
二進制日誌格式:
#190613 14:17:32 server id 1 end_log_pos 666 CRC32 0xeb1cde6b Query thread_id=9 exec_time=
0 error_code=0
use `testdb`/*!*/;
事件發生的日期和時間:190613 14:17:32
事件發生的服務器標識:server id 1
事件的結束位置:end_log_pos 666
事件的類型:Query
事件發生時所在服務器執行此事件的線程ID:thread_id=9
語句的時間戳與將其寫入二進制文件中的時間差:exec_time=0
錯誤代碼:error_code=0
事件內容:
GTID:Global Transaction ID;
專屬屬性:GTID
mysqlbinlog:客戶端命令工具
mysqlbinlog [options] log_file ...
--start-datetime=
--stop-datetime=
--start-position=
--stop-position=
mysql
中繼日誌:
複製架構中,從服務器用於保存主服務器的二進制日誌中讀取到的事件sql
事務日誌:transaction log(ib_logfile0,ib_logfile1)
innodb_log_files_in_group = 2 事務日誌文件的個數,默認爲2個事務日誌文件
innodb_log_file_size = 50331648(48m)事務日誌文件的單個大小48m
innodb_log_group_home_dir = ./ 事務日誌文件的所在路徑,默認就在mariadb的數據目錄/var/lib/mysql
事務型存儲引擎自行管理和使用
redo log : 重作日誌
undo log :撤銷日誌
備份和恢復:
爲何要備份?
災難恢復:硬件故障,軟件故障,天然災害,黑客攻擊,誤操做
測試
要注意的要點:
能容忍最多丟失多少數據
恢復數據須要在多場時間內完成
須要恢復哪些數據
(1)作還原測試,用於測試備份的可用性
(2)還原演練
備份類型:
徹底備份,部分備份
徹底備份:整個數據集
部分備份:只備份數據子集
徹底備份、增量備份、差別備份
增量備份:僅備份最近一次徹底備份或增量備份(若是有增量備份)以來變化的數據
差別備份:僅備份最近一次徹底備份以來變化的數據;
熱備、溫備、冷備
熱備:讀寫操做都可執行
溫備:讀操做能夠、寫不行
冷備:讀寫操做均不能執行
MyISAM:溫備,不能熱備;
Innodb:熱備
物理備份、邏輯備份
物理備份:直接複製數據文件進行備份,與存儲引擎無關
邏輯備份:從數據庫中「導出」數據庫另存而進行備份
備份時須要考慮的因素:
持續多久
備份過程的時長
備份負載
恢復過程的時長
備份什麼?
數據
二進制日誌,innodb的事務日誌
代碼(存儲過程,存儲函數,觸發器,時間調度器)
服務器的配置文件
設計備份方案:
數據集:徹底+增量
備份手段:物理,邏輯
備份工具的選擇:
mysqldump+複製binlog:
mysqldump:徹底備份
複製binlog中指定時間範圍內的event:增量備份
lvm2快照+複製binlog:
lvm2快照:適用cp或者tar等作物理備份:徹底備份
複製binlog中指定時間範圍內的event:增量備份
xtrabackup:
由Percona提供的支持對InnoDB作熱備(物理備份)工具
徹底備份,增量工具數據庫