小景哥哥博客

MySQL高级进阶(九)、备份

MySQL数据本身提供的备份:mysqldumpibbackupreplication

第三方工具:xtrabacupLVM快照备份。

根据备份的方法不同,可以将备份分为:

  • Hot Backup(热备)
  • Cold Backup(冷备)
  • Warm Backup(温备)

Hot Backup是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,也就是Online BackupCold Backup是指备份操作是在数据库停止的情况下,这种备份最为简单,一般只需要复制相关的数据库物理文件即可,即Offline BackupWarm Backup备份同样是在数据库运行中进行的,但是会对当前数据库的操作有所影响,如加一个全局读锁以保证备份数据的一致性。

根据备份数据库的内容,备份文件又可以分为:

  • 完全备份
  • 增量备份
  • 日志备份

完全备份是指对数据库进行一个完整的备份。增量备份是指在上次完全备份的基础上,对于更改的数据进行备份。日志备份是指对MySQL数据库二进制日志的备份,通过对一个完全备份进行二进制日志的重做来完成数据库的point-in-time的恢复工作。MySQL数据库复制的原理就是异步实时地将二进制日志重做传送并应用到从数据库。

对于InnoDB存储引擎来说,因为其支持MVCC功能,因此实现一致的备份比较简单。用户可以先开启一个事务,然后导出一组相关的表,最后提交。当然用户的事务隔离级别必须设置为REPEATABLE READ,这样的做法就可以给出一个完美的一致性备份。

对于mysqldump备份工具来说,可以通过添加--single-transaction选项获得InnoDB存储引擎的一致性备份。

对于InnoDB存储引擎的冷备,只需要备份MySQL数据库的frm文件,共享表空间文件,独立表空间文件(*.ibd),重做日志文件。另外建议定期备份MySQL数据库的配置文件my.cnf,这样有利于恢复的操作。