事务性引擎依靠事务日志保证ACID (原子性,一致性,隔离性,持久性)
因此事务日志,最主要是保证事务可靠性的
事务日志工作原理:
事务日志的每一行都是一条信息,一般记录事务ID号,用于记录哪个事务产生的ID信息,其次,他影响了哪个库的哪个表,再次他原始数据,和新的数据。一般对于删除表的操作drop table 事务是恢复不了的
与事务日志相关的服务器变量:
使用SHOW GLOBAL VARIABLES LIKE ‘%log%‘; 查看。在mysql上面支持事务的只有InnoDB引擎。因此跟事务日志相关的都是innodb
innodb_flush_log_at_trx_commit :将内存中的日志事件,同步到日志文件中的行为,后面的 1 表示当有事务提交就会往磁盘写一次,并刷新。2表示每次事务提交,但是不执行磁盘刷新(性能最好,但是数据安全难以保障)。 0表示每一秒同步一次,并执行磁盘刷新
innodb_log_buffer_size: 内存缓冲区大小
innodb_log_file_size: 事务日志文件大小
innodb_log_file_in_group: 事务日志组,一般事务日志组文件里面的事务日志有两个
innodb_log_group_home_dir:表示日志组存放数据 ./ 表示数据目录
事务日志组的事务日志一般都叫做 ib_logfile0 ib_logfile1 这就是innodb事务日志文件
innodb_mirrored_log_groups :日志是否做镜像
事务日志应不应该和数据放在同一块磁盘上?
可以放在同一块磁盘,也可以分开存放,建议给事务日志做镜像
事务日志是确保数据安装的重要组件,我们无法手动操作事务日志,是由mysql存储引擎innodb自己操作的