一、MySQL备份方式与备份类型
1.备份的必要性
再生产环境中,为了防止硬件故障、软件故障、自然灾害、误操作等各种原因导致的数据库数据丢失后能恢复到事故之前的状态,我们需要对数据库进行备份和恢复操作。数据库的备份和恢复是非常重要的工作,数据的备份不是最终目的,数据的恢复才是。
备份时应该注意的事项:
1.最多能容忍多少数据丢失;
2.恢复数据需要在多长时间内完成;
3.需要恢复那些数据;
4.定期测试备份的可用性并提高恢复操作的效率;
5.备份时的服务器负载;
6.锁定资源的时长;
2.备份的类型
a.按照备份的数据集的范围分类:
完全备份:整个数据集;
部分备份:数据集的一部分,比如部分表;
b.按照数据的变化分类;
完全备份:将整个范围备份;
增量备份:仅备份自上一次完全备份或增量备份以来变量的那部数据;
差异备份:仅备份自上一次完全备份以来变量的那部数据;
c.按照操作对象分类;
物理备份:直接从磁盘复制数据文件进行备份;
逻辑备份:从数据库导出数据另存在一个或多个文件中,将数据转为具体的SQL语句;
d.按照数据服务备份时的运行状态分类;
热备:读写操作均可进行的状态下所做的备份;
温备:可读但不可写状态下进行的备份;
冷备:读写操作均不可进行的状态下所做的备份;
3.备份策略
备份策略一般都是全量+差异+binlogs或者全量+增量+binlogs。需要注意到的是,如果需要更完整的备份数据,还需要依靠binlogs(二进制日志)。binlogs是MySQL中最重要的日志之一,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录。这里强烈建议在生产环境中,将数据与二进制日志分开存放并对二进制日志也做备份。
二、MySQL备份工具
1.mysqldump:mysql服务自带的备份工具。mysqldump是一个逻辑备份工具,它的本质是将数据库转为可执行SQL脚本。可以用来做完全备份和部分备份,支持InnoDB存储引擎的热备功能,MyISAM存储引擎的温备功能。
2.系统自带的cp/tar工具:这是一种物理备份,这种备份的原理是基于快照实现的,快照(请求一个全局锁),之后立即释放锁,达到几乎热备的效果。需要注意的是不能仅仅只备份数据,要同时备份事务日志,并且要求数据和日志在同一逻辑卷。
3.xtrabackup:由Percona开发的很强大的开源工具,支持对InnoDB做热备,物理备份工具。在下篇博客将具体介绍此工具并做实际演示。