专栏首页时悦的学习笔记mysqlbinlog命令详解 Part 10 恢复MySQL

mysqlbinlog命令详解 Part 10 恢复MySQL

实验环境

此次实验的环境如下

  • MySQL 5.7.25
  • Redhat 6.10
  • binlog模式采用row模式

前面的一些章节我们对mysqldump常用命令进行了讲解

这个专题的内容为mysqlbinlog命令的详解

mysqlbinlog是MySQL中用来处理binlog的工具

上节的内容为新建一个备份策略

这节内容讲如何使用mysqldump恢复MySQL

1. 还原策略

我们假设周五早上9点发生了故障导致无法打开

我们现在需要将其恢复到最近的时间点

1.1 还原周日零点的备份

操作系统命令行

shell> mysql -h127.0.0.1 -usystem -P3306 -p < /tmp/backup_sunday_0_AM.sql

mysql命令行

shell> mysql -h127.0.0.1 -usystem -P3306 -p

mysql>source /tmp/backup_sunday_0_AM.sql

1.2 还原周日零点直到周五零点的备份

我们假设这期间总共生成5个二进制文件

shell> mysqlbinlog mysql-bin.000001  mysql-bin.000002  mysql-bin.000003 mysql-bin.000004  mysql-bin.000005  | mysql -h127.0.0.1 -usystem -P3306 -p

注意,需要将所有需要的二进制文件写在一起,不可分多次

如果在开始备份时没有指定--flush-logs参数,则需要首先查看备份时所处的位置

-- Position to start replication or point-in-time recovery from 
-- CHANGE MASTER TO MASTER_LOG_FILE='masterbin.000001,MASTER_LOG_POS=100;

之后针对该二进制文件进行基于位置点的恢复

mysqlbinlog    --start-position=100  /path/to/log/master-bin.000001  | mysql -h127.0.0.1 -usystem -P3306 -p

1.3 恢复至最新状态

如果损坏数据库的二进制文件还存在,则可利用其进行恢复

假设周五零点到九点的二进制文件为mysql-bin.000006 mysql-bin.000007 则可以使用如下命令

shell> mysqlbinlog mysql-bin.000006  mysql-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p

1.3.1 基于时间点恢复

这里我们同样可以恢复到早上8点

首先使用mysqlbinglog查看早上8点在哪个二进制文件中

这里假设在mysql-bin.000007 中

之后用如下语句恢复

mysqlbinlog   --stop-datetime ="2019-04-16 08:00:00"  /path/to/log/master-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p

也可以指定起始时间

mysqlbinlog  --start-datetime="2019-04-16 08:00:00"   /path/to/log/master-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p

1.3.2 基于事件位置恢复

我们同样可以通过事件的位置来进行恢复

我们假设一个drop表的操作发生在master-bin.000007的位置100处

我们可以使用下面语句

mysqlbinlog    --stop-position=100  /path/to/log/master-bin.000001  | mysql -h127.0.0.1 -usystem -P3306 -p

2. 参考链接

https://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html

好了 今天的内容就说到这里,下节再见

本文分享自微信公众号 - 宅必备(gh_bc574e49c720)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL Galera Cluster全解析 Part 5 Galera Cluster软件安装

    MySQL Galera Clusters全解析 Part 1 Galera Cluster 简介

    bsbforever
  • MySQL 5.7 常用命令

    $ mysql -uroot -p mysql>set password=password('your_passord');

    bsbforever
  • mysqlbinlog命令详解MySQL 5.7 常用命令

    $ mysql -uroot -p mysql>set password=password('your_passord');

    bsbforever
  • java基础学习_集合类03_用户登录注册案例(集合版)、Set集合、Collection集合总结_day17总结

    ============================================================================= ==...

    黑泽君
  • Leetcode 213 House Robber II

    Note: This is an extension of House Robber. After robbing those houses on that...

    triplebee
  • Leetcode 198 House Robber

    You are a professional robber planning to rob houses along a street. Each house...

    triplebee
  • 数据挖掘的九大定律

    用户1756920
  • Big Switch推出下一代监控和数据中心交换架构 加速SDN网络转型

    SANTA CLARA,CA(2016年6月22日)- Big Switch Networks®,给全球带来超大设计灵感的网络数据中心领导者,今天宣布其基于SD...

    SDNLAB
  • 2020诺奖预测出炉!“引文桂冠”奖公布,清华校友戴宏杰入选

    9 月 23 日,拥有 Web of Science、InCites 等著名论文及期刊索引平台的科睿唯安公司(Clarivate Analytics)宣布了 2...

    科研菌
  • 论文阅读!kaggle比赛第一名--肺癌自动诊断系统

    但目前大多数的研究主要集中于第一步,以及通过肺结节诊断肺癌存在较高的假阳性率。因此,肺癌的诊断需要对每个可疑结节进行细致分析,再联合所有结节信息进行定性诊断。针...

    朱晓霞

扫码关注云+社区

领取腾讯云代金券