翻译人员: 铁锚

翻译时间: 2013年12月25日

原文地址: Activating the Binary Log

参考了: 《高可用MySQL 构建健壮的数据中心》



要启用二进制日志功能,可以使用 "--log-bin[=name]"选项来启动服务器.

如果文件名中包含了后缀(例如 "--log-bin[=master-bin.log]"),则后缀(".log")将会被忽略.

如果没有指定文件名,默认使用 datadir/log-basename-bin, datadir/mysql-bin 或者 datadir/mariadb-bin(如果也没有 --log-basename
选项,根据server版本的不同,会使用后两个中的一个); 

datadir 是存放数据(data)的目录,由系统变量 datadir 定义.(启动参数 --datadir=path 或者
-h path);

强烈建议: 使用  --log-basename  或者指定二进制日志的文件名,以便服务器的hostname改变以后也不影响复制(replication );

存储二进制日志的目录,用于存放 各个独立的二进制日志文件,以及对这些文件的二进制日志索引(文件).

二进制日志文件的扩展名是一序列的数字.每增加一个日志文件,扩展名的数字就会增加;所以较老的日志的扩展名数字较小,最近的日志的扩展名数字最大。

每次服务器启动,就会启用一个新的二进制日志,当然扩展名也是新的;启动或停止时日志会被强制写入物理文件(平时可能存储在内存缓存中,由操作系统决定何时写入).也可以通过定义
max_binlog_size 变量来指定一个数字,当日志累增到此值就会强制写入硬盘.

二进制日志索引文件按顺序储存着所有的二进制日志文件的索引.

datadir下的文件列表示例如下:

shell> ls -l
total 100
...
-rw-rw---- 1 mysql adm 2098 Apr 19 00:46 mariadb-bin.000079
-rw-rw---- 1 mysql adm  332 Apr 19 00:56 mariadb-bin.000080
-rw-rw---- 1 mysql adm  347 Apr 19 07:36 mariadb-bin.000081
-rw-rw---- 1 mysql adm  306 Apr 20 07:15 mariadb-bin.000082
-rw-rw---- 1 mysql adm  332 Apr 20 07:41 mariadb-bin.000083
-rw-rw---- 1 mysql adm  373 Apr 21 07:56 mariadb-bin.000084
-rw-rw---- 1 mysql adm  347 Apr 21 09:09 mariadb-bin.000085
-rw-rw---- 1 mysql adm  398 Apr 21 21:24 mariadb-bin.000086
-rw-rw---- 1 mysql adm  816 Apr 21 17:05 mariadb-bin.index

二进制日志index文件的名字部分默认与其他的二进制日志文件相同,而扩展名使用".index",当然,index文件的名字也可以通过"
--log-bin-index[=filename] " 选项来单独指定.

具有 SUPER 权限的客户端,可以通过设置 sql_log_bin 变量,来为此次会话禁用或者再次启用二进制日志;

(sql_log_bin 是一个session变量,默认值是1,只有具有 SUPER 权限的客户端可以设置;设置为 0 则此客户端的的操作将不记入二进制日志;)

示例如下:

MariaDB [test]> SET sql_log_bin = 0;

MariaDB [test]> SET sql_log_bin = 1;

二进制日志的格式

二进制日志有三种格式:

默认是 基于语句的日志(statement-based);

row-based是基于行的日志;

mix是可以混合前面两种日志的格式;

详情请参考: Binary Log Formats

MariaDB服务器所有的配置选项参见: mysqld Options (full list)

MariaDB服务器系统变量参见: Server System Variables

2. MariaDB激活二进制日志的更多相关文章

  1. MySQL和Mariadb二进制日志binlog详解

    Mariadb/mysql提供了4中不同的日志,分别是错误日志(error.log).普通日志(general log).慢日志(slow log)以及二进制日志(binlog).错误日志记录了系统启 ...

  2. mysql错误日志/var/log/mariadb/mariadb.log,二进制日志

    mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03   mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...

  3. 浅析MySQL基于ROW格式的二进制日志

    上文分析的二进制日志实际上是基于STATEMENT格式的,下面我们来看看基于ROW格式的二进制日志,毕竟,两者对应的binlog事件类型也不一样,同时,很多童鞋反映基于ROW格式的二进制日志无法查到原 ...

  4. 浅析MySQL二进制日志

    查看MySQL二进制文件中的内容有两种方式 1.  mysqlbinlog 2.  SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offs ...

  5. MySQL二进制日志格式对复制的影响

    复制的分类 基于SQL语句的复制 - SBR 主库二进制日志格式使用STATEMENT 在MySQL 5.1之前仅存在SBR模式, 又称之为逻辑复制. 主库记录CUD操作的SQL语句, 从库会读取并重 ...

  6. MariaDB 备份与日志管理(13)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...

  7. mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)

    日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 ,事务日志. 修改配置或者想要使配置永久生效需将内容写入配置文 ...

  8. 如何开启MySQL 5.7.12 的二进制日志

    1. 打开/etc下的my.cnf文件 2. 编辑它,添加内容: log_bin=binary-log   #二进制日志的文件名 server_id=1  #必须指定server_id,这是MySQL ...

  9. MySQL二进制日志

    一.二进制日志(The Binary Log) 1.简介 包含所有更新了的数据或者已经潜在更新了的数据(比如一条没有匹配任何行的delete语句) 包含所有更新语句执行时间的信息 不记录没有修改数据的 ...

随机推荐

  1. PHP MySQL 简介

    PHP MySQL 简介 通过 PHP,您可以连接和操作数据库. MySQL 是跟 PHP 配套使用的最流行的开源数据库系统. 如果想学习更多 MySQL 知识可以查看本站MySQL 教程. MySQ ...

  2. “ML学分计划”说明书

    计划的由来 我们是一群对机器学习感兴趣的小伙伴,对于神奇的机器学习经常有"一探究竟"的冲动,却因为孤身一人学习的寂寞.亦或繁忙考试工作之余的小小拖延症,而没有持续这份对知识的渴求和 ...

  3. pyinstaller 工具起步

    准备 依赖 pyinstaller下载 语法 核心命令 可选项 实战 md2htmlpy 使用pyinstaller 其他测试 -D选项 --icon选项 遇到错误怎么办 总结 继上次的那个Pytho ...

  4. 重温java基础

    Java标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都被称为标识符. 关于Java标识符,有以下几点需要注意: 所有的标识符都应该以字母(A-Z或者a-z),美元符($).或者下划 ...

  5. Swift类型推测在可选调用中的小提示

    我们知道Swift中协议里也有对应于Objc中的可选方法或计算属性,当然协议必须以@objc伪指令修饰否则不可以哦. 如下示例: @objc protocol Transaction{ fun com ...

  6. Windows编译ejabberd

    Windows编译ejabberd(金庆的专栏)安装 erlang OTP. 添加路径到 PATH, 使 erl 可以运行.git clone ejabberd安装 rebar:git clone g ...

  7. [Python] 图像简单处理(PIL or Pillow)

    前几天弄了下django的图片上传,上传之后还需要做些简单的处理,python中PIL模块就是专门用来做这个事情的. 于是照葫芦画瓢做了几个常用图片操作,在这里记录下,以便备用. 这里有个字体文件,大 ...

  8. ISP(Interface Segregation Principle),接口隔离原则

    ISP(Interface Segregation Principle),接口隔离原则 它要求如下: ①  一个类对另一个类的依赖性要建立在最小接口上. ②  使用多个专门的接口比使用单一的总接口要好 ...

  9. SQL 数据库语言分析总结(二)

    介绍sql语言 我们接着一的顺序继续介绍这个语言 数据类型 整形: TINYINT(8位) SMALLINT(16位) MEDIUMINT(24位) INT(32位) BIGINT(64位) 实数: ...

  10. lager_transform未定义错误

    lager_transform未定义错误rebar编译时报错:D:\server\six>d:/tools/rebar/rebar.cmd compile==> mysql (compil ...