备份的目的:
1 容灾恢复
当数据库服务器发生操作系统宕机、系统突然断电、文件系统损坏、服务器硬件故障(主板、存储介质)、用户错误删除数据等导致服务重启后数据仍不可用时,只有靠之前的备份数据来恢复数据库系统。
2 复制使用
当使用MySQL复制时,原master节点存在数据,需要先将master节点的数据做备份,然后到每一个新增的slave节点上去还原,这样可以避免slave节点从master节点上通过binlog来重现所有数据,以节省时间。
3 作为测试数据
当数据库系统进行压力测试或者检测升级前、后的数据库系统的兼容性时,可以将原数据库系统中的备份数据集拿来做测试
备份方式
1 物理备份与逻辑备份
1.1物理备份
描述:备份数据时直接对存储数据库数据的文件夹和文件进行备份
适用场景:备份数据量大、当出现问题需要快速恢复时适用
特征:
- 备份由数据库文件夹及文件组成。通常情况下,是由data directory部分或完整复制
- 物理备份方法比逻辑备份方法快
- 备份输出相对于逻辑备份来说,更加简洁、紧凑
- 备份和恢复的粒度从完整的数据文件夹到单个文件;是否提供数据表级别的粒度取决与数据表使用的存储引擎
- 除了数据库数据之外,物理备份还包括其他像日志文件或者数据库系统配置文件等
- 不能备份memory 存储引擎的表,这种类型的表数据没有实际存储到磁盘上
- 备份数据对于其他使用相同或相似硬件特征的机器来说,非常便捷
- 备份可以在MySQL服务没有运行的情况下进行;当MySQL服务正在运行时,需要先对备份对象增加合适的锁以防止数据库实例在备份期间更改数据
- 进行物理备份的工具/命令包括mysqlbackup、cp、scp、tar、rsync等
1.2 逻辑备份
描述:逻辑备份保存的是一些DDL语句(CREATE DATABASE、CREATE TABLE等)以及一系列DML语句(INSERT..)
适用场景: 备份数据量小、备份时可能改变数据值或表结构、在其他不同架构的机器上进行恢复操作时适用
特征:
- 备份是通过查询MySQL服务来获取数据库架构和内容信息
- 执行备份比物理备份慢
- 备份的输出比物理备份的输出更大,尤其当备份数据以文本形式进行保存时
- 备份和恢复的粒度包括实例级别(all databases)、数据库级别(all tables in a particular database)、数据表级别
- 备份不包含日志文件和其他各类配置文件
- 备份以逻辑形式独立于机器进行存储并且高度简洁、可见
- 备份需要在MySQL服务运行时进行
- 备份的工具/命令包括mysqldump、select ... into outfile等
- 该备份包含任何类型的存储引擎表
2 在线备份与离线备份
2.1在线备份(热备)
描述:在MySQL服务正在运行时进行备份操作
适用场景:
特征:
- 备份对其他客户端的干预很小;执行备份期间,其他客户端仍可以连接到该MySQL服务器上
- 在执行备份之前,需要先对备份对象添加合适的锁以确保其他客户端(进程)无法修改正在进行备份的数据
2.2 离线备份(冷备)
描述:在MySQL服务停止时进行备份操作
适用场景:
特征:
- 执行备份操作期间,客户端不能连接到MySQL服务器上(因为这一点,大多数的备份操作选择在slave节点上进行,以确保备份期间数据库的可用性)
- 备份过程更加简单(客户端活动不可能干扰该操作)
3 本地备份与远程备份
3.1 本地(local)备份
描述:备份到MySQL服务运行的机器上
适用场景:欢迎补充bylei@163.com
特征:欢迎补充bylei@163.com
3.2 远程(remote)备份
描述:备份到MySQL服务运行之外的机器上
适用场景:欢迎补充bylei@163.com
特征:欢迎补充bylei@163.com
3.3 一点综合
- mysqldump可以连接到本地或者远程主机上;对于SQL格式的输出(create 和insert语句),在本地和远程均可以完成备份,输出备份结果到客户端;对于符号分割格式的输出(增加--tab选项),数据文件将在服务端创建
- SELECT ...INTO OUTFILE可以从本地或者远程主机上发起,但输出文件在服务端创建
- 物理备份通常在本地主机上发起,尽管文件复制的目的地可能是远程主机
4 全量备份与增量备份
4.1 全量备份
描述:在既定时间点上,对MySQL服务管理的所有数据进行备份
适用场景:欢迎补充bylei@163.com
特征:欢迎补充bylei@163.com
4.2 增量备份
描述:在既定的时间范围(既定时间点到其他时间)内,对发生更改的时间进行备份
适用场景:增量备份需要和全量备份一起配合使用,才能达到备份的目的;另外还必须友binlog的参与
特征:欢迎补充bylei@163.com
5 快照备份
欢迎补充bylei@163.com
完成备份后的注意事项
1 确定备份集的保留周期
2 确定备份集是否需要加密存储
3 进行恢复演练,确定备份数据是否可用
note:本文权当学习MySQL后的总结,可能存在描述不当或错误的地方,欢迎指正(bylei@163.com)