一、錯誤日誌
1.作用:排查mysql執行時的故障
2.自定義錯誤檔案日誌位置
在配置檔案中,加入 log_error =檔案目錄,在重啟資料庫
3.檢視錯誤檔案位置
select@@log_error;
二、二進位制日誌
1.作用:主從依賴二進位制檔案
資料恢復靠二進位制檔案、
2.開啟二進位制文集
在配置檔案中加入
log_bin=檔案目錄位置
server_id=6
3.檢視二進位制命令
檢視二進位制檔案是否開啟:show variables like 'log_bin';
檢視二進位制檔案列表;show binary logs;
檢視當前二進位制檔案是哪個:show master status;
重新整理二進位制檔案:flush logs;
檢視某個二進位制檔案的事件:show binlog evrnts in '日誌檔名'
三、二進位制檔案記錄什麼
1.記錄了資料庫所有變更類的操作,dml,dcl,ddl
對於ddl.dcl:以語句的方式原模原樣的記錄
對於dml;
(1)記錄已提交的事務
(2)dml的格式有statement,row,mixed通過binlog_format引數控制:
statement(sbr);語句模式記錄日誌,做什麼命令,就記錄什麼
row(rbr):行模式,資料行的變化
mixed(mbr):混合模式,以上倆種模式混合使用
例題:sbr和rbr什麼區別怎麼選擇?
sbr:可讀性較強,對於範圍操作日誌量少,可能會出現記錄不準確的情況
rbr:可讀性弱,對於範圍操作日誌量大,不會出現錯誤
高可用環境的新特性要依賴於rbr
四、二進位制檔案記錄單元
1.事件二進位制日誌的最小單元
2.mysqlbinlog命令的一些引數
(1)-d 指定某個資料庫到二進位制日誌資訊
mysqlbinlog -d ccc(資料庫名) mysql-bin.000001
(2)-d 再用二進位制檔案恢復資料時,也會產生二進位制檔案,禁用二進位制日誌
mysqlbinlog-d mysql-bin.000001
3.擷取日誌檔案
mysqlbinlog --start-position=事件開始位置 --stop-position=事件結束位置 日誌檔案目錄位置 >/tmp/bin.sql;
注意:在恢復資料時,先set sql_log_bin=0臨時關閉日誌檔案,防止恢復時產生日誌資訊,恢復結束後 set sql_log_bin=1
五、binlog的gtid記錄模式管理
1.gtid介紹
對於binlog來說,每個事務都會產生乙個gtid號,ddl,dcl乙個event就是乙個事務,就會有gtid,對於dml
從begin到commit就是乙個事務,就會有gtid
2.gtid開啟與配置
vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true
3.gtid的冪等性
如果拿有gtid的日誌去恢復資料時,會檢查系統是否有相同的gtid號,如果有則跳過,會影響主從複製和binlog恢復
4.引數說明
--skip-gtids
mysql ddl注意 MYSQL DDL注意事項
ddl的基礎語法及設計工具 資料定義語言 它定義了資料庫的結構 和 資料表的結構。在ddl中,我們常用的功能是增刪改,分別對應的命令是 create drop和alter。需要注意的是,在執行ddl的時候,不需要commit,就可以完成執行任務。我們將字符集設定為utf8,排序規則為utf8 gen...
MySql DDL 常見約束
含義 一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性 分類 六大約束 新增約束的時機 1.建立表時 2.修改表時 1 新增列級約束 語法 直接在欄位名和型別後面追加 約束型別即可 只支援 預設 非空 主鍵 唯一 create table stuinfo id int primary ...
MySQL DDL語言筆記
ddl語句 庫和表的管理 庫的管理 一 建立庫 create database 庫名 二 刪除庫 drop database 庫名 表的管理 1.建立表 create table if not exists stuinfo stuid int,stuname varchar 20 gender ch...