innobackupex --user=root --password=789/data/backups/full --slave-info --safe-slave-backup --parallel=4--safe-slave-backup-timeout=7200 --socket=/data/3306/mysql.sock
执行结果一定要看到“160905 20:01:38 completedOK!" OK的字样,才表示成功,从打出的日志我们也能看到备份的过程和上面给出的全备流程图对比起来。
正确输出以后会在/data/backups/full 指定的目录中生成一个有时间和序号的目录,这个目录就是全备文件存放地方如:
[root@db01 ~]# ls -lrt /data/backups/full/
总用量 4
drwxr-x--- 8 root root 4096 9月 5 20:012016-09-05_20-01-32
1.7.2 增量备份增量备份的前提是一定要有一个全备 ,只有有了全备才能进行所谓的增量备份!!!
增量备份的方式有两种,分别为:
第一种:通过全备的文件
innobackupex --user=root --password=789 --incremental --incremental-lsn=1783249/data/backups/inc --slave-info--safe-slave-backup --parallel=4 --safe-slave-backup-timeout=7200--socket=/data/3306/mysql.sock
第二种方法:通过LSN
innobackupex --user=root --password=789 --incremental --incremental-lsn=1783249/data/backups/inc --slave-info--safe-slave-backup --parallel=4 --safe-slave-backup-timeout=7200--socket=/data/3306/mysql.sock
1、准备好全备最新一次的全备文件,这里只做了一次,所以只有一个目录
[root@db01 ~]# ls -lrt /data/backups/full/
总用量 4
drwxr-x--- 8 root root 4096 9月 5 20:01 2016-09-05_20-01-32
2、对xtr_test数据库中的testbackup表,进行数据的插入,插入内容为“fist increment backup”
mysql> insert into testbackup(step)values('first increment backup');
Query OK, 1 row affected (0.02 sec)
mysql> select * from testbackup;
+----+------------------------+
| id | step |
+----+------------------------+
| 1 | firstfull backup |
| 2 | firstincrement backup |
+----+------------------------+
2 rows in set (0.01 sec)
3、执行增量备份
这里我们要确定好最新一次的全备(强调)!!!
innobackupex --user=root --password=789--incremental --incremental-basedir=/data/backups/full/
2016-09-05_20-01-32
/data/backups/inc --slave-info--safe-slave-backup --parallel=4 --safe-slave-backup-timeout=7200 --socket=/data/3306/mysql.sock
这里执行结果一定要看到“completed OK!" OK的字样,才表示成功如果是分布式也可以用--rsync,我们会在创建的inc目录下发现创建了一个以时间和序号命名的目录,这个目录就是Xtrabackup备份的增量。
执行结果:
[root@db01 ~]# ll /data/backups/inc
总用量 4
drwxr-x--- 8 root root 4096 9月 5 20:19 2016-09-05_20-19-48
TIP:innodb默认是使用的系统表空间,我们可以通过配置参数来使idb文件到独立空间中innodb_file_per_table = 1 这个是修改idb到独立空间,如果数据库是线上的,我们可以在配置文件my.cnf配置以上参数后,再使用set globalinnodb_file_per_table= 1 临时生效。
alter table backupstep engine=innodb; 修改表的引擎,这个操作很费时间,需要在业务低点的时候操作
1.7.3 再增量备份的基础上再备份在创建的xtr_test数据库中的testbackup表中再次插入内容“secondincrement backup”
mysql> insert into testbackup(step) values('secondincrement backup');
Query OK, 1 row affected (0.01 sec)
mysql> select * from testbackup;
+----+-------------------------+
| id | step |
+----+-------------------------+
| 1 | firstfull backup |
| 2 | first incrementbackup |
| 3 | secondincrement backup |
+----+-------------------------+
3 rows in set (0.00 sec)
1、确定最新的全备文件
[root@db01 full]# pwd
/data/backups/full
[root@db01 full]# ls -lrt
总用量 4
drwxr-x--- 8 root root 4096 9月 5 20:01 2016-09-05_20-01-32
2、确定上一次增量备份的LSN值
[root@db01 inc]# ls -lrt
总用量 4
drwxr-x--- 8 root root 4096 9月 5 20:19 2016-09-05_20-19-48
[root@db01 inc]# cd 2016-09-05_20-19-48/
[root@db01 2016-09-05_20-19-48]# ls
backup-my.cnf krik performance_schema xtrabackup_checkpoints xtr_test
ibdata1.delta mysql test xtrabackup_info
ibdata1.meta oldboy xtrabackup_binlog_info xtrabackup_logfile
[root@db01 2016-09-05_20-19-48]# cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 1793716 #这个值一定是和上一次全备的last_lsn一样,否则就是数据不全
to_lsn = 1794019
last_lsn = 1794019
compact = 0
recover_binlog_info = 0
4、
执行增量备份命令