mysql-恢复数据(日志管理)
前言
在mysql中我们有时候会出现误删除,或者其他的问题,我们可以通过mysql的日志进行恢复
操作
我们可以在mysql里面定义一个错误日志,方便我们可以排查是因为什么原因来解决mysql无法启动问题
-------------------------------------------------------------------------------------------------------------------------------
1.错误日志
进入到配置文件
vim /etc/my.cnf
添加或者找到你的错误日志
log_error=/tmp/mysql3306.log 这里的路径是我自己设置的每人的目录有可能不同,具体看自己
重启
systemctl restart mysqld
查看日志 -这里就可以看到你在启动过程中遇到的问题
---------------------------------------------------------------------------------------------------------------------------------
2.二进制日志(binlog)
作用
(1) 主从要依赖二进制日志
(2) 数据恢复时需要依赖于二进制日志
我们在配置文件里面进行添加这个一般没有启动
log_bin=/databinlog/mysql-bin 这个是我在数据库进行了增删改的操作二进制文件就会存放到这里,后面我们就可以通过二进制文件进行恢复
我们可以查看一个用cat命令是查看不到的需要用mysql自己的
查看二进制日志内容
mysqlbinlog mysql-bin.000001 #看语句级日志,不能看行数据
mysqlbinlog --base64-output=decode-rows -vvv mysql-bin.000001 #使用解码的方式,可看行数据
mysqlbinlog -d event mysql-bin.000001 #摘要显示事件号码
这里的 mysql-bin000001是我自己的,每次数据库经过重启或者刷新这个值就会加一
刷新命令 flush log;
截取日志
在恢复数据的途中我们可以选择从哪里恢复到哪里
我们恢复找到#数字开头然后下面找到操作命令的行然后到结束行就可以恢复
命令
1.截取出来保存到/tmp/a.sql目录下
mysqlbinlog --start-position=233 --stop-position=801 mysql-bin.000001 >/tmp/a.sql
这里的意思就是从233行恢复到801行
2.关闭二进制文件记录 set_sql_log_bin=0; (为了避免太多的日志,不关闭会在日志重新疾苦一遍执行日志)
3.把数据导入到mysql source /tmp/a.sql
4.开启二进制文件 set_sql_log_bin=1; --1为开启 0为关闭
----------------------------------------------------------------------------------------------------------------
第二种恢复(GTID)
对于binlog中的每一个事务,都会生成一个GTID号码 -
DDL ,DCL 一个event就是一个事务,就会有一个GTID号.
DML语句来讲,begin到commit,是一个事务,就是一个GTI
查看gtid号
cat /usr/local/mysql/data/auto.cnf
[auto]
server-uuid=e2e9b01e-9687-11eb-b577-000c29b0384b
或者这样也可以查看到
TID是一个:自增长的数据,从1开始
e2e9b01e-9687-11eb-b577-000c29b0384b:1-15
GTID的幂等性
如果拿有GTID的日志去恢复时,检查当前系统中是否有相同GTID号,有相同的就自动跳过
会影响到binlog恢复和主从复制.
GTID的开启和配置
vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true
基于GTID,binlog恢复
(1) 截取日志mysqlbinlog --include-gtids='3b915642-87b4-11ef-ae7c-000c2937c73c:1-3' mysql-bin.000001 >/tmp/gtid.sql
cd /data/binlog -这里还是上面你的日志存放位置
mysqlbinlog --skip-gtids --include-gtids='820f8917-d358-11ec-b243-000c29cbdce4:1-3' mysql-bin.000001 >/tmp/gtid.sql -这里红的需要看你自己的是多少来修改
--skip-gtids 作用:在导出时,忽略原有的gtid信息,恢复时生成最新的gtid信息
这个日志查看比上面会多一个,大家注意这个为分隔
恢复
set sql_log_bin=0;
source /tmp/gtid.sql
set sql_log_bin=1;
对此大家可以最后加一个整表备份,然后定时测试是否可以正常使用
相关文章:

mysql-恢复数据(日志管理)
前言 在mysql中我们有时候会出现误删除,或者其他的问题,我们可以通过mysql的日志进行恢复 操作 我们可以在mysql里面定义一个错误日志,方便我们可以排查是因为什么原因来解决mysql无法启动问题 ----------------------------------------…...

探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作
unity是实时3D互动内容创作和运营平台,包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、…...

自动化测试类型与持续集成频率的关系
持续集成是敏捷开发的一个重要实践,可是究竟多频繁的集成才算“持续”集成? 一般来说,持续集成有3种常见的集成频率,分别是每分钟集成、每天集成和每迭代集成。项目组应当以怎样的频率进行集成,这取决于测试策略&…...

React 中组件通信的几种主要方式
一、父传子: 1. 传递多个属性 父组件可以通过 props 传递多个属性给子组件。 示例 // 子组件 function Son(props) {return (<div>This is Son, {props.name} - Age: {props.age}</div>); }// 父组件 function App() {const name This is App N…...

mint-ui Picker 显示异常
mint-ui Picker 显示异常 现象 最近一个老项目页面显示异常,使用mint-ui Picker显示异常,直接显示成了 数据对象,而不是具体travelName 字段 组件 mint-ui Picker 使用方式(vue方式) // template <mt-picker :slots"slots" value-key…...
深入理解 MySQL 中的日志类型及其应用场景
目录标题 MySQL 中的日志类型这么多,它们都有哪些作用?1.错误日志(Error Log)2.事务日志2.1 InnoDB Redo Log(重做日志)2.2 InnoDB Undo Log (撤消日志)3.查询日志(General Query Log)4.慢查询日志 (Slow Query Log)5.二进制日志(Binary Log)6.中继日志 (Relay Log)总结一下M…...

群控系统服务端开发模式-应用开发-上传配置功能开发
下面直接进入上传配置功能开发,废话不多说。 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_upload (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,upload_type tinyint(1) UNSIGNED NOT NULL COMMENT 上传类型 1:本站 2&a…...

stm32——GPIO开发
目录 1、什么是GPIO 2、GPIO的作用 3、GPIO的基本结构 4、GPIO引脚的基本结构 5、GPIO端口模式的配置 1. 输入浮空(Input Floating) 2. 输入上拉(Input Pull-Up) 3. 输入下拉(Input Pull-Down) 4. …...

layui 自定义验证单选框必填
对于输入框类型必填验证,只需要在 input 输入框加入 lay-verify "required" 即可。但对于单选按钮这种特殊的该怎么办呢?layui 为我们提供了自定义验证。 1. 在单选按钮上添加自定义验证的名称 2. 验证规则如下 // 单选框自定义验证form.ve…...
Spring 设计模式之策略模式
Spring 设计模式之策略模式 策略模式构成部分java举例 策略模式 策略模式:允许定义一系列算法,并将每一个算法封装起来,使它们可以互相替换,且算法的变化可以独立于使用它们的客户端。 构成部分 Context(上下文&…...
苹果开发 IOS 证书生成步骤
前提条件 你手上有一台 Macbook你的苹果账号已被添加到开发人员中 证书创建步骤 打开 XCode 直接生成 p12证书生成后,就可在苹果开发者管理界面中看到你的证书记录登录苹果开发中心,创建 profiles 文件,并下载以上步骤即可,就这…...

DDR2 SDRAM(五)初始化
因为DDR2本质上只是更高级的一种SRAM,底层操作原理和SRAM是一样的,所以很多基础的东西就不再赘述了。 一、原理 在初始化之前,DDR2芯片需要先上电,芯片有多个需要提供的电压,其大小和顺序也有要求,这部分…...

Python工具箱系列(五十七)
图像分割与人脸识别 众所周知图像是由若干有意义的像素组成的,图像分割作为计算机视觉的基础,对具有现有目标和较精确边界的图像进行分割,实现在图像像素级别上的分类任务。图像分割可分为语义分割和实例分割两类,区别如下&#x…...
数据智能驱动金融策略优化:民锋智能分析技术的应用
在现代金融市场中,数据分析与智能化技术的结合为投资策略带来了全新机遇。民锋以智能分析技术为核心,帮助投资者在复杂的市场环境中做出高效决策。本文将深入探讨民锋智能分析技术如何驱动策略优化,为投资者带来更加智能化的支持。 #### 一、…...
1009:带余除法
【题目描述】 给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。 【输入】 一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔…...

Jmeter实际应用
环境准备 JDK1.8Jmeter 5.6.3 下载地址Jmeter 插件 下载地址 放到lib/ext下 常用命令 # 启动 sh jmeter# 集群模式下启动节点,不启动用不了集群 sh jmeter-server#生成ssl需要的证书, 这里会要求输入个密码,是要在jmeter中用的 keytool -import -ali…...

C++基础(11.AVL树的实现)
目录 AVL的概念: AVL树的实现: AVL树的结构: AVL树的插⼊: 平衡因⼦更新: 旋转: AVL树的其他功能: AVL树平衡检测: 测试代码*2: 源代码: KV结构: 源代码: AVL…...
c# 抽象方法 虚函数 使用场景
在C#中,抽象方法(abstract method)和虚函数(virtual method)都是用于实现多态性(polymorphism)的重要特性,但它们在使用上有一些关键的区别和各自的用途。 抽象方法(Abs…...

大数据安全方案 验证
一、背景 文档用于记录配置 Kerberos 和 Ranger 后,对 HDFS、Hive 认证和鉴权的功能测试。 二、Kerberos 验证 2.1、验证功能 1,HDFS 认证 2.1.1、访问 HDFS Kerberos 验证前,访问 HDFS 失败。 Kerberos 验证后,访问 HDFS 成…...

电脑软件:推荐一款免费且实用的电脑开关机小工具
目录 一、软件简介 二、软件功能 三、软件特点 四、使用说明 五、软件下载 今天给大家推荐一款免费且实用的电脑开关机小工具KShutdown,有需要的朋友可以下载试一下! 一、软件简介 KShutdown是一款精巧且实用的定时自动关机小工具,对于…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...