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增量备份步骤的更多相关文章

  1. mysql xtrabackup增量备份

    mysql 增量备份策略 周一全备,其他增量备份,根据业务需要,设定保留日期,如保留一月. 增量备份步骤; 1 创建全备 2 根据全备目录,创建增量备份 3 第二次增量备份根据第一次增量备份目录,依次 ...

  2. 11G-使用跨平台增量备份减少可移动表空间的停机时间 XTTS (Doc ID 1389592.1)

    11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 13895 ...

  3. Mysql性能优化三(分表、增量备份、还原)

    接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻 ...

  4. 通过innobackupex实现对MySQL的增量备份与还原

    备份 增量备份是基于完整备份的,所以我们需要先做一次完整备份: innobackupex --password=test /backup/ 备注:test是我的MySQL服务的root用户的密码,/b ...

  5. 利用增量备份恢复因归档丢失造成的DG gap

    故障现象:data guard归档出现gap,悲剧的是丢失的归档在主库上被rman备份时删除了,丢失的归档大约有20几个,数据库大小约2T,如果重建DG将非常耗时间,因此决定利用增量备份的方式恢复DG ...

  6. oracle增量备份

    在进行数据库维护的过程中经常会遇到数据库备份的问题.先介绍一种常用的数据备份操作系统执行计划+批处理命令:在win的系统中存在 任务计划程序 选项:新建任务选中你写好的程序,设定好时间,就可以按照设定 ...

  7. Xtrabackup每周增量备份脚本程序

    Xtrabackup每周增量备份脚本程序(含附件)   程序描述 本程序是一个对percona xtrabackup使用的脚本,它完成了MySQL每周的备份. 程序结构 此程序包含了4个目录(bin. ...

  8. MySQL数据库备份还原(基于binlog的增量备份)

    MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份      增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...

  9. mysql增量备份 percona-xtrabackup

    先说下实际环境 阿里云买的ESC跑的mysql服务,目前由于数据量过大,数据库目前有800多GB,每次全备需要等20多个小时才能够完成,然后就想到做增量备份,写下此文档 一.测试环境 [root@lo ...

随机推荐

  1. NET CLR via C#(第4版)第4章 类型基础

    本章内容: 1 所有类型都从System.Object派生 2 类型转换 3 命名空间和程序集 4 运行时的相互关系   本章讲述使用类型和CLR时需掌握的基础知识.具体地说,要讨论所有类型都具有的一 ...

  2. (递归)Hanoi Tower

    #include<stdio.h>void move(int n,char a,char b){ printf("将第%d个盘子从%c移动到%c\n",n,a,b);  ...

  3. GWCTF 2019]我有一个数据库

    0x00 知识点 phpMyadmin(CVE-2018-12613)后台任意文件包含漏洞 影响版本:4.8.0--4.8.1 payload:/phpmyadmin/?target=db_datad ...

  4. C++逐词读取txt

    这一篇来写下std::ifstream读取txt的另一种方式,逐词读取,上一篇是按行读取,逐词读取的话每个单词都以空格或者换行等符号间隔开. 代码如下: #include "stdafx.h ...

  5. Q6:ZigZag Conversion

    6. ZigZag Conversion 官方的链接:6. ZigZag Conversion Description : The string "PAYPALISHIRING"  ...

  6. java中执行javascript案例

    Nashorn js engine官方文档 https://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_gu ...

  7. 主席树的妙用——Just h-index

    题目传送门:https://ac.nowcoder.com/acm/contest/1107/C 题意:给出一个区间,求最大的 h ,使得区间内至少有 h 个数 大于等于 h. 思路:1.需要区间有序 ...

  8. pinpoint 单机HBASE数据量过大问题解决

    Pinpoint接入业务监控后数据量大涨,平均每周Hbase数据增量35G左右,数据量太大,需要对数据进行定期清理,否则监控可用性降低. 操作步骤 查找出数据大的hbase表 [root@iZ28ov ...

  9. MySQL-TPS,QPS到底是什么

    计算TPS,QPS的方式 qps,tps是衡量数据库性能的关键指标,网上普遍有两种计算方式 TPS,QPS相关概念 QPS:Queries Per Second         查询量/秒,是一台服务 ...

  10. Springmvc接收数组参数

    Springmvc接收数组参数,必须添加@RequestParam注解 注解格式@RequestParam(value="前端参数名[]") 示例: controller端的代码 ...