emental-dir=/backup/2015-03-18_21-22-31/
?
9、这里还是采用老方法直接删除所有的数据文件
# service mysqld stop
# rm -rf /mydata/data/*
?
# innobackupex --user=root --password=123456 --copy-back /backup/2015-03-18_21-14-49/
?
11、修改数据目录权限
# chown -R mysql.mysql /mydata/data/
?
12、启动mysqld服务
# service mysqld start
?
13、登陆mysql查看是否是否一致
# mysql -e 'use jiaowu;select * from tutor;'
+------+---------------+--------+------+
| TID ?| Tname ? ? ? ? | Gender | Age ?|
+------+---------------+--------+------+
| ? ?1 | ZhengYansheng | M ? ? ?| ? 25 |
| ? ?2 | LiJian ? ? ? ?| M ? ? ?| ? 26 |
| ? ?3 | OuYangyu ? ? ?| M ? ? ?| ? 27 |
| ? ?4 | LuoChenghui ? | M ? ? ?| ? 25 |
| ? ?5 | LiuYunbo ? ? ?| M ? ? ?| ? 25 |
| ? ?6 | FuJian ? ? ? ?| M ? ? ?| ? 24 |
| ? ?7 | LiMenglu ? ? ?| F ? ? ?| ? 23 |
| ? ?8 | BaoYintu ? ? ?| M ? ? ?| ? 28 |
| ? ?9 | WangYana ? ? ?| F ? ? ?| ? 25 |
| ? 11 | NULL ? ? ? ? ?| NULL ? | NULL |
| ? 12 | NULL ? ? ? ? ?| NULL ? | NULL |
| ? 13 | NULL ? ? ? ? ?| NULL ? | NULL |
| ? 21 | NULL ? ? ? ? ?| NULL ? | NULL |
| ? 22 | NULL ? ? ? ? ?| NULL ? | NULL |
| ? 23 | NULL ? ? ? ? ?| NULL ? | NULL |
+------+---------------+--------+------+
#两次增量添加的数据也已经成功添加到数据库当中。恢复成功
?
六、Xtrabackup的高级功能
?
流式压缩功能
?
Xtrabackup对备份的数据文件支持“流”功能,即可以将备份的数据通过STDOUT传输给tar程序进行归档,而不是默认的直接保存至某备份目录中。要使用此功能,仅需要使用--stream选项即可。如:
# innobackupex --user=root --password=123456 --stream=tar ?/backup | gzip > /backup/`date +%F_%H-%M-%S`.tar.gz
?
甚至也可以使用类似如下命令将数据备份至其它服务器:强烈推荐这种方式
# innobackupex --user=root --password=123456 --stream=tar ?/backup | ssh root@192.168.1.100 ?'cat - > /backup/`date +%F_%H-%M-%S`.tar'
?
在执行本地备份时,还可以使用--parallel选项对多个文件进行并行复制(暂时还没有看懂此选项)
?
此外,在执行本地备份时,还可以使用--parallel选项对多个文件进行并行复制。此选项用于指定在复制时启动的线程数目。当然,在实际进行备份时要利用此功能的便利性,也需要启用innodb_file_per_table选项或共享的表空间通过innodb_data_file_path选项存储在多个ibdata文件中。对某一数据库的多个文件的复制无法利用到此功能。其简单使用方法如下:
# innobackupex --parallel ?/path/to/backup
?
同时,innobackupex备份的数据文件也可以存储至远程主机,这可以使用--remote-host选项来实现:
# innobackupex --remote-host=root@www.magedu.com ?/path/IN/REMOTE/HOST/to/backup
?
七、使用Xtrabackup对数据库进行部分备份
?
Xtrabackup也可以实现部分备份,即只备份某个或某些指定的数据库或某数据库中的某个或某些表。但要使用此功能,必须启用innodb_file_per_table选项,即每张表保存为一个独立的文件。同时,其也不支持--stream选项,即不支持将数据通过管道传输给其它程序进行处理。
?
此外,还原部分备份跟还原全部数据的备份也有所不同,即你不能通过简单地将prepared的部分备份使用--copy-back选项直接复制回数据目录,而是要通过导入表的方向来实现还原。当然,有些情况下,部分备份也可以直接通过--copy-back进行还原,但这种方式还原而来的数据多数会产生数据不一致的问题,因此,无论如何不推荐使用这种方式。
?
(1)创建部分备份
?
创建部分备份的方式有三种:
?
正则表达式(--include)
?
枚举表文件(--tables-file)
?
列出要备份的数据库(--databases)。
?
(a)使用--include
?
使用--include时,要求为其指定要备份的表的完整名称,即形如databasename.tablename,如:
# innobackupex --include='^mageedu[.]tb1' ?/path/to/backup
(b)使用--tables-file
?
此选项的参数需要是一个文件名,此文件中每行包含一个要备份的表的完整名称;如:
# echo -e 'mageedu.tb1\nmageedu.tb2' > /tmp/tables.txt
# innobackupex --tables-file=/tmp/tables.txt ?/path/to/backup
?
(c)使用--databases
?
此选项接受的参数为数据名,如果要指定多个数据库,彼此间需要以空格隔开;同时,在指定某数据库时,也可以只指定其中的某张表。此外,此选项也可以接受一个文件为参数,文件中每一行为一个要备份的对象。如:
# innobackupex --databases="mageedu testdb" ?/path/to/backup
?
(2)整理(preparing)部分备份
?
prepare部分备份的过程类似于导出表的过程,要使用--export选项进行:
# innobackupex --apply-log --export ?/pat/to/partial/backup
?
此命令执行