用mysqldump备份及结合binlog日志恢复的全过程

2023-11-09

1、查看更新备份时的数据

mysql> select * from t1;

+------+

| id   |

+------+

|    1 |

|    2 |

|    3 |

+------+

 

2、因为我的存储引擎是Myisam ,为了保证数据的一直我加了参数 –l 备份时不能对数据更新,如果是innodb引擎加参数 –single-transcation 即能保证数据一直性,有可以对数据更新-F 表示生成新的日志文件

# /usr/local/mysql/bin/mysqldump -uroot -p123456 -l -F data1 > data1.sql

 

3、备份后,对数据更新

mysql> insert into t1 values(4),(5),(6),(7);

mysql> select * from t1;

+------+

| id   |

+------+

|    1 |

|    2 |

|    3 |

|    4 |

|    5 |

|    6 |

|    7 |

+------+

 

4

数据恢复时禁止binlog日志

# /usr/local/mysql/bin/mysql -uroot -p123456 -e "set global sql_log_bin=0"

 

# /usr/local/mysql/bin/mysql -uroot -p123456 -e "show global variables like 'sql_log_bin'\G"

*************************** 1. row ***************************

Variable_name: sql_log_bin

        Value: OFF

 

5# /usr/local/mysql/bin/mysql -uroot -p123456 data1 < data1.sql

 mysql> select * from t1;

+------+

| id   |

+------+

|    1 |

|    2 |

|    3 |

+------+

 

6

mysqlbinglog恢复自mysqldump备份以来的binglog日志(不一定只有一个binlog日志)

/usr/local/mysql/bin/mysqlbinlog binlog.000028|/usr/local/mysql/bin/mysql -uroot -p123456  data1

 

mysql> select * from t1;

+------+

| id   |

+------+

|    1 |

|    2 |

|    3 |

|    4 |

|    5 |

|    6 |

|    7 |

+------+

7 rows in set (0.00 sec)

 

7、开启binglog日志功能

 

# /usr/local/mysql/bin/mysql -uroot -p123456 -e "set global sql_log_bin=1"

# /usr/local/mysql/bin/mysql -uroot -p123456 -e "show global variables like 'sql_log_bin'\G"

*************************** 1. row ***************************

Variable_name: sql_log_bin

        Value: ON


   备份情况举例说明:

周一(2010.11.15)凌晨5点进行了数据库的全备,文件名为:all_bak.sql。全备文件中记录的日志位置是:MASTER_LOG_FILE='mysql-bin.000023', MASTER_LOG_POS=364; 自全备以来产生了3个新的日志文件,分别为mysql-bin.000024mysql-bin.000025mysql-bin.000026。其中三个增量日志的最后写入时间分别是上午10点,下午2点与下午6点。

5.1  恢复到某一时间点(可以结合开始位置,结束时间的方式)。

晚上发现中午1210分左右由于问题使得1210分以后的数据错乱,需要恢复之前数据。全备文件与增量备份文件完整。

(1)故障停机后,全备数据库

(2)恢复全备文件

mysql -uroot -proot test1

(3)恢复全备以来的增量日志文件到1210分结束

 mysqlbinlog --no-defaults mysql-bin.000023 mysql-bin.000024 mysql-bin.000025  --start-position=364 --stop-datetime='2010-11-15 12:10:00' |mysql -uroot -proot

(4)抽查数据,开服务测试

5.2  跳过某一破坏性语句的恢复

晚上时发现下午有误删除了数据库中的一些数据,知道删除的命令和大概时间(下午4点左右),此时需要恢复出误删除的那部分数据。

(1)故障停机后,全备数据库

(2)恢复全备文件

mysql -uroot -proot test1

(3)依删除命令和大概时间在mysql-bin.000026中找出删除命令的开始和结束位置号。例如:6678 6691

(4)恢复增量日志到删除命令开始的位置号。

mysqlbinlog --no-defaults mysql-bin.000023 mysql-bin.000024 mysql-bin.000025  mysql-bin.000026 --start-position=364 --stop-position=6678 |mysql -uroot -proot

(5)从删除命令的结束位置号开始恢复剩余的数据。

mysqlbinlog --no-defaults mysql-bin.000026 --start-position=6691|mysql -uroot -proot

(6)抽查数据,开服务测试

 

5.3  基于某个数据库的增量恢复

在同一台服务器上运行了多个数据库,可以分开全备数据库,但是增量日志是统一写在一起。所以当单个数据库故障时会对单个数据库进行恢复操作,而其他的数据库不允许停机。

(1)停止故障数据库对应服务,全备数据库

(2)恢复全备文件

mysql -uroot -proot test1

(3)恢复故障数据库对应的增量日志部分。

mysqlbinlog --no-defaults mysql-bin.000023 mysql-bin.000024 mysql-bin.000025  mysql-bin.000026 --start-position=364 --database=test1 |mysql -uroot -proot

 

备份数据恢复测试

定期对备份数据进行恢复测试,以抽查验证数据有效性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用mysqldump备份及结合binlog日志恢复的全过程 的相关文章

随机推荐

  • 使用jpa插入数据报错“could not execute statement; SQL [n/a];nested exception.DataException

    前言 在写开始采集接口 用swagger测试时 报了一个这样的错 使用jpa插入数据报错 could not execute statement SQL n a nested exception DataException 这个错误网上找了
  • 2020年研究生数学建模竞赛总结复盘

    文章目录 一 前言 二 赛题选择 三 做题思路 问题一 数据清洗 问题二 数据降维 问题三 建模预测 问题四 分析模型预测结果与实际值 问题五 可视化 四 总结 五 结果 三等奖 一 前言 今天是2020年研究生数学建模竞赛的最后一天 今早
  • git deamon 一个简单的git服务器

    git deamon 一个简单的git服务器 一 Git daemon 二 操作 三 参考 四 总结 一 Git daemon Git daemon是一个简单的git仓库服务器 可以用来共享局域网的本地仓库 二 操作 以下示例A电脑共享gi
  • 使用BindingList实现DataGridView的动态绑定

    在DataGridView数据绑定时使用BindingSource中转可以起到很好的控制DataGridView
  • 指针基础(2)【数组与指针】

    文章目录 写在前面 1 数组概述 1 1 一维数组 1 2 二维数组 1 3 多维数组 1 4 小结 2 C 中 vector 容器 2 1 定义和初始化 vector 对象 2 2 向 vector 对象中增加元素 2 3 vector
  • MQTT异常断开

    MQTT异常断开 讨论一下TCP链路的影响 MQTT异常断开 TCP链路原因的几种情况 三种情况 1 客户端发送了心跳请求 但是MQTT代理服务器Broker没有收到心跳请求 所以也不会回复客户端心跳响应 MQTT代理服务器Broker在
  • 前端 115道 面试题总结【持续更新...】

    前端面试题 1 说说你对useEffect的理解 可以模拟哪些生命周期 2 说说Real DOM和Virtual DOM的区别 优缺点 3 说说React中setState和replaceState的区别 4 说说React生命周期有哪些不
  • Web 开发中 20 个很有用的 CSS 库

    http www oschina net translate css libraries for developers
  • Android 开机加速优化

    文章目录 Android 开机加速优化 关闭BootLoader的企鹅 关闭开机动画Android 关闭锁屏 删除预装APP 查看预装APP 删除编译生成的APK 不编译APK 1 统一配置 2 修改单个APK的Android mk 谷歌A
  • 2022年5月计划(UE4视频教程+osgearth源码调试+ogreRenderSystem源码抄写)

    按照年度计划走就可以了 五一期间突击完了ue4第七套视频教程 客户端差不多了 各项终于达到什么都会 什么都不精了 没有短板 也没有长处 平衡进行就行了 包括久违的渲染 也可以引进了 以前如果单单干渲染是不行的 毕竟这种工作少 还要会引擎架构
  • springboot集成dubbo(详细配置)

    前言 首先要搭建zookeeper环境并启动 可参照window下搭建zookeeper 半生归来仍少年的博客 CSDN博客 dubbo管理平台搭建 下载 dubbo admin 2 5 8 war 互联网文档类资源 CSDN下载 放到to
  • 编译 java_如何编译java

    展开全部 用命令32313133353236313431303231363533e58685e5aeb931333337613139提示符编译java程序的步骤 1 先新建文本文档 输入自己的java程序 这里我写一个简单的java程序 来
  • 计算机网络arp表作用,arp映射表是什么?有什么作用

    在如今每一天的生活中大家都需要有网络的陪伴 相比于手机的4G流量和无线网卡 大家更钟爱于wifi 因为它能够更加方便的使用 可是在我们刚刚购买或者安装路由器的时候也会遇到很多的难题 比如说什么是arp arp映射表有什么作用 接下来就让我们
  • 关于医学影像中的轴位面(横断面)、冠状面、矢状面

    冠状位矢状位轴位图解 第1页 概述 该页主题为冠状位矢状位轴位图解的图片集 内容包含有冠状位 矢状位 横断位具体怎么辨别 谢谢 ct 解剖 颞骨大体解剖 轴位及冠状位ct断层图像 解剖 颞骨大体解剖 轴位及冠状位ct断层图像 图1 a 矢状
  • vue制作幻灯片时涉及的transition动画(动图)

    幻灯片使用频率很高 就是各个网站的轮播大图 为了使图片更加平滑的过渡 就考虑给幻灯片加上transition动画 先看实现的效果 然后再分析动画原理 上图可以看出 幻灯片是慢慢的滑出来 而不是一下一下的跳出来 1 transition动画原
  • 前端面试--大众点评

    学习了这么久 第一次面试前端 虽然只是电话面试 但是还是很紧张 主要问题 1 介绍你的项目 2 html的状态 3html5新增加的标签 4 css的display none和visibility区别 5 怎么清除浮动 6 jquery的选
  • 【TensorFlow 入门】7、定义图变量的方法

    1 tf Variable tf Variable init initial value trainable True collections None validate shape True name None 参数名称 参数类型 参数含
  • DNS服务器列表

    Public DNS IPv4 地址 首选 119 29 29 29 AliDNS 阿里公共 DNS IPv4 地址 首选 223 5 5 5 备用 223 6 6 6 114 DNS 常规公共 DNS 干净无劫持 首选 114 114 1
  • SpringCloud---Sentinel

    文章目录 限流 sentinel使用环境搭建 设置限流 默认直接模式 关联模式 链路模式 关闭URL PATH聚合 熔断 降级 设置模拟环境 满调用比例规则 Sentinel 异常处理模式 异常处理 自定义异常处理 热点 测试热点环境搭建
  • 用mysqldump备份及结合binlog日志恢复的全过程

    1 查看更新备份时的数据 mysql gt select from t1 id 1 2 3 2 因为我的存储引擎是Myisam 为了保证数据的一直我加了参数 l 备份时不能对数据更新 如果是innodb引擎加参数 single transc