概述

今天主要模拟一下数据库故障,并恢复到故障前一秒。

1、需求

模拟生产数据库故障,恢复到故障前一秒

2、场景

有一份初始备份和后面的binlog,早上9点故障,然后直接拿所有的备份和binlog到另外一台服务器做恢复,按备份文件和备份文件记录的位置+最后8.59分的时间之间的binlog恢复。

一、环境准备

1、备份数据库

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 LOCK
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
SHOW MASTER STATUS  -- 这一步就是取出 binlog index and position
UNLOCK TABLES
...dump...

如果需要binlog信息则使用 master_data;
如果不想阻塞同时表是innodb引擎可使用 single_transaction 取得一致性快照(取出的数据是导出开始时刻事务点的状态)
如果表不支持多版本特性,则只能使用 lock-all-tables 阻塞方式来保证一致性的导出数据。

2、向表中插入数据

show master status\G;
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="2019-09-11 16:00:00"   -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

五、验证

select * from tb1;

到此数据成功全部恢复!

记一次MySQL数据库备份恢复演练实验相关推荐

  1. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  2. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  3. MySQL用户管理、常用SQL语句、MySQL数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  4. 2.5.1 MySQL数据库备份恢复基础讲解

    MySQL数据库备份恢复基础 MySQL常见的故障类型 对于用户来说,数据库中保存的数据通常至关重要,所以要采取各种手段来防止各种可能的数据损失和数据故障. DBA主要任务就是维持数据库的高可靠性运行 ...

  5. 13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复

    扩展 : SQL语句教程 http://www.runoob.com/sql/sql-tutorial.html 什么是事务?事务的特性有哪些? http://blog.csdn.net/yenang ...

  6. 52次课(mysql用户管理、常用sql语句、 mysql数据库备份恢复)

    MySQL创建用户以及授权 默认用户是root用户,不可能所有人员都用root用户,创建用户防止误删除,因为mysql里边有多个库每个库里有很多表,所以需要给单独的用户做一些授权我只需要它对某一个数据 ...

  7. 13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  8. mysql 恢复数据库乱码了_再谈MySQL数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  9. mysql 数据库备份 乱码_再谈 MySQL 数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

最新文章

  1. 库存事务处理现有量检查
  2. Redis详解(八)------ 主从复制
  3. python自动化办公培训排名-盘点使用Python进行自动化办公所需要的知识点
  4. 基于发电厂知识问答库的检索式问答系统(python有代码)
  5. 【UEditor】自定义插件:按钮
  6. 工业交换机如何判断性能的好坏呢?
  7. 大数据是应对安全形势的进攻武器
  8. 帮管客CRM客户管理系统
  9. tesseract 提升 速度_2020斗式提升机料斗呼伦贝尔厂家定制哪家好
  10. IT餐馆—第四回 离职
  11. np.vstack与np.newaxis的含义
  12. java 汉字拼音排序_Java汉字排序(2)按拼音排序
  13. 双手无法敲代码的程序员,该如何编程?
  14. win7查看硬盘序列号
  15. Azure PaaS服务密钥的安全性
  16. Atitit.js的键盘按键事件捆绑and事件调度
  17. Textbox的用法
  18. 【181129】VC++ 屏幕截取(窗口截图、选区截图)、屏幕拾色器、放大镜源代码
  19. 咖说丨去中心化借贷的逻辑和商业基础
  20. selenium-模拟登录QQ空间(附模拟滑动验证码)

热门文章

  1. 小试牛刀 --- Tinker集成教程
  2. 三、Spring Cloud Alibaba—nacos部署和服务发现
  3. VS解决方案资源管理器中有多个项目如何设置单独启动
  4. 陈强《计量经济学及Stata应用》学习笔记——持续更新
  5. PLC可以连接哪些工业设备实现远距离无线通讯?工业网关可以吗?
  6. linux驱动学习笔记(三)阻塞与非阻塞IO
  7. 【数据结构与算法】高级排序(希尔排序、归并排序、快速排序)完整思路,并用代码封装排序函数
  8. 薪酬体系怎么设计?详解HR薪酬体系设计的方法、步骤与工具
  9. Qt快捷键字符串映射表
  10. 【word2vec】Distributed Representation——词向量