Navicat使用教程(二):使用MySQL日志(第2部分)——二进制日志

下载Navicat for MySQL最新版本

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。使用Navicat for MySQL可以同时连接到 MySQL 和 MariaDB。Navicat for MySQL提供了强大的前端功能,为数据库管理、开发和维护提供了直观的图形界面。对新手和专业人士来说,Navicat for MySQL都是管理和开发 MySQL 或 MariaDB的强大工具。

记录是关于记录数据库中发生的事情。就像有些人可能会保留个人日志来记下他们日常生活中发生的事情一样,数据库日志会跟踪登录和交易等事情。更重要的是,有效日志应包括有关访问控制和输入验证失败的条目。默认情况下启用的唯一MySQL日志是错误日志(至少在Windows上)。

上篇文章讲了MySQL上不同日志类型的概述,突出了其中最重要的一些——即错误日志、常规查询日志、二进制日志和慢速日志,并详细说明了前两个。这篇文章将更详细地介绍二进制日志。下篇文章将讲第三部分的慢速日志。

二进制日志记录的语句

二进制日志存储描述数据库更改的事件,例如,表创建操作或通过INSERT和UPDATE等语句更改表数据。除了使用基于行的日志记录之外,还可以为后代保存可能已进行更改的语句(例如不匹配任何行的DELETE)的事件(有关此内容的更多信息,请参见下文)。因此,二进制日志不包括不修改数据的SELECT或SHOW等语句。这些可以在常规查询日志中找到。

二进制日志有两个重要目的:

  1. 对于复制,主复制服务器上的二进制日志提供要发送到从属服务器的数据更改的记录。实际上,主服务器将其二进制日志中包含的事件发送到其从属服务器,以便它们执行相同的命令,以实现与主服务器上相同的数据更改。
  2. 某些数据恢复操作使用二进制日志。还原备份后,将重新执行与备份相关的二进制日志中的事件,以便将数据库同步到备份发生的位置。

尽管有这些非常重要的用途,但默认情况下禁用二进制日志记录,因为它会稍微降低性能。但是,二进制日志在设置复制和从备份还原时提供的好处通常会超过这种轻微的性能损失。

二进制日志格式

MySQL为二进制日志记录提供了三种日志记录格式,每种格式都有自己的优缺点。与其他日志不同,您无法使用简单的ON / OFF开关启用它。相反,您必须通过使用“--binlog-format = type”启动MySQL服务器来显式选择二进制日志记录格式。每种类型的确切陈述如下所述:

  1. 基于语句

    基于语句的日志记录记录所有对表的数据或结构进行更改的SQL语句。使用--binlog-format = STATEMENT启用。
    某些非确定性语句可能不适合复制。如果MySQL确定是这种情况,它将发出警告“语句可能不安全登录语句格式”。
  2. 基于行

    在基于行的日志记录中,主服务器将事件写入二进制日志,以指示各个表行的影响方式。因此,表必须始终包含主键以确保可以有效地识别行。您可以通过使用--binlog-format = ROW启动它来告诉服务器使用基于行的日志记录。
  3. 混合日志

    扫描二维码关注公众号,回复: 4501048 查看本文章
    第三种选择是混合日志记录。使用此日志记录格式,默认情况下使用基于语句的日志记录,但在某些情况下,日志记录模式会自动切换到基于行。要使用混合日志记录,请使用选项--binlog-format = MIXED启动MySQL。

    Navicat

    图1  -  Navicat Server Monitor工具中的binlog_format服务器变量

猜你喜欢

转载自blog.csdn.net/weixin_43577863/article/details/84999411