本文地址:https://www.askmac.cn/archives/mysql-backup_recovery_knowledge.html
第11章 备份和恢复
章节概述
本章介绍了MySQL数据备份和恢复。你将学习并了解:
- 备份的类型
- 进行二进制备份和文本备份
- 备份中日志和状态文件的角色作用
- 使用一个复制从库(replication slave)来进行备份
- 进行数据恢复
- 倒入数据文件
11.1 备份概述
MySQL数据库备份一般用于应对可能的系统崩溃或硬件故障而导致的数据损失或讹误问题。备份同样对于用户误操作,如误删数据库或表等恢复有帮助。也有时候备份被用于将数据库拷贝或移动到另一个服务器中,如当你需要进行MySQL安装迁移,或建立一个复制从库时。
备份可以是对数据文件的直接拷贝,或是通过设计程序来完成同样的备份目的。这些程序包括mysqldump,mysqlhotcopy和InnoDB Hot Backup。
对于数据库运维,备份总是必要的,不过备份仅仅是在数据受损后所需进行数据恢复的组件之一。其它的你还需要二进制日志(binary log)文件,它包含了数据修改的记录。进行数据库恢复时,你使用备份将数据库恢复到备份时的状态,然后重新执行binary log中包含的语句来应用备份后的数据修改。
这里列出了在进行备份时需要记住的一些原则:
- 制作一般备份。
- 启用binary log,这样你在进行备份后,对数据修改的记录将会被保存在日志文件中。
- 在备份后,使用flush命令,使得服务端从一个新的binary log文件开始,这个日志文件对应了备份的时间(也就是说,将此备份后的日志看作是一个“检查点”,从这个时间后开始的日志记录是备份之后新的数据修改)。
- 将数据文件目录和你的备份放置在不同的物理设备中,这样一旦某个设备出现故障,不会造成同时被影响的后果。
- 将你的备份存在在通常合理的文件系统位置中,这样一旦需要就可以从这些位置上找到备份进行恢复。
在进行备份方式选择时,你应该明确一下一些问题:
- 是否需要在线备份(online backup)?
如果回答是No,使用线下备份,mysqldump,或mysqlhotcopy
如果回答是Yes,则回答下一个问题 …
- 是否允许一段时间(或短暂的)写访问中断?
如果回答是Yes,使用mysqldump,mysqlhotcopy或使用快照解决方案
如果回答是No,则回答下一个问题 …
- 是否有使用InnoDB引擎表?
如果回答是Yes,使用mysqlbackup或对“热备份(Hot Backup)”的快照解决方案
如果回答为No,转换为InnoDB表类型并使用mysqlbackup或快照解决方案
** mysqlbackup已经替代了原有的ibbackup和innobackup工具,作为MySQL企业版热备解决方案。
Leave a Reply