文档首页/ 云数据库 GaussDB(for MySQL)/ 常见问题/ 日志管理/ GaussDB(for MySQL)服务如何开启并查看Binlog文件?
更新时间:2024-09-05 GMT+08:00

GaussDB(for MySQL)服务如何开启并查看Binlog文件?

本章节介绍开启Binlog、查看Binlog的方法,以及开启Binlog后对GaussDB(for MySQL)的性能影响。

开启Binlog

GaussDB(for MySQL)不支持只读节点开启Binlog。

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 GaussDB(for MySQL)
  4. 选中要开启Binlog的实例,单击实例名称,进入实例详情界面。
  5. 在实例详情界面,单击参数修改,跳转到参数界面。
  6. 按照如下条件设置日志参数。

    • 当内核版本小于2.0.45.230900时,搜索“log-bin”参数,在值列下拉框中选择“ON”,单击保存。该参数修改完成后,需要重启实例才可生效。
      内核版本可以在实例基本信息页面,实例信息 > 内核版本处进行查看。
      图1 查看内核版本

    • 当内核版本大于或等于2.0.45.230900时,搜索“rds_global_sql_log_bin”参数,在值列下拉框中选择“ON”,单击保存。该参数修改后,立即生效,不需要重启实例。

      通过该方式开启Binlog后,需要连接数据库执行如下命令,确认是否所有线程均已成功开启Binlog。

      select @@session.rds_sql_log_bin_inconsistent_count;

      • 查询结果为0时,代表所有线程均已成功开启Binlog,所有需要记录Binlog的语句都会被记录到Binlog中。
      • 查询结果不为0时,可以继续执行如下命令,查看尚未成功开启Binlog的线程ID。

        show warnings;

        图2 查询未成功开启Binlog的线程ID

        这些查询到的线程ID中执行的语句可能暂时未能被记录到Binlog中。

        您可以根据获取到的线程ID(例如:图2“53”)排查自身业务,根据业务需要及时提交或回滚事务并执行新事务(例如:SELECT 1;),或者对于空闲连接进行断开重连操作。

查看Binlog文件

  1. 参考连接实例,连接数据库实例。
  2. 执行以下SHOW BINLOG命令可以直接读取Binlog日志。

    SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

    如果提示账号权限不足,请使用root账号登录查询。

开启Binlog对GaussDB(for MySQL)的性能影响

性能损耗和业务压力强相关,开启Binlog不会影响查询(SELECT)性能,只会影响写入更新(如INSERT、UPDATE、DELETE等)性能。

GaussDB(for MySQL)服务的Binlog和开源的MySQL-Binlog两者从使用方法上来说无明显差异,GaussDB(for MySQL)服务的Binlog完全兼容开源MySQL的Binlog相关语法。