模拟定时任务周日备份数据,周一数据变化,周一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. os.environ详解

    我们想要用Python获得一些有关系统的各种信息的时候就不得不想到os的environ,那这里面都具体包含了那些内容呢? 简介 对于官方的解释,environ是一个字符串所对应环境的映像对象.这是什么 ...

  2. RestHighLevelClient查询es

    本篇分享的是es官网推荐的es客户端组件RestHighLevelClient的使用,其封装了操作es的crud方法,底层原理就是模拟各种es需要的请求,如put,delete,get等方式:本篇主要 ...

  3. Embarcadero Delphi 7 Lite 7.0.4.453 中文版

    https://www.7down.com/soft/116014.html 软件介绍 Embarcadero Delphi 7精简版 是Windows平台下著名的快速应用程序开发工具(Rapid A ...

  4. ASP.NET Core 中间件Diagnostics使用 异常和错误信息

    ASP.NET Core 中间件(Middleware)Diagnostics使用.对于中间件的介绍可以查看之前的文章ASP.NET Core 开发-中间件(Middleware). Diagnost ...

  5. jquery监听回车

    jquery监听回车 <pre> $("#loginusername, #loginpassword, #code").keydown(function() { if( ...

  6. Install Teamviewer on 14.04? [repost]

    Ref: http://askubuntu.com/questions/453157/how-to-install-teamviewer-on-14-04 TeamViewer 是一款优秀的跨平台免费 ...

  7. PHP7之Trait详解

    转自: https://www.jianshu.com/p/fc053b2d7fd1 php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait ...

  8. Graph machine learning 工具

    OGB: Open Graph Benchmark https://ogb.stanford.edu/ https://github.com/snap-stanford/ogb OGB is a co ...

  9. 【转帖】HBase基本概念与基本使用

    HBase基本概念与基本使用 https://www.cnblogs.com/swordfall/p/8737328.html 分类: HBase undefined 1. HBase简介 1.1 什 ...

  10. (谷歌浏览器)前端以FormData类形成表单(含文件),通过ajax提交,PHP后端$_POST数组为空

    [错误信息] PHP获取不到前端发来的POST数据 [前端代码] [HTTP请求] [后端报错]