模拟定时任务周日备份数据,周一数据变化,周一crontab定时任务增量备份,周二数据变化,周二crontabl增量备份,然后有人删库,我们进行恢复数据

  1. 模拟crontab 里的定时任务周日全备

[root@db01 b]#innobackupex --user=root --password=oldboy123 --no-timestamp /b/full

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000028 | 55042 | | | |

+------------------+----------+--------------+------------------+-------------------+

  1. 模拟周一数据变化

mysql> create table city1 select * from city;

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000028 | 188930 | | | |

+------------------+----------+--------------+------------------+-------------------+

  1. 执行crontabl周一增量备份

[root@db01 b]#innobackupex --user=root --password=oldboy123 --no-timestamp --incremental --incremental-basedir=/b/full /b/inc1

[root@db01 b]#cat /b/full/xtrabackup_checkpoints /b/inc1/xtrabackup_checkpoints

  1. 再次数据变化

mysql> create table world.city2 select * from world.city;

  1. 模拟周二增量备份

[root@db01 backup]#innobackupex --user=root --password=oldboy123 --no-timestamp --incremental --incremental-basedir=/b/周一增量路径 /b/周二增量路径

[root@db01 backup]#innobackupex --user=root --password=oldboy123 --no-timestamp --incremental --incremental-basedir=/b/inc1 /b/inc2

  1. 全备,第一次增量,和第二次增量 3个点都接上才能恢复数据

  1. 删除mysqldata目录

[root@db01 ~]#rm -fr /application/mysql/data/*

[root@db01 ~]#pkill mysql

  1. 数据进行恢复

  2. 恢复数据注意事项:

1 增量备份是不能直接恢复使用,必须要把所有增量合并到同一个全备中,最后进行一次恢复,会读ch文件自动的接到一起, 才能恢复增量(不像别的产品,恢复增量要依次恢复增量),

  1. 在合并过程中,顺便进行备份的准备,(apply-log),在准备过程中,只有最后一次合并增量redo和undo都应用,中间合并过程只应用redo,只进行前滚,不做回滚,防止lsn号接不上
  2. 全备准备

--apply-log 回滚和前滚

-- redo-only 之前滚

(只对redo进行应用,就是前滚,因为是热备,有的数据没有提交,innobackup把redo一并备份了.所以要做redo前滚)

[root@db01 ~]#innobackupex --apply-log --redo-only /backup/full

  1. 把第一次增量合并到全备

合并inc1合并到full中,并且apply-log,只应用redo,不应用undo

--incremental-dir 指定要合并的增量备份路径

[root@db01 b]#innobackupex --user=root --password=oldboy123 --apply-log --redo-only --incremental-dir=/b/inc1 /b/full

  1. 第二次增量备份合并到全备

合并inc2合并到full中,redo和undo都应用

[root@db01 b]#innobackupex --user=root --password=oldboy123 --apply-log --incremental-dir=/b/inc2 /b/full

  1. 最后一次进行备份准备

整体full执行apply-log,redo和undo都应用

[root@db01 b]#innobackupex --apply-log /b/full

  1. 授权重启

[root@db01 /]#chown - R mysql.mysql /application/mysql/data/

[root@db01 /]#/etc/init.d/mysqld start

xtrbackup备份,及恢复数据的更多相关文章

  1. MySql在生产环境中是用mysqldump还是xtrabackup备份和恢复数据

    如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定. 之前我在维护mysql数据库的时候 ...

  2. mysql学习(4)-mysqldump备份和恢复数据

    背景 最近在公司做数据迁移方面的工作,使用mysql数据库在测试环境模拟数据迁移,在迁移测试的过程中需要做数据备份和恢复 mysql数据备份和恢复比较简单,可以选择mysqldump工具,这里简单提一 ...

  3. postgresql批量备份和恢复数据表

    备份数据库:pg_dump -h localhost -U root demo02 > /home/arno/dumps/demo02.bak 恢复数据库:psql -h localhost - ...

  4. 使用mongodump及mongorestore备份及恢复数据

    mongodump及mongorestore是用于备份和恢复mongodb数据库的两个命令,位于mongodb安装目录的bin文件夹下. mongodump导出的备份文件为二进制格式,每一个文档的对应 ...

  5. PostgreSQL备份和恢复数据表

    备份数据表: pg_dump -U user_name db_name -t table_name -f /tmp/backup_file.suffix 恢复数据表: 方法1: 登录数据库:\i /t ...

  6. MySQL 备份和恢复数据

    备份指定数据库的全部表或指定表 mysqldump -u user -h localhost -p [password] db_name[ tbl_name[,tbl_name.......]]> ...

  7. mysql导入导出数据,备份,恢复数据

    MYSQL 实现导入数据 .备份和恢复数据库 1.使用msql命令导入数据 # mysql -uroot -p 需要选择一个数据库 < runoob.sql #mysql -u username ...

  8. xtrabackup备份和恢复数据脚本

    该脚本用于备份和恢复MySQL数据库. 总结xtrabackup备份的两个坑: 1.在恢复数据的过程中,如果中途出错,则数据将会被破坏,后续很难再恢复. 2.在恢复过程中,如果版本过低,在准备全量数据 ...

  9. Confluence 6 从其他备份中恢复数据

    一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复. 如果你在恢复压缩的 XML 备份的时候遇 ...

随机推荐

  1. Linux下tar的安装方式

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  2. Python技术点

    调试过程中遇到的问题,继上一篇博文! (1)爬取第一个页面之后名字链接页面存在分页情况 解决方案:根据子网页,选择合适的正则表达式,获取页面数,根据页面数自动生成换页URL (2)测试过程中某些网页数 ...

  3. Emiya 家今天的饭

    \(dp_{i,j,k}\)表示前\(i\)种烹饪方法,假设最多的是食材\(j\),食材\(j\)比其他食材多\(k\)次出现 其中\(i \in [1,n],j \in [1,m],k \in [- ...

  4. 【LOJ523】[LibreOJ β Round #3]绯色 IOI(悬念)(霍尔定理_基环树)

    题目 LOJ523 官方题解 分析 由于某些原因,以下用「左侧点」和「右侧点」分别代替题目中的「妹子」和「男生」. 根据题意,显然能得出一个左侧点只能向一个或两个右侧点连边.这似乎启发我们把左侧点不看 ...

  5. Linux crontab 查看所有用户的crontab任务

    查看所有用户的crontab任务 - mlzhu007的专栏 - CSDN博客 https://blog.csdn.net/mlzhu007/article/details/81662091 以roo ...

  6. Python代码约定

    建议遵守以下约定: 使用 4 个空格来缩进 永远不要混用空格和制表符 在函数之间空一行 在类之间空两行 字典,列表,元组以及参数列表中,在 , 后添加一个空格.对于字典,: 后面也添加一个空格 在赋值 ...

  7. Django框架(十)--ORM多对多关联关系三种创建方式、form组件

    多对多的三种创建方式 1.全自动(就是平常我们创建表多对多关系的方式) class Book(models.Model): title = models.CharField(max_length=32 ...

  8. Python入门 常量 注释 基础数据类型 用户输入 流程控制

    Python入门 一.常量 在Python中,不像其他语言有绝对的常量,修改会报错,在Python中有个约定俗成的规定--常量就是将变量名大写. 尽量保持不更改的一种量 , 这个常量有是干什么的呢 其 ...

  9. 查询abap 程式应用到系统表table

    *&---------------------------------------------------------------------* *& Report ZMM_TEXT ...

  10. OracleVM桥接网卡无法获取本地连接网卡

    问题现象 VM虚拟机采用桥接网卡时,界面名称为"未指定",无法获取本地连接对应网卡信息: 处理方式: 进入本地连接,选择本地连接右键进入属性设置窗口; 选择安装,单击服务选项后点击 ...