MySQL中事务日志和重做日志之间的区别


14

我已经读过关于MySQL的文章。我认为两种日志类型非常相似。MySQL保存在日志中更改数据的方式和时间。信息用于恢复MySQL。我混淆了两种日志类型的功能。

Answers:


18

REDO日志是Oracle术语,事务日志是InnoDB术语。既然都是Oracle工程师,那么人们都可以在MySQL中使用相同的名称

事务日志在默认情况下是可以更改的ib_logfile0,位于$ DATADIR中的两个文件称为和ib_logfile1。它具有与其他数据库中的REDO日志相同的功能-以安全的方式存储写操作并在崩溃的情况下进行恢复,尽管实现中的某些细节与其他RDMS的功能有所不同。它是InnoDB成为事务引擎的主要组件。

不要将事务日志与MySQL中的二进制日志混淆。默认情况下,binlog位于$ DATADIR上,并且*hostname*-bin.index与and *hostname*-bin.00001等。对于来自其他数据库的人来说,这尤其令人困惑,因为它用于其他数据库使用REDO日志的其他事情:复制和时间点复苏。主要区别在于事务日志仅适用于InnoDB,二进制日志(大多数情况下)与事务无关,因为它适用于所有存储引擎(无论是否具有事务性)。MyISAM将写入(如果启用)二进制日志。InnoDB将写入事务日志和二进制日志。

有关手册的更多信息:REDO logbinary log


-2

在SQL Server中,TLog文件存储撤消和重做信息。但是在MYSQL和Oracle中,TLog /重做日志仅存储重做信息。

MySQL中的二进制日志记录是获得时间点恢复的一种方法。启用二进制日志记录等效于在SQL Server中具有完整的恢复模型。


1
您可能应该明确指出,Oracle仍然存储撤消,尽管是分开存储的。
Philᵀᴹ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.