位置: 编程技术 - 正文

Linux上通过binlog文件恢复mysql数据库详细步骤(linux bin sbin)

编辑:rootadmin

推荐整理分享Linux上通过binlog文件恢复mysql数据库详细步骤(linux bin sbin),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux bin sbin,linux bin sbin,linux bin,linux bin命令,linux bin命令,linux bin/sh,linux bin/sh,linux bin sbin,内容如对您有帮助,希望把文章链接给更多的朋友!

一、binlog 介绍

  服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间。为了显示这些二进制内容,我们可以使用mysqlbinlog命令来查看。

  用途1:主从同步

  用途2:恢复数据库(也是线上出现一次数据库文件丢失后,才对这个有所了解并学习的)

  mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ...

<!--[if !supportLists]-->1) mysqlbinlog 选项示例

常见的选项有以下几个:

--start-datetime

从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间。取值如:="" 或者="-- 5::"

示例:

从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样

--start-position

从二进制日志中读取指定position 事件位置作为开始。取值:=""

示例:

从二进制日志中读取指定position 事件位置作为事件截至。取值:=""

二、环境准备以及备份恢复

  1) 安装好mysql后,检查开启binlog

mysql> SHOW BINARY LOGS;

ERROR (HY): You are not using binary logging :上面提示说明没有服务器开启binlog

  修改/etc/my.cnf

  在mysqld选项中添加 一行内容如下:

  log-bin=mysql-bin

  默认如果不给值的话,log-bin 的会以mysqld-bin 为索引,创建mysqld-bin.等

  重启mysqld即可。

  2) 检查下binlog

  3) 先创建一些原始数据。

  检查下数据:

  4) 备份还原 (完整备份以及还原)

  这里我们模拟一下做下每天的完整备份数据库任务。

  模拟下操作失误,将数据修改错误了。

  现在我们使用传统的方式来进行恢复还原。

再次查询一下:

Linux上通过binlog文件恢复mysql数据库详细步骤(linux bin sbin)

  可以看到数据都已经还原回来。

  5) 利用binlog模拟还原

  在原表的基础上在创建几条数据。

  如果这个时候我们把数据不小心修改了或者把库删除掉了,导致数据全部丢失,这个时候如果再用之前最新的备份文件 Test_DB_-:.sql,去恢复数据的话,那么将会丢掉备份之后新插入的数据。

  注意:如果真的使用最近的一次备份文件去做的话,一定是在万不得已的情况(比如binlog 被删除,整个硬盘挂掉、、、 想想都可怕。。。)。

  模拟误操作,批量更改下用户的名字。

  不行,上一步不够狠,这里再狠一点,把表都给删除

  由于之前我们一开始开启了binlog 日志选项,用binlog恢复数据库。下面从binlog入手,先检查一下binlog 文件,目前我的mysql 服务自开启binlog 后重启了两次,所以有2个binlog文件(每重启一次,便会重新生成一个binlog文件,还有一种情况就是运行了FLUSH LOGS命令也会重建一个);

  mysql-bin.index 文件中记录的是:自log-bin选项开启后,记录的所有的二进制日志清单列表。

  注意:在实际生产环境中,如果遇到需要恢复数据库的情况,不要让用户能访问到数据库,以避免新的数据插入进来,以及在主从的环境下,关闭主从。

  使用mysqlbinlog 命令可以查看binlog文件.我们看下最新的文件mysql-bin.

  从最后可以看出有删除的操作。但是我们不能完全的恢复,因为最后还有删除的操作。

  现在我的思路就是,先将第一个binlog 和第二个binlog 文件导出来à利用指定的position位置的方式(过滤掉删除表操作和update Test_DB.OneTb set name='user';这条语句 ),导出2个sql 语句,最后我们将2个sql 合成一个sql,导入到数据库中即可。

  我们先用mysqlbinlog命令找到update 那条语句的位置,然后指定position 将mysql-bin. 导出来。

  从上面可以看到我们在做插入正常数据后的position 是,那么使用下面的命令导出sql

  然后导出mysql-bin.的sql 语句(注:由于演示操作,该文件只有一个drop 表操作,所以不做处理,但是在实际环境中,由于中途可能会有重启数据库操作,那时就需要检测最新的binlog有没有业务需要的语句。)

  sql 语句已经导出来了。我们可以利用该语句直接恢复所有正常的数据。

  注:本次恢复没有利用到之前的完整备份,因为我是开启binlog后,然后才做的所有建库建表操作,第一个binlog文件里已经记录了所有的数据库操作,所以不需要使用之前的完整备份(另外:实际的生产环境,还是需要利用到完整备份的,因为线上环境可能会有N多个binlog文件,所以需要利用到完整备份和最新的binlog文件来结合恢复)

  开始恢复前,我们将原有的Test_DB数据库也给干掉吧。毕竟我们的binlog中有创建操作

  恢复数据库时还可以利用在登陆mysql 后,用source 命令导入sql语句,这里暂不介绍

Enter password:

  恢复完成后,我们检查下表的数据是否完整

  Ok完整的都恢复过来了。

三、总结

  1) 恢复方式

    a) 利用最新一次的完整备份加binlog 指定事件起始时间和终止时间或者position恢复数据库

    b) 利用所有binlog指定事件起始位置和终止时间来合并sql文件恢复数据库(此方法要确保binlog文件的完整)

    c) 利用mysqldump 使用完整恢复。(在确保最新一次的完整备份后的数据不重要,允许丢掉的情况下,直接恢复。该方法最简单、效率最高)

  2) 附:官方建议的备份原则(为了能睡个好觉….嗯,是的)

    a) 在mysql安装好并运行时,就始终开启 log-bin选项,该日志文件位于datadir目录下,也要确保该目录所在存储介质是安全的。

    b) 定期做完整的mysql 备份。

    c) 定期使用 FlUSH LOGS 或者 mysqladmin flush-logs ,该操作会关闭当前的二进制日志文件,并新建一个binlog日志文件。(和重启mysql后新建的binlog操作一样)。以备份binlog日志,利用binlog日志也可以做增量备份。

以上所述是小编给大家介绍的Linux上通过binlog文件恢复mysql数据库详细步骤,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

mysql 5.7. 安装配置方法图文教程 因笔者个人需要需要在本机安装Mysql,先将安装过程记录如下,希望对他人有所参考。一、下载软件1.进入mysql官网,登陆自己的oracle账号,下载Mysql-5.7.1

mysql 5.7. 安装配置方法图文详细教程 mysql5.7.安装过程记录如下,希望对大家有帮助。一、MySQL5.7.下载下载链接:

mysql 5.7. winx安装配置教程 本文以MySQL5.7.为例,介绍mysql5.7.zip在win系统下的安装。一、前提条件:1.win管理员2.MySQL安装包(zip包)二、安装过程首先解压MySQL安装包到自己想安装

标签: linux bin sbin

本文链接地址:https://www.jiuchutong.com/biancheng/348221.html 转载请保留说明!

上一篇:如何将MySQL的两个表名对调(mysql两者之间)

下一篇:mysql 5.7.14 安装配置方法图文教程(mysql 5.7.34安装)

  • 应交税费是什么会计科目
  • 上月做其它应付款本月发票到如何做
  • 结算金额和付款金额
  • 持有待售资产是流动资产吗
  • 已经抵扣过的进项票对方红冲之后怎么做账报税
  • 小规模纳税人变成一般纳税人之前的发票变更
  • 企业所得税年报过了申报期还能修改吗
  • 小企业会计准则和一般企业会计准则的区别
  • 进销存明细账怎么填写
  • 债务重组偿债顺序
  • 分税制的内容有哪些?
  • 商贸公司可以用加工厂的商标委托加工生产吗
  • 房租物业费摊销
  • 不含税劳务报酬怎么交税的
  • 劳务公司计提工资怎么算
  • 哪些发票可以进账认证
  • 计算完工产品成本和月末在产品成本
  • 分公司是否可以贷款
  • 一般纳税人年审证明
  • 工程施工什么时候确认收入
  • 利润表没有其他业务利润
  • 增值税纳税申报表在哪里查询
  • 不合规发票有哪些风险
  • 为什么贷款利息变高了
  • win10windows资源管理器怎么打开
  • 手机中的流量统计在哪里寻找
  • 受托加工委托方销售产品
  • 收到挂靠方应缴纳税款如何做账?
  • 三星电脑安装系统按哪个键
  • psimsvc.exe - psimsvc是什么进程 有什么用
  • cortana小娜可以卸载吗
  • php sybase_fetch_array使用方法
  • 即征即退增值税账务处理
  • 买保险公司的养老保险合适吗
  • uniapp怎么做适配
  • 加工费计入
  • 圣胡安岛战争
  • 企业所得税核定征收方法
  • 公司收到投资款怎么写收据?
  • 新闻发布管理系统
  • 小程序uniacid
  • Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
  • 资产负债表申报怎么填
  • 自学前端,你必做的事
  • idea如何运行别人的vue项目
  • 营业外收支核算的内容有哪些?
  • 销售折让的会计科目
  • 在pycharm中配置python
  • 查验发票显示红冲是什么意思
  • 原材料的会计处理有哪些
  • 研发人员工资加计扣除以实发
  • 小规模企业出租不动产增值税税率
  • 商贸公司用购进产品吗
  • 直接人工标准工时计算公式
  • 购置固定资产的预算是财务预算吗
  • 小企业会计核算论文
  • 收银员长款短款什么意思
  • 加油账务处理
  • 盈余公积现金流量表中应填入哪里呢
  • 车辆保险发票能补开吗
  • 机票行程单可以抵扣进项税吗?
  • 库存商品核算流程是怎样的
  • 游戏与操作系统不兼容
  • win7怎么多分出一个盘
  • Mac显示桌面快捷键
  • linux的free命令详解
  • centos 6.0
  • win10系统电脑关机自动重启
  • Extjs4 类的定义和扩展实例
  • ExtJS4 动态生成的grid导出为excel示例
  • 深入理解python特性 pdf
  • opengl绘图
  • 计算机中丢失opencv_core249.dll
  • jQuery使用ajax方法解析返回的json数据功能示例
  • Open quote is expected for attribute "name" associated with an element type "item".
  • 借助FileReader实现将文件编码为Base64后通过AJAX上传
  • 深圳市税务局陈建新
  • 江苏常州税务局电话人工服务电话
  • 美国买房hoa
  • 地税局收税标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设