当前位置: 首页 > article >正文

MySQL 二进制和中继日志管理

目录

  • 一: 二进制日志管理
    • 1. 配置二进制日志
    • 2. 二进制日志的格式
    • 3. 二进制日志管理命令
    • 4. 临时禁用二进制日志
  • 二:中继日志管理
    • 1. 重置中继日志
    • 2. 重置中继日志并清空连接信息

一: 二进制日志管理

1. 配置二进制日志

  • log_bin :指定二进制日志的文件名,使用这个选项的时候就开启了二进制日志

  • expire_logs_days:设置二进制日志文件的自动过期天数。过了这个期限,旧的日志文件会被自动删除。

  • max_binlog_size:指定单个二进制日志文件的最大大小。达到这个大小后,MySQL 会关闭当前日志文件,并创建一个新的日志文件。

  • binlog_do_db:指定只有哪些数据库的更改会被记录在二进制日志中。

  • binlog_ignore_db:指定哪些数据库的更改不应该被记录在二进制日志中。

  • skip-log-bin:用于完全禁用二进制日志,配置了这个选项,会覆盖 log_bin 的设置,导致二进制日志不会被启用。

说明:MYSQL5.7只设置了全局系统变量log_bin,没有设置全局系统变量server_id的话,那么MySQL启动不了,而且错误日志没有任何错误信息。

例如:

log_bin              = /var/log/mysql/mysql-bin.log
expire_logs_days     = 14
max_binlog_size      = 256M
binlog-do-db         = position_ehcommon
binlog-do-db         = iot
binlog-do-db         = map

2. 二进制日志的格式

  • 基于语句复制(SBR):记录执行的SQL语句,日志文件较小,但是某些情况下可能导致数据不一致。例如使用NOW()、RAND())或用户自定义函数的时候

  • 基于行级复制(RBR):记录对每一行数据进行的更改,日志文件较大,能确保数据的一致性,不受SQL语句的具体形式影响

  • 混合模式复制(MBR):默认模式,MySQL自动选择使用哪种格式。通常对于简单的操作使用SBR,而对于可能导致数据不一致的操作使用RBR。

指定二进制日志格式:

  • binlog_format=STATEMENT|ROW|MIXED

3. 二进制日志管理命令

  • RESET MASTER :用于重置主服务器上的二进制日志。执行 RESET MASTER 会删除所有的二进制日志文件,并重新创建一个新的二进制日志文件。

  • FLUSH LOGS:关闭并重新打开所有日志文件(包括二进制日志、错误日志等),不会删除现有的二进制日志,会创建新的二进制日志文件

  • SHOW MASTER STATUS:显示的是当前主服务器的二进制日志信息,包括当前正在使用的二进制日志文件名和位置(Position)。

  • SHOW BINARY LOGS:列出了MySQL服务器上所有的二进制日志文件。提供了每个日志文件的名称和大小。

  • SHOW MASTER LOGS:SHOW BINARY LOGS的一个别名,两者提供相同的功能和输出

4. 临时禁用二进制日志

可以通过 sql_log_bin 变量来启用或禁用当前会话的二进制日志记录

  • SET sql_log_bin = 0;(禁用)

  • SET sql_log_bin = 1;(启用)

二:中继日志管理

MySQL 主从复制时,中继日志(relay log)默认是开启并自动管理的,不需要额外配置

1. 重置中继日志

# 清除中继日志并重置复制状态,但不会清除使用CHANGE MASTER TO命令设置的主服务器连接信息
RESET SLAVE;
  • 清除中继日志(relay logs)。

  • 清除从服务器的复制状态。

  • 不会清除主服务器连接信息(如主服务器的地址、用户名、密码等)

2. 重置中继日志并清空连接信息

# MySQL 5.7.7之后的版本

RESET SLAVE ALL
  • 清除中继日志(relay logs)。

  • 清除从服务器的复制状态。

  • 清除CHANGE MASTER TO命令设置的所有主服务器连接信息(包括主服务器地址、用户名、密码等)。


http://www.kler.cn/news/366429.html

相关文章:

  • 【Java】java 集合框架(详解)
  • 大一物联网要不要转专业,转不了该怎么办?
  • 多厂商的实现不同vlan间通信
  • mfc之tab标签控件的使用--附TabSheet源码
  • AnaTraf | 全面掌握网络健康状态:全流量的分布式网络性能监测系统
  • 利用客户端导入有关联的业务数据(DBeaver+sql)
  • STM32L031F6P6开发环境搭建
  • 隨筆 20241023 Kafka 的幂等性与分区顺序性探讨
  • excel斜线表头
  • python爬虫:实例讲解xpatch的基本使用
  • 人工智能在自然语言处理(NLP)中的应用
  • Redis面试题扩展
  • .NET Core WebApi第2讲:前后端分离,Restful
  • unity URP下VolumetricFog插件发布的时候安卓里没有显示问题
  • C++二级2021年9月试卷及答案
  • Python——脚本实现datax全量同步mysql到hive
  • (北京政务服务满意度公司)满意度调查助力服务质量提升
  • 【Java】类来管理个人简历信息
  • UWB物资定位标签
  • C2W4.LAB.Word_Embedding.Part1
  • 智能听诊器:宠物医疗行业的新动力
  • ubuntu修改默认开机模式(图形/终端)
  • lucene数据写入-02倒排数据缓存组织
  • 【c++ arx 选项板2】
  • Python Pandas 数据分析的得力工具:简介
  • 中小企业设备资源优化:Spring Boot系统实现