Files
Hui-s-notebook/logseq-java/pages/MySQL日志.md
2024-02-02 00:12:49 +08:00

1.8 KiB
Raw Blame History

  • 错误日志error log
  • 慢查询日志slow query log
    • 默认10s
    • 手动开启
    • 支持将日志写入文件
  • 一般查询日志generallog
  • 重写日志redolog
    • 基于磁盘的数据结构,用来宕机时恢复不完整的数据
    • 用于恢复更新了内存但是还没有刷入硬盘的数据
  • 回滚日志undolog
    • 回滚到某一版本,是一种逻辑数据
    • 记录修改之前的数据delete对应一条insert数据
    • 提供mvcc下的读取
  • 二进制日志binlog
    • 记录增删改时的sql当前时间系统相关记录的日志修改了内容就会产生一条bin log
    • 进行主从复制,数据库的恢复
  • 是否实时写入磁盘
    • binlog
      • sync_binlog
      • 0,写入页缓存,操作系统决定刷盘,有丢失日志风险
      • 1每次提交事务都写入磁盘
      • NN个事务后写入磁盘
    • redolog
    • undolog
    • innodb_flush_log_at_trx_commit
      • 0每秒写入磁盘
      • 1每次提交调用fsync刷新IO缓存
      • 2每次都把redolog写入page cache由系统接管什么时候写入磁盘
  • 时机顺序
    • DOING 补充笔记 :LOGBOOK: CLOCK: [2023-10-10 Tue 17:58:30] CLOCK: [2023-10-10 Tue 17:58:34] CLOCK: [2023-10-10 Tue 17:58:34] :END:
  • redolog和binlog的两阶段提交
  • binlog有几种录入格式
    • statement
      • 不记录数据变更只记录sql语句和每一行数据变化
    • row
      • 不记录sql语句上下文信息记录数据被修改修改成什么样
    • mixed
      • 有函数用row没函数用statement无法识别系统变量
  • 集群同步为什么使用binglog
    • binglog是mysql提供的日志所有存储引擎都可以使用
    • 支持增量同步
    • 可以供其他中间件读取hdfs
    • 复制表数据
      • 不支持某个阶段回放
      • 复制过程中断很难确定复制的offset