不同的存储引擎对备份的支持也是不一样的,MyISAM存储引擎可以使用LVM快照功能配合实现热备份,如果没有LVM,则只能实现温备份。而InnoDB则可以完全支持热备,可使用的热备工具有:xtrabackup, mysqldump等
根据需要备份的数据集,备份方式有以下三种:
完全备份:备份全部需要备份的数据
增量备份:仅备份上次完全备份或增量备份以后变化的数据
差异备份:仅备份上次完全备份依赖变化的数据
根据备份的方法,分为物理备份和逻辑备份
物理备份:直接cp数据文件,速度比较快;
逻辑备份:将数据导出至文本文件中,方便使用文本处理工具直接对其处理、可移植能力强;数据量过大时备份速度很慢;
下面介绍mysqldump和snapshot用法
备份数据库中的所有库:--all-databases[root@localhost ~]# mysqldump -uroot -hlocalhost -p --all-databases > /tmp/all.sql
备份指定单个或多个库:--databases[root@localhost ~]# mysqldump -uroot -hlocalhost -p --databases testdb test > /tmp/mult.sql
为了防止备份数据库时,某个用户正在往某个表里插入数据,需要在备份数据库对所有表加锁:--lock-all-tables,其他用户的读写会被阻塞[root@localhost ~]# mysql -uroot -hlocalhost -p --databases -