什么是 MySQL 刪除數(shù)據(jù)的日志?
MySQL 刪除數(shù)據(jù)的日志是指在執(zhí)行刪除數(shù)據(jù)操作時(shí)所產(chǎn)生的記錄,它可以用于數(shù)據(jù)恢復(fù)、性能優(yōu)化和安全審計(jì)等方面。MySQL 刪除數(shù)據(jù)的日志有兩種類型:binlog(二進(jìn)制日志)和redo log(重做日志)。
什么是 binlog?
binlog(二進(jìn)制日志)是 MySQL 生成的記錄 MySQL 服務(wù)器中所執(zhí)行的 SQL 語句的二進(jìn)制格式的日志文件。binlog 文件通常用于數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)以及主從復(fù)制等功能。當(dāng)我們開啟 binlog 選項(xiàng)時(shí),會記錄每個(gè)會話執(zhí)行的所有 SQL 語句,包括刪除操作。但是,binlog 中記錄操作的時(shí)間可能與操作實(shí)際執(zhí)行的時(shí)間不一致。
什么是 redo log?
redo log(重做日志)是 MySQL 中一種記錄修改操作在未提交時(shí)所產(chǎn)生的日志,目的是為了保證事務(wù)在系統(tǒng)奔潰后能夠恢復(fù)。redo log 記錄了 MySQL 在 InnoDB 存儲引擎層級的更改操作,包括刪除操作。因?yàn)?redo log 是 InnoDB 存儲引擎的一個(gè)特有功能,所以它只適用于 InnoDB 存儲引擎。
如何開啟 MySQL 刪除數(shù)據(jù)的日志?
為了記錄 MySQL 中的刪除操作,我們需要開啟 binlog 選項(xiàng)。可以在 MySQL 配置文件中添加以下內(nèi)容:
log-bin=/var/log/mysql/mysql-bin.log
binlog-ignore-db=mysql
log-bin 指定 binlog 文件的名稱和路徑,而 binlog-ignore-db 則是為了避免記錄 MySQL 內(nèi)部操作所指定的數(shù)據(jù)庫名稱。
如何查看 MySQL 刪除數(shù)據(jù)的日志?
可以通過以下命令查看 binlog 文件:
mysqlbinlog /var/log/mysql/mysql-bin.log
這個(gè)命令會解析并顯示 binlog 的記錄內(nèi)容。