大厂基本功 | MySQL 三大日志 ( binlog、redo log 和 undo log ) 的作用?

MySQL日记主要分为错误日记,查询日志,慢查询日志,交易日记,二进制日记等。
其中,Binlog Diary(Binlog),Redogolog(Redogolog)以及特别重要的恢复日记。
本文将深入了解重建,binlog,对两个相和完整的承诺的功能和机制。
ReDogolog是InnoDB存储工具的独家日记,提供了从事件中恢复的MySQL。
当MySQL版本有缺陷或关闭电源时,InnoDB存储工具可以使用REDOLOG恢复数据以确保数据的可持续性和完整性。
数据存储在页面单元中。
查询记录时,将数据页从硬盘下载到BufferPool,以减少硬盘的I/O活动并提高性能。
更新数据时,它是直接在BufferPool中制成的,并且修订后的内容记录在Redolog Buffer中,然后转移到Redogolog文件中。
重新传递时间由参数Innodb_flush_log_at_trx_commit控制。
该参数的默认值为1,这意味着在发送事务时将立即删除光盘。
此外,背景将每秒删除ReDopol Cushion内容中的文件缓冲区。
当Redogolog的缓冲区用途接近上限时,背景还将积极删除光盘。
不同的磁盘扫描策略会影响数据丢失的风险。
有关特定的战略流程,请参阅相关配置。
重复文件以日记文件组的形式存在。
每个组都包含许多同一文件大小的日记文件。
使用圆形阵列存储日记记录,记录记录,测试分数记录下载的边界以及两个记录之间的距离可用于新的记录。
当写入Pos赶上测试时,日记已满并记录下来的记录以继续写作。
作为逻辑日记,Binlog记录了该语句的原始逻辑,例如“在ID = 2的字段C中添加1个”,与Redolog记录的物理变化不同。
当在诸如数据备份和所有者同步之类的情况下进行交易并使用以确保数据的一致性等情况时,编写了Binlog。
有三种Binlog格式:命令,商品和混合。
数据记录的格式详细的操作数据,语句格式仅记录SQL语句和混合格式结合两者的优势。
BINLOG记录机制和驱动器删除过程由Sync_binlog参数控制,可以将此参数放在不同的值中以平衡性能和数据安全性。
两阶相承诺是确保重新学和BINLOG之间逻辑一致性的重要机制。
在交易过程中,ReDolog记录了变化的准备阶段,并在承诺阶段记录了Binlog。
如果在BINLOG记录期间发生异常,MySQL将通过重新记录和还原确定交易状态,以避免数据不一致。
相反,如果工作是不寻常的重复学,但Binlog记录了一项完整的交易,MySQL仍将发送交易以确保数据完整性。
Undog是实现交易原子的关键,用于恢复已实施的操作并确保数据库状态的一致性。
当发生异常时,数据库将通过查询在交易之前恢复到状态。
此外,将UNDOLION与MVCC机制(同时控制了许多版本)结合使用,以通过隐藏的字段,ReadView和Undogs来管理数据行的可见性。
简而言之,MySqlinODB工具可确保通过Redogolog的交易的耐用性,保证交易和BINLOG的原子来同步和备份数据,共同构建数据管理功能,共同构建MySQL的效率和可靠性。

mysql中的日志有什么作用?

MySQL数据库的三大日志分别是Binlog、Redology和Undolog,它们在数据库管理中发挥着关键作用。
下面将详细介绍这些日志的作用和用途。

1.binlog

Binlog是数据库表结构和表数据变化的详细信息。
它记录了Insert、Update、DELETE、Create、Truncate等所有操作,但不包括SELECT和Show操作,因为这些操作不会改变数据本身。

通过使用MySQLBINLOG命令,可以查看binlog文件的详细信息,包括SQL语句的变化、执行时间、事务ID等。
要检查binlog是否开启,可以使用 `Showvariableslike '%Log_bin%'` 命令。
如果没有开启,需要修改My.CNF配置文件增加`log_bin = your_log_path`,重启​​mysql,然后使用`ShowmasterStatus`查看当前Binlog文件名。

Binlog的主要用途: 一、实现主从复制。
当Master节点开启Binlog时,可以订阅从机的Binlog信息,以同步Master的数据变化; 另一种是用它来进行数据恢复。
指定特定的binlog文件和位置,可以恢复某个时间点的数据。

2.Redolog

Redology用于解决数据持久化过程中的问题。
当数据发生改变时,MySQL将数据加载到内存中进行修改,并将修改后的记录写入Redologbuffer,然后写入RedologFile。
即使数据发生变化后数据库宕机,Redology仍然可以提供数据恢复能力,因为Redolog记录了内存数据变化的状态,保证了数据的持久性。

Redology与事务机制紧密配合,保证数据变更和事务状态的一致性。
当事务提交时,Redology状态从Prepare变为Commit,以保证数据的正确性和一致性。

3. Undolog

UNDOLOG 主要用于事务的滚动。
它记录了数据修改前的版本。
当需要回滚事务时,可以返回到修改前的数据。
UNDOLOG还支持多版本控制(MVCC)。
在事务提交之前,可以基于UNDOLOG提供旧版本的数据,以满足不同隔离级别的需求。

总结

综上所述,Mysql数据库管理中的Binlog、Redology和Undolog分别承担着丛主、数据恢复、事务回滚的重要职责。
通过了解和使用这三种日志,可以提高数据库的可靠性和性能。
在实际应用中,确保正确配置并使用这些日志可以有效提高数据管理的效率和安全性。

MySQL中重做日志,回滚日志,以及二进制日志的简单总结

MySQL日志文件总结 MySQL中有六种类型的日志文件,包括重做日志、回滚日志、二进制日志、错误日志、慢查询日志和普通查询日志。
其中,重做寄存器、回滚寄存器、二进制寄存器与事务操作密切相关,对于理解事务操作至关重要。
重做日志(redologs)确保事务的持久性并防止数据丢失。
记录物理数据页修改信息并顺序写入文件。
redolog是在事务启动后生成的,即使事务没有提交,redolog也会被写入到文件中,为重启时的redo操作做准备。
默认文件位置是数据库数据目录中的 ib_logfile1 和 ib_logfile2。
文件数量由innodb_log_files_in_group参数决定,默认值为2。
文件大小由innodb_log_file_size参数配置,日志镜像文件组数量默认为1。
innodb_log_buffer提供缓冲区来逐步写入日志文件事务执行期间的重做日志文件 MasterThread 线程会定期将缓冲区刷新到文件,而不是等待事务提交。
回滚日志(undolog)保存事务执行前的数据版本,用于事务回滚和并发控制。
以逻辑格式记录事务信息 与redolog不同,undo操作只是逻辑上恢复数据状态,并不直接修改物理数据页。
undo log在事务开始前生成,并放置在链表中,在事务提交后进行清理。
删除线程决定是否可以清理。
默认情况下,undo log 存储在共享表空间的回滚段中,即 ibdata。
当数据库执行大量事务操作时,共享表空间可能会变得非常大,而默认情况下不支持自动收缩。
为了解决这个问题,MySQL 5.7引入了独立的undo表空间配置。
二进制日志(binlog)用于主从复制和时间点数据库恢复。
以逻辑格式记录SQL语句,包括增、删、改及其逆操作的执行情况。
在复制场景中,从库通过重放主库的binlog来实现同步。
Binlog在事务提交时立即记录所有相关的SQL语句。
与重做日志不同,二进制日志是在事务提交时写入的,而不是在事务启动后立即写入。
默认情况下,binlog 文件在达到最大大小后会重置,并且通过 expire_logs_days 参数自动删除不活动的日志文件。
综上所述,MySQL中重做日志、回滚日志和二进制日志分别用于事务持久化、并发控制以及数据复制和恢复。
了解这些寄存器的特点和作用,将有助于你充分理解MySQL中的事务机制。

mysql日志文件详解

MySQL数据库中的日志文件主要分为三种类型:Binlog Logs、Redo Logs、Undo Logs。
其中,Binlog日志作为MySQL最顶层产生的日志逻辑日志,记录了MySQL数据库执行的所有操作,除了Select和Show操作,主要适用于数据恢复、复制和审计。
binlog日志的配置参数包括“max_binlog_size”、“binlog_cache_size”、“sync_binlog”和“binlog_format”。
“max_binlog_size”指定单个日志文件的最大值,达到该值后将创建新文件,“binlog_cache_size”是二进制缓冲区大小并影响性能。
在InnoDB存储引擎中,日志主要分为redo日志和undo日志。
REDO日志以物理格式记录每个页面的修改,包括内存中的重做缓冲区和日志文件,以实现事务持久性。
参数 `innodb_flush_log_at_trx_commit` 控制日志刷新策略,包括事务提交时的刷新、文件系统缓存的刷新 控制日志刷新策略。
REDO日志基于512字节的LSN(日志序列号),形成一组重复日志,指示总日志、检查点位置和页面版本。
InnoDB 在检查点之后尝试恢复 LSN 中的数据。
undo log用于恢复数据库共享表空间中存储的事务,实现MVCC。
每个回滚段记录1024个Undologsegment,由RollbackSegment文件、编号和文件号组成。
当提交事务时,Undolog 将其放入链表中,等待清除操作最终将其删除。
重做和撤消日志发生在事务期间,需要持续保护。
InnoDB在事务期间以链表形式呈现错误,并确定撤消页是否可以在下一个事务中重用。
purge线程最终完成更新并删除任务。