第一次增量备份准备:
#innobackupex --apply-log --redo-only /root/backup/xtrabackup/full/xxxxx/ --incremental-dir=/root/backup/xtrabackup/incr/xxxxx1/
注意:有些在完全备份中未能提交的事务在后续增量备份中已经提交过。如果不指定--redo-only选项则有可能这些时间会被undo,造成恢复后无法提交。
第二次增量备份准备:
#innobackupex --apply-log --redo-only /root/backup/xtrabackup/full/xxxxx/ --incremental-dir=/root/backup/xtrabackup/incr/xxxxx2/
注意:所有备份的准备完成后后,所有的数据都将合并到完全备份中,恢复时只恢复完全备份即可。
7.恢复:
备份二进制日志以便即时点恢复:
mysql>FLUSH LOGS
#service mysqld stop
#cd /mdata/data
#cp mysql-bin.0000* /root/backup/binlogfile
还原完全备份:
#innobackupex --copy-back /root/backup/xtrabackup/full/xxxxx/
修改恢复完成数据的属主属组:
#cd /mdata/data
#chown -R mysql:mysql ./*
启动服务
#service mysqld start
即时点还原
#cd /root/backup/binlogfile
#mysqlbinlog mysql-bin-000001 > bin0001.sql
...
mysql>SET sql_bin_log=0
mysql>SOURCE /root/backup/binlogfile/bin0001.sql
...
9.导入导出单张表:
注意:要进行此操作,必须保证导出操作所在数据库的innodb__file_per_table在创建要导出的表之前是启用的。同时要保证导入操作所在的数据库innodb_file_per_table和innodb_expand_import也是要启用的。
导出:
导出操作是在完全备份的准备阶段进行。会为每个innodb表的表空间创建以.exp结尾的文件。
#innobackupex --apply-log --export /root/backup/xtrabackup/full/xxxxx/
复制.exp和.ibd文件
导入:
创建innodb表:
mysql>CREATE TABLES TBNAME (...) ENGINE=InnoDB;
删除表空间:
mysql>ALTER TABLE DBNAME.TBNAME DISCARD TABLESPACE;
导入.exp文件和.ibd文件:
复制.exp和.ibd文件到数据目录下:
mysql>ALTER TABLE DBNAME.TBNAME IMPORT TABLESPACE;