4.5 我们来实验一下增量备份

  4.5.1 在表中新增一些数据


mysql> insert into linux (name) values ('tomcat'), ('memcache'), ('varnish');


  4.5.2 增量备份


1.innobackupex --user=percona --password=redhat --incremental
2.--incremental-basedir=/myback/2012-12-02_20-06-12/ /myback/ 
3. 
4.--incremental 指定是增量备份 
5.--incremental-basedir 指定基于哪个完整备份做增量备份,后是增量备份保存的目录
 


  增量备份只能对InnoDB引擎做增量备份,对MyISAM的表是完全复制

  4.6 测试增量备份恢复


1.service mysqld stop 
2.rm -Rf /data/mydata/* 
3.innobackupex --apply-log --redo-only /myback/2012-12-02_20-06-12/ 
4. 
5.--redo-only 指的是把备份时commit的但还在事务日志中的应用到时数据,但是还没提交的不撤消,
6.因为这个事务可能在增量备份中提交,假如的撤消了增量备份中提交不,因为事务已经不完整
 


  将增量备份全并到完整备份中去


1.innobackupex --apply-log /myback/2012-12-02_20-06-12/
2.--incremental-dir=/myback/2012-12-02_20-28-49/ 
3. 
4./myback/2012-12-02_20-06-12/ 这个是完整备份的目录 
5.--incremental-dir 后跟的是增量备份的目录 
6.这个会使增量备份中的的数据合并到完整备份中,如果还有增量备份,继续合并,恢复时恢复完整备份即可
 


  恢复数据,并起动MySQL


1.innobackupex --copy-back /myback/2012-12-02_20-06-12/ 
2.chown -R mysql:mysql /data/mydata 
3.service mysqld start
 


  查看数据有没丢失

  如果在增量备份后数据库出现故障,我们需要通过完整备份+到现在为止的所有增量备份+后一次增量备份到现在的二进制日志来恢复。

  到此总结完成,有些细节可能把握的不够准确,如有什么错误,欢迎留言指正,感谢!