【mysql】binlog、redo log、undo log

Binlog是逻辑日志,记录了所有改变数据的SQL语句。

STATMENT模式:记录SQL语句。
适用于小数据量,但功能可能不一致。

ROW模式:记录对数据行的更改。
适合大数据量,但日志量大。

MIXED模式:作为混合模式,默认选择STATMENT,特殊操作使用ROW。

主从复制:
Master写入binlog。

从机IO进程读取binlog并写入relaylog。

从属SQL进程运行Relaylog。
Binlog 不记录 SELECT/SHOW。
MySQL 8 可以加密binlog。
InnoDB仅在事务提交后才写入binlog。
二进制日志在过期后会在可配置的天数内自动删除。

Redolog是保证事务持久性的物理日志。

内存缓冲区+磁盘文件。

WAL技术:先写日志,再写到磁盘。

写于:
0:写入延迟,最多丢失 1 秒的数据。

1 :实时写入+磁盘刷写,IO不好。

2 :实时书写+每秒闪烁。

重新启动需要更少的磁盘刷新,恢复速度更快。
记录数据页更改并以固定大小的周期写入它们。
由于物理变化,必须在启动时执行恢复。

Undolog是保证事务原子性的逻辑日志。
记录反向操作以进行回滚。
MVCC实现的核心。
UPDATE 有一个计数器 UPDATE 记录。

自己掂量一下。

oracle日志有哪些

Oracle 日志文件有五种类型。

1 .警报日志(AlertLog)。
记录启动、关闭、错误、配置更改。
路径:由bg_dump_dest参数指定。
文件名:警告_.log。
主要故障排除设施。

2 跟踪日志。
记录详细的会话活动和后台进程。
SQL 计划、等待事件、锁冲突。
路径:由user_dump_dest参数指定。
占用大量磁盘空间。

3 审核日志(审核日志)。
记录与安全相关的事件。
登录、更改权限、DDL/DML 操作。
路径:由audit_file_dest参数指定。
合规审查课程。

4 重做日志。
记录数据变更活动。
用于崩溃恢复和事务重放。
路径:查询查看v$logfile。
循环写入机制。

5 归档日志(Archive log)。
重做日志历史备份。
在存档模式下自动创建。
路径:由log_archive_dest%参数指定。
用于 PITR、数据泵操作。

不要弄乱日志文件。
定期检查日志空间。

数据库中日志文件与系统日志文件的区别?

等等,昨天我在清理我的旧电脑硬盘时,发现了一份大学数据库课上的实验报告。
当时我们使用的是SQL Server 2 008 R2 ,老师让我们检查数据库日志是否有意外的数据更新。
日志不大,只有几兆字节,但记录了每个事务的开始和结束,以及具体的操作类型和受影响的数据行。
记得我花了很多时间去一一追踪交易点,最后在存储过程执行过程中,参数传递错误,将一个单位的工资改为了double类型。
老师最后评论说读日记就像读侦探小说。
最重要的是要有耐心,不要错过任何线索。
此时我又想,现在云数据库这么流行,日志管理是不是变得更智能了?比如自动分析异常,或者按需压缩存储?

oracle如何查看日志

为了可以镜像 Oracle 数据树,请立即说:
1 日志文件:Unix/Linux 路径 $ORACLE_HOME/diag/rdbms///trac,Windows 路径 %ORACLE_HOME%diag/rdbms// 跟踪。
使用 adrci 工具和命令 showalert -f 实时查看,并使用 showalert -p 进行详细分析。

2 文件跟踪:用户跟踪路径与日志文件相同,历史跟踪路径为$ORACLE_BASE/diag/rdbms///trac。
ALTERSESSION SET tracefile_identifier 创建标识符并生成 SQL 文件。

3 注意:轨道文件占用空间较大,请及时关闭并清理。
信息很多,用关键词或者花时间。
官方文档有详细的规范。