centos7恢复mysql数据库_一文看懂mysql数据库备份恢复演练
概述
需求:模拟生产数据库故障,恢复到故障前一秒
场景:有一份初始备份和后面的binlog,早上9点故障,然后直接拿所有的备份和binlog到另外一台服务器做恢复,按备份文件和备份文件记录的位置+最后8.59分的时间之间的binlog恢复。
下面使用mysqldump+binlog来测试备份与恢复。
一、环境准备
1、备份数据库(数据库实例为test)
mysqldump -u root -p test --single_transaction --flush-logs --master-data=2 > /backup/test-`date +"%Y%m%d-%H%M%S"`.sql;
说明:
当master_data和 single_transaction 同时使用时,先加全局读锁,然后设置事务一致性和使用一致性快照开始事务,然后马上就取消锁,然后执行导出。过程如下
FLUSH TABLES WITH READ LOCKSET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READSTART TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */SHOW MASTER STATUS -- 这一步就是取出 binlog index and positionUNLOCK TABLES...dump...
如果需要binlog信息则使用 master_data;
如果不想阻塞同时表是innodb引擎可使用 single_transaction 取得一致性快照(取出的数据是导出开始时刻事务点的状态)
如果表不支持多版本特性,则只能使用 lock-all-tables 阻塞方式来保证一致性的导出数据。
2、向表中插入数据
show master statusG;use test;create table tb1(id int);insert into tb1 values (10),(20),(30);select * from tb1;
二、模拟故障
1、继续插入数据,在有备份的情况下删除数据库,模拟误操作
use test;insert into tb1 values (40),(50);drop database test;show databases;
此时查看数据库发现test库就没有了。
三、恢复前准备
1、查看binlog
获取备份文件和故障前最新的binlog
mysqlbinlog --base64-output=decode-rows -v --start-datetime="2019-09-11 15:00:00" --stop-datetime="2019-09-11 16:00:00" mysql-bin.000005
说明:配置文件使用了binlog_format= row,查看数据库binlog内容时候就看不到增删改查的具体语句,都是经过64位编码转换后的内容,所以需要加参数--base64-output=decode-rows转换。
2、导出故障前的binlog日志并输出为sql文件
mysqlbinlog --start-position=154 --stop-position=10189 -d test mysql-bin.000005 > /backup/binlog-`date +"%Y%m%d-%H%M%S"`.sql
也可以用初始位置+最后时间来恢复:
mysqlbinlog --start-position=154 --stop-datetime="xxx" -d test mysql-bin.000005 > /backup/binlog-`date +"%Y%m%d-%H%M%S"`.sql
四、开始恢复
导入之前的所有备份文件及binlog文件
mysql -uroot -p test < /backup/test-20190911-153754.sql mysql -uroot -p test < /backup/binlog-20190911-171045.sql
五、验证
到此数据成功全部恢复!
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
centos7恢复mysql数据库_一文看懂mysql数据库备份恢复演练相关推荐
- mysql删除分表键_一文看懂 MySQL 分区和分表,提高表增删改查效率
原标题:一文看懂 MySQL 分区和分表,提高表增删改查效率 作者:冯帅,精通Oracle. MySQL. 擅长异构数据库数据同步及迁移.数据库的设计和调优,对高可用方案有深入研究. MySQL分区和 ...
- mysql xa 和普通事务_一文看懂MySQL中基于XA实现的分布式事务
概述 前面已经介绍了2PC和3PC方面的内容,那么MySQL数据库在分布式事务这块又是怎么规划呢? XA事务简介 XA 事务的基础是两阶段提交协议.需要有一个事务协调者来保证所有的事务参与者都完成了准 ...
- mysql 缓冲池监控_一文看懂mysql数据库监控指标--缓冲池使用情况
如果你的数据库运行缓慢,或者出于某种原因无法响应查询,技术栈中每个依赖数据库的组件都会遭受性能问题.为了保证数据库的平稳运行,你可以主动监控以下这个与性能及资源利用率相关的指标:缓冲池使用情况. 缓冲 ...
- mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程、函数、视图、触发器、表...
概述 抽空总结一下mysql的一些概念性内容,涉及存储过程.函数.视图.触发器等. 一.查看存储过程.函数.视图.触发器.表 1.存储过程 select * from mysql.proc where ...
- lepus监控oracle数据库_一文看懂lepus天兔数据库监控系统如何搭建
概述 前面框架搭好后,这里就可以开始部署lepus了,下面一起来看看吧~ 1.安装Lepus采集器 1.下载软件安装包 # cd /usr/local # git clone https://gith ...
- centos7执行sh文件_一文看懂centos7如何管理自定义脚本服务
概述 centos6如果要添加自定义脚本服务只需要把脚本放到/etc/init.d然后授权后用chkconfig添加后就可以管理了,那么centos7又是怎么添加自定义脚本服务呢? CentOS7添加 ...
- oracle组合索引失效_一文看懂Oracle数据库的三大索引类型
概述 今天主要介绍Oracle数据库的三大索引类型,仅供参考. 一.B-Tree索引 三大特点:高度较低.存储列值.结构有序 1.1利用索引特性进行优化 外键上建立索引:不但可以提升查询效率,而且可以 ...
- mysql 同步复制 半同步复制_一文看懂MySQL的异步复制、全同步复制与半同步复制...
今天主要聊一下MySQL的异步复制.全同步复制与半同步复制,目前我们生产库实际上用的就是异步复制了,后面再转成半同步复制. 一.MYSQL复制架构衍生史 在2000年,MySQL 3.23.15版本引 ...
- java读取mysql配置文件_一文读懂 MySQL 主从复制读写分离
文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary 前言 在很多项目,特别是互联网项目,在使用MySQL时都会采用主从复 ...
- 一文看懂Mysql锁
一文看懂Mysql锁 Mysql锁 Mysql锁的分类 从性能上 从操作类型上 从锁的粒度上 死锁 死锁的四个条件 死锁的验证 死锁的避免 总结 Mysql锁 既然说到了Mysql锁,那么什么是Mys ...
最新文章
- 要成为一个成熟的软件工程师不容易啊
- 面试经典书籍--程序员面试宝典
- c# 运算符 ? ??
- 熊仔科技Steamduino PIC18F46J50主控板 部分原理图
- HDU 5536 字典树
- js使用的一些实用技巧
- 三菱gx works2安装教程(详细超安装方法步骤)
- Unity3D开发之制作序列帧动画
- 花了一年时间开发的YBC管型三维预览控件
- 语言-汉语-官话-中原官话-兖菏片:兖菏片
- MLY -- 6.Your dev and test sets should come from the same distribution
- C程序设计-清览题库
- 【C语言】寻找隐藏字母游戏
- Column 'parent_id' specified twice问题解决--insertable = false, updatable = false的使用
- 【数字系统】简单逻辑电路设计:与非门/逻辑门 Quartus II 环境/Verilog 语言/编程+仿真+开发板/FPGA/CPLD/EDA
- [数据结构]线性表——顺序存储
- 机器学习数据挖掘-软件、网站、课程资源知识点汇总
- SC系列(SC-12S)低频率小型SMD石英晶振SC-12S32.768KHZ12.5PF/20PPM
- 河北单招计算机的考试试题,河北单招试题
- 关于IT公司招聘的一个思考
热门文章
- Cannot use a leading .. to exit above the top directory
- 第12章 决策树 学习笔记上
- Atitit 存储引擎核心技术 总结目录1. 表的存储有三个文件:结构+数据+索引 12. 页式管理
- Atitit 自然语言处理(NLP)的应用 与 搜索引擎 目录 1.1. 搜索引擎并不是自然语言处理(NLP)的唯一应用。	2 1.2. NLP的应用	2 1.3. 社交网站信息流,	2 1.4.
- atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较
- ubuntu:磁盘清理
- 拒绝外部投资、融资及收购,Epic是如何成为美国电子病历“一姐”的?
- 你得真心喜欢些什么,才能过好漫长的冬天
- 不懂投资的基金会计不是好的产品经理
- 阿里云正式发布云原生人才培养合作计划