shell_innobackup增量备份步骤
alias start='service mysql.server start'
alias restart='service mysql.server restart'
alias stop='service mysql.server stop'
alias kill='pkill -9 mysqld'
一、全库备份
[root@mysql01 ~]# innobackupex --user=admin /xtrabackup_full/
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db01 |
| db02 |
| db03 |
| mysql |
| performance_schema |
| test |
+--------------------+
7 rows in set (0.15 sec)
二、全备后数据库更改操作
mysql> drop database db02;
Query OK, 1 row affected (0.38 sec)
mysql> use db03
mysql> show tables;
+----------------+
| Tables_in_db03 |
+----------------+
| t1 |
+----------------+
1 row in set (0.00 sec)
mysql> select * from t1;
+------+-------+
| id | name |
+------+-------+
| 1 | harry |
| 2 | tom |
+------+-------+
2 rows in set (0.01 sec)
mysql> insert into t1 values(3,'jack');
Query OK, 1 row affected (0.01 sec)
mysql> update t1 set name='lisi' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from t1;
+------+------+
| id | name |
+------+------+
| 1 | lisi |
| 2 | tom |
| 3 | jack |
+------+------+
3 rows in set (0.00 sec)
三、增量备份1
[root@mysql01 ~]# innobackupex --user=admin --incremental /xtrabackup_incremental/ --incremental-basedir=/xtrabackup_full/2018-08-05_10-46-26/
四、增备1后数据库更改操作
mysql> create database db04;
Query OK, 1 row affected (0.00 sec)
mysql> create table db04.t1(id int,name varchar(10));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into db04.t1 values(11,'MissHou');
Query OK, 1 row affected (0.00 sec)
mysql> select * from db04.t1;
+------+---------+
| id | name |
+------+---------+
| 11 | MissHou |
+------+---------+
1 row in set (0.10 sec)
五、增量备份2
[root@mysql01 ~]# innobackupex --user=admin --incremental /xtrabackup_incremental/ --incremental-basedir=/xtrabackup_incremental/2018-08-05_11-08-50/
六、增量备份2后数据库更改操作
mysql> insert into db04.t1 values(12,'Mona');
Query OK, 1 row affected (0.01 sec)
mysql> select * from db04.t1;
+------+---------+
| id | name |
+------+---------+
| 11 | MissHou |
| 12 | Mona |
+------+---------+
2 rows in set (0.00 sec)
总结说明:
1.如果数据库在第2次增量备份后发生故障,那么数据恢复时只能够使用xtrabackup全量备份+xtrabackup增量备份恢复到第2次增量的点
2.如果要将数据库恢复到最新状态,需要结合binlog日志恢复
3.以上全量和增量的备份集是不能用的,需要将xtrabackup_log应用到全量的备份集中才有效
七、应用所有日志到全量备份集中
注意:
1). 除了最后一次增量备份应用日志可以不加--redo-only外,其他都要加;
只应用已经提交的事务,不回滚未提交的事务!!!
2). 应用日志到全量备份集中时一定要严格按照时间顺序执行,否则无效!
1. 应用全量备份日志xtrabackup_log到全量备份集中
[root@mysql01 ~]# innobackupex --apply-log --redo-only /xtrabackup_full/2018-08-05_10-46-26/
2. 应该第一增量备份日志到全量备份集中
[root@mysql01 xtrabackup_incremental]# pwd
/xtrabackup_incremental
[root@mysql01 xtrabackup_incremental]# ll
total 0
drwxr-x--- 7 root root 252 Aug 5 11:08 2018-08-05_11-08-50
drwxr-x--- 8 root root 264 Aug 5 11:12 2018-08-05_11-12-26
[root@mysql01 ~]# innobackupex --apply-log --redo-only /xtrabackup_full/2018-08-05_10-46-26/ --incremental-dir=/xtrabackup_incremental/2018-08-05_11-08-50/
3. 应用第二次增量备份日志到全量备份集中
注意:我这里没有加--redo-only
[root@mysql01 ~]# innobackupex --apply-log /xtrabackup_full/2018-08-05_10-46-26/ --incremental-dir=/xtrabackup_incremental/2018-08-05_11-12-26/
注意说明:
如果最后一次应用日志时没有加--redo-only那么以下操作可以省略;如果最后一次加了,可以使用以下语句进行回滚操作,回滚未提交的事务:
[root@mysql01 ~]# innobackupex --apply-log /xtrabackup_full/2018-08-05_10-46-26/
八、模拟数据损坏
[root@mysql01 ~]# cd /usr/local/mysql/data/
[root@mysql01 data]# rm -rf *
九、使用innobackupex进行恢复
[root@mysql01 data]# innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back /xtrabackup_full/2018-08-05_10-46-26/
[root@mysql01 data]# chown -R mysql. .
十、验证数据是否一致
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db01 |
| db03 |
| db04 |
| mysql |
| performance_schema |
| test |
+--------------------+
7 rows in set (0.00 sec)
mysql> select * from db03.t1;
+------+------+
| id | name |
+------+------+
| 1 | lisi |
| 2 | tom |
| 3 | jack |
+------+------+
3 rows in set (0.01 sec)
mysql> select * from db04.t1;
+------+---------+
| id | name |
+------+---------+
| 11 | Ghost |
+------+---------+
1 row in set (0.00 sec)
mysql>
shell_innobackup增量备份步骤的更多相关文章
- mysql xtrabackup增量备份
mysql 增量备份策略 周一全备,其他增量备份,根据业务需要,设定保留日期,如保留一月. 增量备份步骤; 1 创建全备 2 根据全备目录,创建增量备份 3 第二次增量备份根据第一次增量备份目录,依次 ...
- 11G-使用跨平台增量备份减少可移动表空间的停机时间 XTTS (Doc ID 1389592.1)
11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 13895 ...
- Mysql性能优化三(分表、增量备份、还原)
接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻 ...
- 通过innobackupex实现对MySQL的增量备份与还原
备份 增量备份是基于完整备份的,所以我们需要先做一次完整备份: innobackupex --password=test /backup/ 备注:test是我的MySQL服务的root用户的密码,/b ...
- 利用增量备份恢复因归档丢失造成的DG gap
故障现象:data guard归档出现gap,悲剧的是丢失的归档在主库上被rman备份时删除了,丢失的归档大约有20几个,数据库大小约2T,如果重建DG将非常耗时间,因此决定利用增量备份的方式恢复DG ...
- oracle增量备份
在进行数据库维护的过程中经常会遇到数据库备份的问题.先介绍一种常用的数据备份操作系统执行计划+批处理命令:在win的系统中存在 任务计划程序 选项:新建任务选中你写好的程序,设定好时间,就可以按照设定 ...
- Xtrabackup每周增量备份脚本程序
Xtrabackup每周增量备份脚本程序(含附件) 程序描述 本程序是一个对percona xtrabackup使用的脚本,它完成了MySQL每周的备份. 程序结构 此程序包含了4个目录(bin. ...
- MySQL数据库备份还原(基于binlog的增量备份)
MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份 增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...
- mysql增量备份 percona-xtrabackup
先说下实际环境 阿里云买的ESC跑的mysql服务,目前由于数据量过大,数据库目前有800多GB,每次全备需要等20多个小时才能够完成,然后就想到做增量备份,写下此文档 一.测试环境 [root@lo ...
随机推荐
- Spring Boot作为Spring Cloud基础设施
spring cloud包含的核心特性: Distributed/versioned configuration(分布式配置) Service registration and discovery(服 ...
- 使用Spring Data Mongodb的MongoRepository类进行增删改查
Spring Data Mongodb提供一套快捷操作 mongodb的方法,创建Dao,继承MongoRepository,并指定实体类型和主键类型. public interface CmsPag ...
- [CISCN2019 总决赛 Day1 Web4]Laravel1
0x00 知识点 这个题核心就是找POP链,看了一下网上的WP,难顶啊.. 先贴上思路和poc,之后等熟练了再来做吧 https://glotozz.github.io/2019/11/05/buuc ...
- 遍历数组提取List[Int]
def toFlatMap(input:List[Any],result:List[Int]):List[Int]=input match{ case h::t=>h match {case e ...
- FFmpeg命令大全(更新中)
1.视频抽取音频: ffmpeg -i 3.mp4 -vn -y -acodec copy 3.aacffmpeg -i 3.mp4 -vn -y -acodec copy 3.m4a
- git 一些操作
1. 代码相关 克隆代码 git clone xxx.git 拉取代码 git pull 查看 修改的 状态 git status 推送代码 git push add 或者 修改代码之后 回滚到 未修 ...
- Java 接口理解
学习Spring有一段时间了,对java也有了一点了解,最不能理解的就是接口, 即使是写了接口并实现了它,依然无法理解它到底有什么用?看了其他几篇博客,总结了一下自己的理解. 在JAVA编程语言中是一 ...
- UVA 11375 高精度Bign类
求火柴的组成的数字最多能组成多少种数字,典型的递推问题 但是因为结果巨大,要用高精度运算 一开始手写高精度,不仅挫的要死,最后还WA了. 最后学了一下白书上面的bign类,相当方便啊. #includ ...
- 北邮14&18年软院机试【参考】答案
2014 Problem A. 奇偶求和 题目描述: 给定N个数,分别求出这N个数中奇数的和以及偶数的和. 输入格式 第一行为测试数据的组数T(1<=T<=50).请注意,任意两组测试数据 ...
- JavaScript学习总结(四)
这一部分我们继续介绍JavaScript的常用对象. Number对象 创建Number对象 方式1: var 变量= new Number(数字) 方式2: var 变量 = 数字; 常用的方法 t ...