MySql DDL日誌 mysql日誌管理

2021-10-18 09:09:50 字數 1681 閱讀 1662

一、錯誤日誌

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...