数据库进阶教学——数据库故障恢复(日志文件)

news2024/11/27 14:47:42

目录

一、日志简介

二、日志文件操作

1、查看日志状态

2、开启日志功能

 3、查看日志文件

4、查看当前日志

5、查看日志中的事件

6、删除日志文件

7、查看和修改日志文件有效期

8、查看日志文件详细信息

三、删除的数据库恢复


一、日志简介

  • 日志是记录所有数据库表结果变更以及表数据修改的二进制日志,而不会记录SELECT和SHOW这类的操作。
  • Binlog文件名默认为“主机名_binlog-序列号”格式,例如:stu_binlog-000001,也可以在配置文件中指定名称。
  • 文件记录模式有STATEMENT、ROW和MIXED三种:
    • ROW(row-based replication,RBR):日志中会记录每一行数据被修改的情况,然后在slave端对相同的数据进行修改。
    • STATEMENT(statement-based replication,SBR):每一条被修改数据SQL都会记录到master的日志中,slave在复制的时候SQL进程会解析成和原来master端执行过的相同的SQL再次执行,简称SQL语句复制。
    • MIXED(mixed-based replication,MBR):以上两种模式的混合使用,一般会使用STATEMENT模式保存日志,对于STATEMENT模式无法复制的操作则使用ROW模式来保存日志,MySQL会根据执行的SQL语句来选择写入的模式。

二、日志文件操作

1、查看日志状态

  • show variables like "log_bin";
    或
    show variables like "%log_bin%";

2、开启日志功能

  • set global log_bin=1;
  • 【注】如遇到下面错误。
    • 原因:mysql二进制日志记录(一个问题牵扯出更多问题) - 简书 (jianshu.com)

 3、查看日志文件

  • show binary logs;
    或
    show master logs;
  •   

4、查看当前日志

  • show master status;

5、查看日志中的事件

  • # 查看当前日志文件中的事件
    show binlog events;
    # 查看指定日志文件中的事件
    show binlog events in 'DESKTOP-81MU6JA-bin.000012';
  • 【注】上一个事件的结束位置,就是下一个事件的开始位置。

6、删除日志文件

  • # 删除指定的日志文件
    purge binary logs to 'DESKTOP-81MU6JA-bin.000012';
    # 删除指定时间之前的文件
    purge binary logs before '2023-11-02 00:00:00';
    # 清除所有日志文件
    reset master;
  •  

7、查看和修改日志文件有效期

  • # 查看日志文件的有效期
    show variables like '%binlog_expire_logs_seconds';
    # 默认有效期为0,表示日志的自动清理功能没有启用
    # 设置日志文件的有效期(启用日志自动清理),设置为1,表示超出1天,日志文件会自动删除(单位为秒)
    set global binlog_expire_logs_seconds=60*60*24;
  •  
  • 【注】原本是show variables like '%expire_logs_days%',即按天设置,但是已经弃用了。

8、查看日志文件详细信息

  •  找到data文件夹(一般在mysql的安装路径下),在data文件夹下以管理员身份打开终端。输入下列命令:
    • mysqlbinlog DESKTOP-81MU6JA-bin.000012
  • 【注】data文件夹如果不在mysql的安装路径,参考:mysql没有data和my.ini文件怎么办?_mysql没有data文件夹_云边的快乐猫的博客-CSDN博客

三、删除的数据库恢复

  •  查看要删除的数据库。
  • 查看该数据库中的内容。
    • ​​​​​​​
  • 查看当前日志文件。
  • 查看该日志文件中的事件。
  • 删除advanced_database数据库。
  • 恢复该数据库,有两种方式。
  • 方式一:利用事件的起始号和结束号位置进行恢复。
    • 查看日志文件中的信息,找到需要取得事件的起始号和结束号。
    • 恢复数据库。
      • 找到data文件夹(一般在mysql的安装路径下),在data文件夹下打开终端。输入下列命令:
        • mysqlbinlog --start-position=157 --stop-position=4696 DESKTOP-81MU6JA-bin.000012 | mysql -u root -p
          Enter password: 数据库密码
      • 【注】data文件夹如果不在mysql的安装路径,参考:mysql没有data和my.ini文件怎么办?_mysql没有data文件夹_云边的快乐猫的博客-CSDN博客
      • 再次查看,该数据库已经恢复。
  • 方式二:利用指定的时间来恢复。
    •  删除advanced_database数据库。
    • 查看日志文件详细信息,找到对应的时间点。
    • 恢复数据库。
      • 在data文件夹下打开终端,输入下列命令:
      • mysqlbinlog --start-datetime="2023-11-02 19:03:18" --stop-datetime="2023-11-03 21:23:09" DESKTOP-81MU6JA-bin.000012 | mysql -u root -p
        Enter password: 数据库密码
      • 再次查看,该数据库已经恢复。       

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

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

相关文章

全国首批!中国儿童青少年戏剧艺术普及推广中心——福建省艺术馆、福州市文化馆推广中心授牌仪式在福州举办

2023年11月1日,由中国儿童艺术剧院、文化和旅游部全国公共文化发展中心主办,福建省文化和旅游厅支持,福建省艺术馆、福州市文化和旅游局承办,福州市文化馆协办的“中国儿童青少年戏剧艺术普及推广中心——福建省艺术馆、福州市文化…

Centos 7.x上利用certbot申请Let‘s Encrypt的SSH证书(HTTPS证书)

目录 01-安装Certbot02-在网站的根目录依次新建文件夹.well-known和acme-challenge03-申请证书 要在CentOS 7.x上为域名申请Let’s Encrypt证书,你可以使用Certbot工具,它是一个自动化证书颁发工具,用于管理Let’s Encrypt证书。以下是在Cent…

天津优选Java培训机构 影响Java培训费用的因素

Java作为如今流行的计算机编程语言,其优势在于言语简略、面向对象,并且应用广泛。随着市场对于Java开发人员的需求越来越大,越来越多非本专业的人也通过培训转行进入IT行业。 Java的就业优势 市场需求大:Java人才的市场需求很大…

高匿IP有什么作用

在互联网的蓬勃发展中,IP地址作为网络通信的基础,一直扮演着举足轻重的角色。而在诸多IP地址中,高匿IP地址则是一种特殊类型,其作用和价值在某些特定场合下尤为突出。那么,高匿IP地址究竟有哪些用处呢? 首先…

无声的世界,精神科用药并结合临床的一些分析及笔记(十)

目录 回 “ 家 ” 克服恐惧 奥沙西泮 除夕 酒与药 警告 离别 回 “ 家 ” 她的锥切手术进行的很顺利,按计划继续返回安定医院调节心理状态,病友们都盼着我们回“家”。当我俩跨入病区,大家都涌过来帮我们大包小包的拎着行李&#xff0…

Airtest工具根据App页面文字信息提取坐标进行截图保存在自定义文件夹

Airtest工具根据App页面文字信息提取坐标进行截图保存在自定义文件夹 一、项目背景 在一个项目中,选项被选中和未选中的节点元素的属性值无变化,通过AI识别率达不到百分百,想着通过计算图片的HSV值来判断选择能否被选中。(HSV比…

Android笔记(十一):Compose中使用ViewModel

通过ViewModel组件用于保存视图中需要的数据。ViewModel主要目的是将与用户界面相关的数据模型和应用程序的逻辑与负责实际显示和管理用户界面以及与操作系统交互的代码分离开来,为UI界面管理数据。常见的管理方式主要有:LiveData和StateFlow两种形式来实…

路由器基础(十一):ACL 配置

访问控制列表 (Access Control List,ACL) 是目前使用最多的访问控制实现技术。访问控制列表是路由器接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议,如IP、IPX、AppleTalk 等。访问控制列表可以分为基本访问控制列表和高级访问控制…

nodejs+springboot+elementui+python的Sd球鞋销售平台的设计与实现-毕业设计

此网站系统的开发方式和信息管理方式,借鉴前人设计的信息和研发。以网站商品信息为主,购物商品为核心功能来进行设计和研发,把网站信息和技术整合,开发出一套Sd球鞋销售平台。用目前现有的新技术进行系统开发,提供后台…

K-edge 和逃逸问题

一 k-eage基本概念 1 k-edge概念 K-edge称为K边, 其物理意义是高原子序数物质原子内部K层自由电子, 易与特定能量下X射线光子发生光电吸收作用, 导致对该能量的X射线光子吸收特别大。 而K-edge特性表现为X射线与物质发生相互作用时, 其衰减系数随着能量的增加而逐渐减小, 但在…

【优选算法系列】第一节.栈的简介(1047. 删除字符串中的所有相邻重复项和844. 比较含退格的字符串)

文章目录 前言一、删除字符串中的所有相邻重复项和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、比较含退格的字符串 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写总结 前言 …

Vue组件化开发,组件的创建,注册,使用,详解Vue,vm,VueComponent,vc

组件化开发 模块是指将一个大的js文件按照模块化拆分规则进行拆分成的每个js文件, 凡是采用模块方式开发的应用都可以称为模块化应用(组件包括模块) 传统方式开发的一个网页通常包括三部分: 结构(HTML)、样式(CSS)、交互(JavaScript) 关系纵横交织复杂,牵一发动全…

4+m6A+机器学习+分型,要素过多,没有思路的同学可借鉴

今天给同学们分享一篇生信文章“Diagnostic, clustering, and immune cell infiltration analysis of m6A regulators in patients with sepsis”,这篇文章发表在Sci Rep.期刊上,影响因子为4.6。 结果解读: 脓毒症中m6A调节因子的转录改变 …

ChinaSoft 论坛巡礼 | 安全攸关软件的智能化开发方法论坛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

5.RDD持久化

概述 今日目标: RDD 持久化 RDD持久化原理RDD持久化策略如何选择RDD持久化策略案例 相关文章如下: spark官网地址RDD编程指南 RDD 持久化 RDD持久化原理 Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当…

Make.com实现多个APP应用的自动化的入门指南

Make.com是一款基于云的自动化平台,可帮助用户将多个应用程序连接在一起,并通过设置自动化流程来简化日常任务。Make.com提供丰富的API集成,支持连接各种流行的应用程序,包括社交媒体、电子商务、CRM等。 使用Make.com实现多个AP…

AM@点与点集的关系@n维空间邻域

文章目录 abstract坐标平面平面点集 平面邻域利用邻域描述点与点集的关系聚点点集分类 n n n维空间基础概念线性运算和空间概念 空间中的两点距离 n n n维空间中的变元极限 n n n维空间内的邻域 abstract 坐标平面和平面点集, n n n维空间点集点与点集的关系n维空间及其邻域 …

python用cv2画图(line, rectangle, text等)

Python做图像图形研究的时候,通常需要画很多辅助几何形状(比如bounding box等)。基于opencv的几何图形绘制具有易用性,而且天然能和numpy数组交互。 本文总结了几种常用的cv2画几何图形的方法,当一个简易的手册使用&a…

【this详解】学习JavaScript的this的使用和原理这一篇就够了,超详细,建议收藏!!!

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:前端js专栏 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的…