mysql日誌功 MySQL日誌功能詳解 2

2021-10-25 14:24:53 字數 3927 閱讀 1469

二進位制日誌:(多個執行緒會爭用,可以首先寫到緩衝區中)

記錄了當前伺服器的資料修改和有潛在可能性影響資料修改的語句

預設在資料目錄下,通常情況下為mysql-bin[root@redhat7 data]# file mysql-bin.000001

mysql-bin.000001: mysql replication log  複製日誌

可以通過mysqlbinlog命令來檢視

時間記錄 time

偏移位置 position

mysql > show master status 顯示主伺服器狀態

檢視當前使用的二進位制日誌和下乙個事件開始時的基於的位置

mysql [(none)]> show master status;

| file             | position | binlog_do_db | binlog_ignore_db |

| mysql-bin.000003 |      107 |              |                  |

1 row in set (0.00 sec)

日誌滾動:

1、可以按照大小定義

2、可以按照時間定義

3、重啟mysql伺服器

4、執行flush logs(手動滾動)

檢視當前正在使用的二進位制日誌mariadb [(none)]> show binary logs;

| log_name         | file_size |

| mysql-bin.000001 |      1043 |

| mysql-bin.000002 |       245 |

| ...............3 |       245 |

2 rows in set (0.00 sec)

二進位制日誌的功用

即時點(時間點)恢復:

複製:[root@redhat7 data]# file mysql-bin.index

mysql-bin.index: ascii text

[root@redhat7 data]# cat mysql-bin.index

./mysql-bin.000001

./mysql-bin.000002

./mysql-bin.000003

./mysql-bin.000004

清除二進位制日誌mysql > help purge

purge  logs

檢視mysql的二進位制日誌mysql > help show binlog events;

mysql > show binlog events;

mariadb [(none)]> show binlog events\g

*************************** 1. row ***************************

log_name: mysql-bin.000001

pos: 4

event_type: format_desc

server_id: 1

end_log_pos: 245

info: server ver: 5.5.36-mariadb-log, binlog ver: 4

service-id:伺服器身份標識

(避免重複執行mysql二進位制日誌中'修改'類的語句)

mysql 記錄二進位制日誌的格式mariadb [(none)]> show variables like 'binlog_format';

| variable_name | value |

| binlog_format | row   |

1 row in set (0.00 sec)

基於語句:statement

基於行(資料):row

update tb1 set salary=salary+1000; --> 資料量很大

混合模式:mixed

指定從那個位置開始讀取

mariadb [(none)]> show binlog events in 'mysql-bin.000001' from 591\g

也可以使用

[root@redhat7 data]# mysqlbinlog --start-position=24223 mysql-bin.000001

mysqlbinlog命令(客戶端命令)--start-time

--stop-time

--start-position

--stop-position

二進位制日誌檔案內容格式

事件發生的日期和時間

伺服器id

事件結束位置

事件的型別

原伺服器生成此事件時的執行緒id號  mysql [(none)]> show processlist;

語句時間戳和寫入二進位制檔案的時間差,單位為秒

錯誤**,0表示正常執行

事件內容

事件位置(相當於下一事件的開始位置)

mysql [(none)]> show global variables like '%log%';

| log_bin = ;還可以是乙個檔案路徑                            |

| log_bin_trust_function_creators  是否阻止任何儲存函式                         |

| sql_log_bin =  當前會話是否將二進位制檔案錄入進二進位制檔案  |

| sql_log_off 是否將一般查詢日誌記入查詢日誌  |

| sync_binlog 同步緩衝中的二進位製到硬碟的時間,0不基於時間同步,只在事件提交時同步 |

| binlog_format =   |

| max_binlog_cache_size  mysql二進位制日誌的緩衝區大小,僅用於快取事務類的語句     |

| max_binlog_stmt_cache_size 語句緩衝區大小,即事務類和非事務類公用的大小        |

| max_binlog_size 二進位制日誌檔案的上限,單位為位元組  (超過上限會滾動)             |                |

建議:切勿將二進位制日誌與資料檔案放在同一裝置

事先做好規劃[root@redhat7 data]# mkdir /mysql/binlog

[root@redhat7 data]# vim /etc/my.cnf

log-bin=/mysql/binlog/master-bin

[root@redhat7 data]# chown -r mysql:mysql /mysql/binlog/

重啟mysqld 伺服器

[root@redhat7 data]# cd /mysql/binlog/

[root@redhat7 binlog]# ls

master-bin.000001  master-bin.index

可以臨時通過sql_log_bin來控制二進位制的寫入

對於非從伺服器,中繼日誌沒有啟用

relay_log  指明乙個檔案路徑

relay_log_index

relay_log_purge = 是否自動清理不在需要的中繼日誌

relay_log_space_limit 中繼大小是否限制

mysql 日誌 部落格 Mysql 日誌

日誌 errlog錯誤日誌 作用記錄mysql從啟動以來,所有的狀態,警告,錯誤。dba靠此定位資料庫問題。配置預設是開啟,vim etc my.cnf log error var log mysqld.log binlog二進位制日誌 作用主要記錄資料庫變化的日誌。資料恢復,主從複製中應用 檢視再...

mysql部落格日誌 MySQL日誌

日誌檔案對於任何應用程式都是非常重要的,許多操作都需要記錄到日誌,然後可以利用日誌檔案查錯糾錯等。mysql中當然也有日誌,mysql的日誌大概分為五種,即錯誤日誌 查詢日誌 慢查詢日誌 二進位制日誌和事務日誌。檢視日誌相關的全域性變數。查詢日誌相關全域性變數 show global variabl...

mysql 日誌過期時間 mysql日誌

1.錯誤日誌是mysql中最只要的日誌,記錄了當mysqld啟動和停止時,以及伺服器在執行過程中發生任何嚴重錯誤時的相關資訊.當資料庫出現任何故障導致無法使用時,可以首先檢視此日誌 在my.cnf配置檔案中可以看出來錯誤日誌的位置 2.二進位制日誌記錄了所有的ddl 資料定義語言 語句和dml 資料...