W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
MySQL中的重做日志(Redo Log)和二進(jìn)制日志(Binary Log)是兩種重要的日志系統(tǒng),它們?cè)跀?shù)據(jù)庫(kù)的事務(wù)處理、恢復(fù)和復(fù)制中扮演著關(guān)鍵角色。以下是它們之間的主要區(qū)別:
innodb_log_file_size
(每個(gè)重做日志文件的大小)和innodb_log_files_in_group
(重做日志文件的數(shù)量) 。log_bin
(啟用二進(jìn)制日志并指定日志文件前綴)和expire_logs_days
(設(shè)置二進(jìn)制日志的過(guò)期天數(shù))等 。PURGE BINARY LOGS
命令手動(dòng)刪除 。理解這兩種日志的區(qū)別對(duì)于數(shù)據(jù)庫(kù)的維護(hù)和管理至關(guān)重要,它們共同確保了數(shù)據(jù)庫(kù)的穩(wěn)定性和可靠性。
讓我們通過(guò)示例來(lái)說(shuō)明重做日志(Redo Log)和二進(jìn)制日志(Binary Log)的用法。
假設(shè)我們有一個(gè)MySQL服務(wù)器,配置了InnoDB存儲(chǔ)引擎和二進(jìn)制日志。以下是一些基本的配置參數(shù):
[mysqld]
innodb_log_file_size = 64M
innodb_log_files_in_group = 2
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 7
server_id = 1
START TRANSACTION;
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
UPDATE users SET email = 'john_new@example.com' WHERE username = 'john_doe';
COMMIT;
COMMIT
之前崩潰,InnoDB存儲(chǔ)引擎將在系統(tǒng)重啟時(shí)使用重做日志來(lái)恢復(fù)這些未提交的更改,以保證事務(wù)的持久性。 -- 這將在二進(jìn)制日志中記錄類似如下的事件:
-- # at 123456789
-- ## Update
-- UPDATE users SET email = 'john_new@example.com' WHERE username = 'john_doe';
-- ## Insert
-- INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
-- 在從服務(wù)器上,將執(zhí)行類似以下的命令來(lái)啟動(dòng)復(fù)制過(guò)程:
CHANGE MASTER TO
MASTER_HOST = 'master_server_ip',
MASTER_USER = 'replica_user',
MASTER_PASSWORD = 'replica_password',
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 123;
START SLAVE;
mysqlbinlog
工具解析二進(jìn)制日志文件,并按照日志中的事件順序執(zhí)行,以實(shí)現(xiàn)數(shù)據(jù)的恢復(fù)。 mysqlbinlog --start-datetime="2024-07-01 00:00:00" --stop-datetime="2024-07-02 23:59:59" mysql-bin.000001 | mysql -uroot -p
通過(guò)這些示例,我們可以看到重做日志和二進(jìn)制日志在確保數(shù)據(jù)庫(kù)事務(wù)的持久性、原子性以及在復(fù)制和恢復(fù)過(guò)程中的不同作用。重做日志關(guān)注于事務(wù)的物理數(shù)據(jù)恢復(fù),而二進(jìn)制日志則記錄了邏輯的SQL操作,用于復(fù)制和數(shù)據(jù)恢復(fù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: