二进制日志备份与恢复

二进制备份是 MySQL 数据库备份的一种方式,它通过记录数据库的所有更改操作,以二进制格式保存,实现对数据库的增量备份和恢复。binlog_format 是 MySQL 中用来指定二进制日志格式的参数,有三种常见的选项:STATEMENTROWMIXED。不同的选项会影响到二进制日志的记录方式和内容。下面详细解释二进制备份以及不同 binlog_format 选项的区别:

1. 二进制备份

定义:
  • 二进制备份是指备份 MySQL 数据库的二进制日志文件,这些日志记录了数据库发生的所有更改操作。
  • 二进制备份通常用于增量备份和恢复,只备份从上次备份或上次差异备份以来发生的数据变更,节省了备份时间和存储空间。
操作步骤:
  1. 启用二进制日志功能。
  2. 使用 mysqlbinlog 命令将二进制日志文件导出到文本文件。
  3. 在需要恢复数据时,使用 mysqlbinlog 命令将备份的二进制日志文件应用到数据库中。

2. binlog_format 不同选项的区别

在 MySQL 中,binlog_format 参数用来指定二进制日志的格式,有三种常见的选项:STATEMENTROWMIXED。不同的选项会影响到二进制日志记录的方式和内容。

1. STATEMENT
  • 说明: binlog_format=STATEMENT 表示二进制日志以 SQL 语句的形式记录。
  • 特点:
    • 记录了执行的 SQL 语句,比如 INSERT、UPDATE、DELETE 等。
    • 适用于非常复杂的 SQL 语句,或者需要在不同数据库间进行复制时。
  • 优点:
    • 日志文件相对较小。
    • 可读性较好,便于查看和分析。
  • 缺点:
    • 在某些情况下可能会导致数据不一致的问题,例如使用了不确定的函数或变量。
    • 在使用不支持的语法时可能会出现错误。
2. ROW
  • 说明: binlog_format=ROW 表示二进制日志以行的形式记录。
  • 特点:
    • 记录了数据行的变化,即记录了被修改的行的内容。
    • 适用于大部分的数据更改场景,对于一些复杂的语句也能够保证正确性。
  • 优点:
    • 数据更改的具体内容被记录,恢复时更加准确。
    • 不会受到 SQL 语句语法的影响。
  • 缺点:
    • 日志文件相对较大,占用存储空间较多。
    • 在某些情况下可能会导致主从复制的延迟。
3. MIXED
  • 说明: binlog_format=MIXED 表示二进制日志同时采用了 STATEMENT 和 ROW 两种方式。
  • 特点:
    • 在不同情况下自动选择使用 STATEMENT 或 ROW 方式记录。
    • 对于某些语句使用 STATEMENT,对于某些语句使用 ROW。
  • 优点:
    • 综合了 STATEMENT 和 ROW 的优点,适用范围更广。
    • 可以在不同场景下灵活选择合适的记录方式。
  • 缺点:
    • 日志文件大小和性能可能存在波动。

3. 如何选择 binlog_format 选项

  • STATEMENT: 适用于不涉及函数、变量等复杂语法的场景,日志文件相对较小,便于查看和分析。
  • ROW: 适用于大部分的数据更改场景,对于需要准确恢复数据的场景较为合适,但日志文件会相对较大。
  • MIXED: 综合了 STATEMENT 和 ROW 的优点,适用范围更广,可以在不同场景下灵活选择合适的记录方式,是推荐使用的方式。

示例:

mysqlbinlog --no-defaults --base64-output=decode-rows -v /usr/local/mysql/data/mysql-bin.000001 

这是使用 mysqlbinlog 命令查看 /usr/local/mysql/data/mysql-bin.000001 文件的部分输出结果,并且使用了一些参数:

  • --no-defaults:  默认字符集,防止出现UTF-8报错。
  • --base64-output=decode-rows: 表示将行事件的内容使用 base64 解码输出。
  • -v: 表示显示详细的日志内容。

这个命令的目的是查看二进制日志文件的详细内容,并将行事件的内容进行 base64 解码后显示,以便更容易阅读和理解。

对数据库进行操作以增加日志记录

删除class2后回滚


 

验证:

mysqlbinlog --no-defaults --start-position='388' --stop-position='1052' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p123456

--start-position='388'  表示从位置388开始

--stop-position='1052'  表示到位置1052结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288042.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeup_1132:问题 A: 最长公共子序列

目录 Problem DescriptionInputOutputSample InputSample Output原题链接解题思路代码实现(C) Problem Description 给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就…

Etcd Raft 协议(进阶篇)

前言 在正式开始介绍 Raft 协议之间,我们有必要简单介绍一下其相关概念。在分布式系统中,一致性是比较常见的概念,所谓一致性指的是集群中的多个节点在状态上达成一致。在程序和操作系统不会崩溃、硬件不会损坏、服务器不会掉电、网络绝对可靠…

GDC期间LayaAir启动全球化战略

3 月 18 日至 3 月 22 日,一年一度的游戏开发者大会(GDC)在美国旧金山举行。在此期间,Layabox宣布LayaAir引擎启动全球扩张战略,这标志着引擎将步入快速发展的新阶段。此举旨在利用公司先进的3D引擎技术,将…

【数据分享】1929-2023年全球站点的逐年平均露点(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全球气象站…

canvas画图历史记录撤销与恢复

提示&#xff1a;canvas画图历史记录撤销与恢复 文章目录 前言一、历史记录撤销与恢复总结 前言 一、历史记录撤销与恢复 test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport…

JavaScript混淆工具选择与使用指南

摘要 本文介绍了什么是js混淆工具&#xff0c;以及为什么需要使用js混淆工具。详细解释了js混淆工具的实现原理和作用&#xff0c;探讨了如何选择合适的js混淆工具&#xff0c;列举了几款常用的js混淆工具&#xff0c;并对它们的特点和适用场景进行了分析。最后总结了js混淆工…

图书推荐|图解Java数据结构与算法:微课视频版

掌握Java数据结构与常见算法&#xff0c;精通Java语言编程 本书内容 《图解Java数据结构与算法&#xff1a;微课视频版》系统、全面地介绍数据结构的基础理论与算法设计&#xff0c;精选数据结构考研习题和各类典型例题进行讲解&#xff0c;案例和课后习题丰富&#xff0c;突出…

Ubuntu 配置 kubernetes 学习环境,让外部访问 dashboard

Ubuntu 配置 kubernetes 学习环境 一、安装 1. minikube 首先下载一下 minikube&#xff0c;这是一个单机版的 k8s&#xff0c;只需要有容器环境就可以轻松启动和学习 k8s。 首先你需要有Docker、QEMU、Hyperkit等其中之一的容器环境&#xff0c;以下使用 docker 进行。 对…

如何使用CHAT-AI?

伴随着CHAT-GPT的出现&#xff0c;人们都喜欢上了CHAT-AI。嗯&#xff1f;你还不会用&#xff1f;&#xff01; 教程来喽&#xff01; 首先点这里的 … 点击扩展 接着选择“管理扩展” 点击之后搜索“wetab” 最后你需要注册一个号&#xff0c;然后就可以使用CHAT-AI啦&#x…

产品推荐 | 基于 ALINX XILINX ZYNQ-7000 XC7Z020 多网口 FPGA开发板

01、产品概述 此款开发板使用的是Xilinx公司的Zynq 7000系列的芯片&#xff0c;型号为XC7Z020-2CLG484I&#xff0c;5 路千兆以太网接口&#xff0c;支持多网口高速数据交换数据处理存储&#xff0c;视频传输处理以及工业控制等。内核 CPU搭载双核 ARM CORTEX-A9&#xff1b;在…

大数据Hadoop入门04 ——【HDFS shell操作】

一、HDSF shell命令行解释说明 1、介绍 命令行界面&#xff08;英语: command-line interface&#xff0c;缩写: CLl)&#xff0c;是指用户通过键盘输入指令&#xff0c;计算机接收到指令后&#xff0c;予以执行一种人际交互方式。Hadoop提供了文件系统的shell命令行客户端:…

43 带 fixed 列的 el-table 不兼容于 sortablejs

前言 这是一个基于 sortablejs 来实现的 el-table 的拖拽功能的基础实现 然后 这个过程中遇到的一个比较特殊的问题是, 关于 el-table-column 的 fixed 的属性, 对于 sortablejs 这边来定位目标选择列 影响的一个问题 在基础的用例中, 使用 “.el-table__body-wrapper tbo…

手把手教你绘画原型图:Axure的安装使用

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师&#xff0c;大模型&#xff0c;爬虫、ACM算法 &#x1f492; 公众号&#xff…

并发学习25--多线程 ThreadPoolExecutor

类图&#xff1a;定义了一些重要的接口和实现类 线程池的几种状态&#xff1a; ThreadPoolExecutor构造方法 1.救急线程 线程池中会有核心线程和救急线程&#xff1b;救急线程数最大线程数-核心线程数。而救急线程会在阻塞队列已经占满的情况下&#xff0c;执行下一个即将要被…

07、JS实现:用回溯法实现数组全排列的算法(一步一步剖析,很详细)

回溯法实现数组全排列的算法 Ⅰ、回溯法实现数组全排列&#xff1a;1、题目描述&#xff1a;2、解题思路&#xff1a;3、实现代码&#xff1a; Ⅱ、小结&#xff1a; Ⅰ、回溯法实现数组全排列&#xff1a; 1、题目描述&#xff1a; 给定⼀个 没有重复 数字的序列&#xff0c;…

Kimi 200万字爆火,通义加码1000万,阿里笑而不语

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 我怎么感觉Kimi是一个“网红”产品呢?在没有任何预兆情况下&#xff0c;国产AI大模型Kimi突然爆火&#xff0c;最近我在很多平台上看到了Kimi的广告&#xff0c;感觉到处都在吹这个产品。 看见上面的新闻了吧&a…

使用Spark单机版环境

在Spark单机版环境中&#xff0c;可通过多种方式进行实战操作。首先&#xff0c;可使用特定算法或数学软件计算圆周率π&#xff0c;并通过SparkPi工具验证结果。其次&#xff0c;在交互式Scala版或Python版Spark Shell中&#xff0c;可以进行简单的计算、打印九九表等操作&…

VRAY渲染设置大神参数(建议收藏)

3dmax效果图云渲染平台——渲染100以3ds Max 2024、VR 6.2、CR 11.2等最新版本为基础&#xff0c;兼容fp、acescg等常用插件&#xff0c;同时LUT滤镜等参数也得到了同步支持。注册填邀请码【7788】可领30元礼包和免费渲染券哦~ 公用&#xff1a;输出大小&#xff1a;一般小图50…

JavaScript进阶5之垃圾回收(计算机组成、解释与编译、JavaScript引擎、垃圾回收、内存管理)、运行机制(浏览器进程分类、浏览器事件循环)

垃圾回收&运行机制 垃圾回收计算机组成解释与编译JavaScript引擎V8引擎 垃圾回收引用计数法标记清除&#xff08;mark-sweep&#xff09;算法 内存管理新生代 运行机制浏览器进程分类&#xff1a;浏览器事件循环宏任务微任务整体流程浏览器事件循环案例一案例二 垃圾回收 …

SpringBoot中处理校验逻辑的两种方式:Hibernate Validator+全局异常处理

最近正在开发一个校园管理系统&#xff0c;需要对请求参数进行校验&#xff0c;比如说非空啊、长度限制啊等等&#xff0c;可选的解决方案有两种&#xff1a; 一种是用 Hibernate Validator 来处理一种是用全局异常来处理 两种方式&#xff0c;我们一一来实践体验一下。 一、…