二進位制日誌:(多個執行緒會爭用,可以首先寫到緩衝區中)
記錄了當前伺服器的資料修改和有潛在可能性影響資料修改的語句
預設在資料目錄下,通常情況下為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 資料...