数据库逻辑备份就是备份软件按照我们最初所设计的逻辑关系,以数据库的逻辑结构对象为单位,将数据库中的数据按照预定义的逻辑关联格式一条一条生成相关的文本文件,以达到备份的目的。
在MySQL 中我们常用的逻辑备份主要就是两种,一种是将数据生成可以完全重现当前数据库中数据的INSERT 语句,另外一种就是将数据通过逻辑备份软件,将我们数据库表数据以特定分隔符进行分隔后记录在文本文件中。
1、生成INSERT 语句备份
缺点:mysqldump 程序的实现原理是通过我们给的参数信息加上数据库中的系统表信息来一个表一个表获取数据然后生成INSERT 语句再写入备份文件中的。这样就出现了一个问题,在系统正常运行过程中,很可能会不断有数据变更的请求正在执行,这样就可能造成在mysqldump 备份出来的数据不一致。也就是说备份数据很可能不是同一个时间点的数据,而且甚至可能都没办法满足完整性约束。
解决方法:mysqldump 程序也给我们提供了相关的参数选项来支持该功能,就是通过“--
single-transaction”选项,可以不影响数据库的任何正常服务。
2、生成特定格式的纯文本备份数据文件备份
所需要使用的存储空间更小,数据格式更加清晰明确,编辑方便。但是缺点是在同一个备份文件中不能存在多个表的备份数据,没有数据库结构的重建命令。对于备份集需要多个文件,对我们产生的影响无非就是文件多了维护和恢复成本增加。
2)通过mysqldump 导出
可能我们都知道mysqldump 可以将数据库中的数据以INSERT 语句的形式生成相关备份文件,其实除了生成INSERT 语句之外,mysqldump 还同样能实现上面“SELECT ... TOOUTFILE FROM ...”所实现的功能,而且同时还会生成一个相关数据库结构对应的创建脚本。
物理备份与恢复测试
数据库的物理备份就是对数据库的物理对象所做的备份。