乐趣区

Mysql日志文件

MySql 参数

参数分为:

  • 动态参数   r只读
  • 动静参数   rw读 / 写

SET 应用:SET [global|session] sys_var_name = val;
SELECT 应用:SELECT [@@global|@@session|@@] sys_var_name;

日志文件

  • 常见日志文件:

    • error log(谬误日志)
    • binlog(二进制日志)
    • slow query log(慢查问日志)
    • log(查问日志)
    • undo log(回滚日志)
    • redo log(重做日志)存储引擎文件
  • error log

    在 mysql 启动、运行、敞开时进行记录,不仅仅蕴含错误信息,还蕴含正告和其余正确的信息。命令为:show VARIABLES LIKE 'log_error'

  • binlog

    binlog(二进制日志)只记录了 所有更改 (update,insert,delete,create,drop,alert) 操作,不包含 select,show 这类查问操作。即便更改操作未扭转数据库时,仍会记录在内。如:UPDATE t SET a=1 WHERE a=2;
    用处:

    • 复原(recovery)
    • 主从复制 (replication):使得主从 mysql 数据库实现 同步
    • 审计(audit):判断是否有注入攻打,晋升安全性。

binlog 相干参数:

  • max_binlog_size   单个 binlog 文件大小
  • binlog_cache_size   缓冲大小
  • sync_binlog   每几次缓冲刷回磁盘,默认为 0
  • binlog-do-db  写入哪些库的 binlog, 默认为空,即写入所有库的 binlog
  • binlog-ignore-db  疏忽哪些库的 binlog, 默认为空,即写入所有库的 binlog
  • log-slave-update  默认 false, 即本人作为 slave 端时,不会写入从 master 传过来的 binlog 到本人的 binlog。 m->s->s 架构必须配置该参数,否则两头就断了。
  • bilog_format  binlog 的记录格局, 协调不同数据库的 不同事物隔离级别 之间复制,保证数据一致性,可选值[statement|row|mixed]

    • statement:记录的是逻辑 SQL 语句
    • row:记录 的更改状况
    • mixed:默认以 statement,某些状况会采纳 row。应用 row 状况包含:

      • uuid()等不确定函数
      • insert delay
      • 应用了用户自定义函数(UDF)
      • 应用了长期表(temporary table)
    row 的开销会比 statement 大很多

文末补充了 MYSQL 实现主从复制的相干文章(他人写的)。

  • slow log

    用于定位查问慢的 SQL 语句,mysql 默认不启动慢日志 ,开启参数 log_slow_queries,默认阈值为 10 秒,可通过参数long_query_time 设置

  • undo log

    作用:为保障事务原子性(Atomicity),在事务失败时,进行 rollback。
    原理:在 begain/start transaction 前进行备份。

  • redo log

    实例失败时,如:掉电,mysql 存储引擎会应用 redo log 复原到掉电时刻。

Mysql 主从复制相干文章(他人写的):Mysql 主从复制,主主复制

后续我也会本人补一篇对于 binlog 主从复制的应用。

退出移动版