MySQL通过Binlog日志恢复数据库

news2024/11/24 4:27:10

一、MySQL Binlog 简介

MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。binlog 的主要目的是复制和恢复。

二、Binlog日志的两个最重要的使用场景

1、复制:MySQL 的 Master-Slave 协议,让 Slave 可以通过监听 Binlog 实现数据复制,达到数据一致的目的

2、数据恢复:通过 mysqlbinlog工具来使恢复数据

3、增量备份:使用canal监控binlog完成数据同步

三、开启Binlog日志:

通过配置 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件的 log-bin 选项:

##配置binlog日志路径以及日志文件名前缀、生成的日志格式为:bin-log.000001
log-bin=/var/lib/mysql/bin-log
##注意5.7以及更高版本需要配置本项、自定义,保证唯一性
server-id=1
##binlog格式,有3种statement,row,mixed,区别的话,请自行搜索
binlog-format=mixed
##表示每1次执行写入就与硬盘同步,会影响性能,为0时表示,事务提交时mysql不做刷盘操作,由系统决定
sync-binlog=1

四、查看Binlog日志状态

show variables like '%log_bin%';

binlog日志开启状态为ON

五、查看Binlog文件内容

show binlog events in 'bin-log-1.000001';

六、通过Binlog恢复数据

在linux控制台执行

mysqlbinlog --database=hello /var/lib/mysql/bin-log-1.000001 | /usr/bin/mysql -uroot -p123456 -v hello

/usr/bin/mysqlbinlog 为binlog命令

--database=hello 指定数据库为hello的日志

/var/lib/mysql/bin-log-1.000001 为binlog日志

| 为管道符

/usr/bin/mysql -uroot -p123456 -v hello 连接mysql(-u数据登录名,-p数据库密码)、并指定需要恢复的数据库 -v 为显示详细信息

七、通过指定位置恢复数据

在linux控制台执行

mysqlbinlog /var/lib/mysql/binlog.000005 --start-position=4 --stop-position=30088055 | mysql -h127.0.0.1 -uroot -p123456

--start-position=573 开始位置

--stop-position=718 结束位置

查看数据库日志位置信息:

show binlog events in 'bin-log-1.000001';

八、通过指定时间恢复数据

在linux控制台执行

mysqlbinlog --start-datetime="2022-01-01 00:00:00" --stop-datetime="2022-05-01 23:59:59" /var/lib/mysql/binlog.000005 | mysql -h127.0.0.1 -uroot -p123456

--start-datetime="2021-06-27 20:58:18" 开始时间

--stop-datetime="2021-06-27 20:58:35" 结束时间

查看时间信息

在linux控制台执行

mysqlbinlog --no-defaults /var/lib/mysql/bin-log-1.000001

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rabbit mq 配置要点

rabbit mq是一款基于AMQP协议(Advanced Message Queuing Protocol - 高级消息队列协议)的消息队列。 生产者与消费者之间是通过Broker建立连接,在实际的项目中,他们是通过exchange和queue联系在一起的 生产者发送消息流程&#x…

磁盘阵列/视频监控系统EasyCVR新增邮件验证与定时更换登录密码功能

TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&…

unity—UGUI 点击按钮后,持续点击空格键会持续出发按钮

在unity开发当中,使用UGUI开发,无论是你代码绑定按钮事件,还是在Inspector窗口直接拖拽绑定的事件,点击按钮事件后,按空格键都会再次执行相关的方法。 默认情况下,Unity将空格键映射为UI按钮的Submit提交操…

【NSX-T】9. 搭建NSX-T环境 —— 使用 OSPF 配置 Tier-0 网关

目录 Lab 说明9.1 创建上行链路网段9.2 创建 Tier-0 网关(1)设置 Interface 信息(2)禁用 BGP(3)启用和配置 OSPF(4)查看 OSPF Neighbors(5)为 OSPF 配置路由重…

Vue3配置使用vue-router路由

随着Vue版本的升级,Vue 2.x项目和Vue 3.x项目在使用vue-router上有些区别,本文就简单介绍下vue-router在Vue3中的配置和使用。 一、目录结构 demo/package.jsonvite.config.jsindex.htmlpublic/src/api/assets/common/components/store/views/home.vuel…

二维码智慧门牌管理系统升级解决方案:费用缴纳更便捷

文章目录 前言一、用量查询与数据分析二、一键支付功能三、多种费用管理与多账户使用一、提高生活和工作效率 前言 科技改变生活方式 随着科技的进步,物联网技术正在改变我们的生活方式。在企业和家庭中,费用管理和缴纳是一个重要问题。为了解决这个问题…

《volatile使用与学习总结:2023-12-17》多层面分析学习java关键字--volatile

一、简介 volatile是java中提供的一种轻量级的同步机制,相比于synchronized更加轻量,因为volatile避免了线程频繁的上下文切换和调度,但是也有缺点,同步性差并且使用起来易出错。 二、并发编程的三个概念 原子性 原子性即一个操…

单词搜索 II

题目链接 单词搜索 II 题目描述 注意点 board[i][j] 是一个小写英文字母words[i] 由小写英文字母组成words 中的所有字符串互不相同同一个单元格内的字母在一个单词中不允许被重复使用 解答思路 要想找到一个完整的单词,首先想到的是深度优先遍历,如…

patchless amsi学习(中)

DR7 DR7被称为“调试控制寄存器”,允许对每个硬件断点进行精细控制。其中,前8位控制是否启用了特定的硬件断点。偶数位(0、2、4、6)称为L0-L3,在本地启用了断点,这意味着仅在当前任务中检测到断点异常时才…

RocketMQ 顺序消息收发实践

目录 概述局部有序创建 Topic配置代码测试 结束 概述 顺序消息 全局有序:适用于性能不是特别高的场景,但是又要求消息又严格一致的概念。局部有序:适用于性能要求高的场景,想办法通过在设计层面处理有序的消息尽量发送至同一个 T…

qt QFile文件操作处理,QFileInfo文件信息读取的简单介绍

QFile类用于文件操作,对文件进行读写操作,可读写文件,二进制文件和qt资源文件.处理文本文件和二进制文件可使用QTextStream类和QDataStream类,处理临时文件可以使用QTemporary,获取文件信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatch…

整合SSH(Spring+Struts+Hibernate)

0.前言, 由于工作需要故来学习SSH的整合,structs其实相当于(把view和controller结合起来,没有像现在的前后端分离,请求会发送给Action处理,在structs.xml映射地址和类) Hibernate(就是处理数据库的,几乎自动化,也可以写sql语句) Struts:Struts 是一个基于 MVC&#…

【Python】计算一年内的总天数(还有跨年日期)

花了一段时间才找到Python中求一年中总日数(total day of the Year)的格式代码,所以也把计算方法记录下来。 基本 首先,简单地找出一年中的总天数, strftime() 和 strptime() 的格式代码是 %j ↓看这里 使用 strft…

算法基础之Prim算法求最小生成树

Prim算法求最小生成树 核心思想&#xff1a;Prim 算法 类似于dijkstra算法 更新距离时改为到**集合(生成树)**的距离 最小生成树长这样 每次迭代放一个最近(有边)点&#xff0c;一条最短边进生成树 #include <cstring>#include <iostream>#include <algori…

08-Event Sources和Sink架构

1 PingSource -> Kubernetes Service Sink 架构模型 示例1 部署一个kubernetes类型的sink&#xff0c;这里面还是以event-display为例&#xff0c;下面是资源清单 --- apiVersion: apps/v1 kind: Deployment metadata:name: event-display spec:replicas: 1selector:matc…

Axie Infinity 之后,Ronin 的潜力何在?

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;Ronin Dashboard 备受欢迎的 Web3 游戏 Pixels 在 2023 年 10 月下旬从 Polygon 迁移到了专为游戏设计的区块链 Ronin。Pixels 此前作为 Polygon 上活跃用户&#xff08;钱包数量&#xff09;最多的 Web3 游戏&…

【重点】【DFS】【子集】78.子集

题目 法1&#xff1a;DFS 必须掌握的方法&#xff01;&#xff01;&#xff01; 我们也可以用递归来实现子集枚举。 假设我们需要找到一个长度为 nnn 的序列 aaa 的所有子序列&#xff0c;代码框架是这样的&#xff1a; void dfs(int cur, int n, LinkedList<Integer>…

HTML5+CSS3小实例:3D发光切换按钮效果

目录 一、运行效果 图片效果 二、项目概述 三、开发环境 四、实现步骤及代码 1.创建空文件夹 2.完成页面内容 3.完成css样式 五、项目总结 六、源码获取 一、运行效果 图片效果 二、项目概述 该项目是一个基于HTML和CSS的动态小猫动画。通过使用CSS样式和动画效果…

开源支付项目,还有强大的聚合支付项目,值得借鉴学习,收藏备用

开源支付项目,还有强大的聚合支付项目,值得借鉴学习,收藏备用 自学编程之道2023-03-18 14:26 移动支付随处可见,以前都是微信、支付宝分别各一个收款码,二维码多了之后就不好管理了,随着支付方式的增多,现在基本上都用聚合支付,多种支付方式,一码搞定。针对支付及聚…

Linux常用网络指令

网络参数设定使用的指令 手动/自动设定与启动/关闭 IP 参数&#xff1a;ifconfig, ifup, ifdown ifconfig ifconfig常用于修改网络配置以及查看网络参数的指令 [rootwww ~]# ifconfig {interface} {up|down} < 观察与启动接口 [rootwww ~]# ifconfig interface {options…