笔记@MySQL——————二进制日志,事务日志

事务日志:存放对数据库的更改的信息,包括没提交的

二进制日志:存放对数据库更改的信息,仅仅是提交了的信息

所以事务日志先更新,二进制日志后更新,

二进制日志可用于还原数据库,还原提交的日志信息,

二进制日志记录的是SQL语句,每一条日志都有标记,

二进制日志记录格式分三种:

    基于‘语句’记录:statement  ,记录语句,默认模式

    基于‘行’记录:row  ,记录数据,日志量较大(前提)

    混合模式:mixed,让系统自行判断该基于那种方式,

配置记录格式:

    show   variables   like  '%binlog_format%';  

二进制日志构成:

    两种

        日志文件:myslq|mariadb-bin.文件名后缀,二进制格式

                        比如:myslq-bin.000001

        索引文件:myslq|mariadb-bin.index   ,文本格式

启用二进制日志的变量:决定因素有两个,两个只要有一个没启用就不行,

sql_log_bin:默认是启用的(1),是否启用二进制日志,global/sa

log_bin=/PATH/BIN_LOG_FILE:默认是不启用off,要启用在配置文件里/etc/my.cnf添加log_bin=放二进制日志的路径

者两个文件变量必须都启动才能生成二进制日志

用watch   -n  1   ls   -l   +放二进制日志的路径   ;可以跟随查看二进制日志文件变化的信息,

如果想临时不想记录二进制日志了把,sql_log_bin=off就可以

操作二进制日志

>show   master   logs;   查看二进制日志列表

>show    binary   logs;      查看二进制日志列表

>show    master   status;   二进制日志写到多少了(写到什么位置了)

在客户端命令行查看二进制文件:mysqlbinlog

命令格式:

mysqlbinlog     [options]  log_file...

--start-position=#    指定开始位置

--stop-position=#  

--start-datetime=

--stop-datetime=

        (时间格式:YYYY-MM-DD    hh:mm:ss)

--base64-output[=name]

示例:

mysqlbinlog --start-position=6787 --stop-position=7527  /var/lib/mysql/mariadb-bin.000003

mysqlbinlog --start-datetime="2018-01-30 20:30:10" --stop-datetime="2018-01-30 20:35:22" mariadb-bin.000003

刷新二进制日志:flush   logs

>flush  logs;             新生成一个日志,

清除二进制日志:

purge  {binary|master}   logs  {to ‘log_name’|pefore  datetime_expr}

示例:

PURGE BINARY LOGS TO ‘mariadb-bin.000003’;删除3前日志

不包含03这个日志,只生成03前面的日志


猜你喜欢

转载自blog.csdn.net/lhl98765432/article/details/80709205