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主从复制的使用。

你可能感兴趣的:(mysql,数据库)