备份原理
什么是数据库备份
RDS for MySQL会在数据库实例的备份时段中创建数据库实例的自动备份。系统根据您指定的备份保留期(1~732天)保存数据库实例的自动备份。
每次备份完成后都会生成一个备份文件,当数据库故障或数据损坏时,可以通过备份文件恢复数据库,从而保证数据可靠性。
备份类型
RDS for MySQL包含多种备份类型,不同备份类型的概念介绍以及功能差异,请参见备份类型。
备份触发过程
备份机制
RDS for MySQL默认开启自动备份,且不支持关闭。RDS for MySQL自动全备按照备份策略中的备份时间段和备份周期进行全量备份。Binlog备份为实例每5分钟或一定数据量时对上一次自动全备,或Binlog备份后更新的数据会进行备份,以保证数据库可靠性。实例恢复到指定时间点,会从OBS备份空间中选择一个该时间点最近的全量备份下载到实例上进行全量恢复,再重放Binlog备份到指定时间点。
备份存储位置和备份费用
备份都是以压缩包的形式存储在对象存储服务上。备份文件上传OBS会占用备份空间,当已使用备份空间超过赠送空间后,超过的部分就会按使用量收取费用。具体收费规则请参见RDS的备份是如何收费的。
开启CBR快照备份后,不再享受备份赠送空间。将根据CBR的收费规则中的“数据库服务器备份存储库”按需计费,详见云备份是如何计费的。
备份清理
- 备份文件清理分为两种场景:手动备份清理和自动备份清理。
- 手动备份是由用户触发产生的全量备份,需要用户手动删除,否则会一直保存。
- 自动备份的备份文件不支持手动删除,可通过设置自动备份策略调整备份保留天数,超出备份保留天数的已有备份文件会被自动删除。
- Binlog本地日志清理:
清理Binlog日志时,即使设置保留时长为0,RDS也会保证主节点的Binlog同步到备节点、只读节点全部完成,并且备份到OBS成功以后才会执行清理。
如果选择的保留时长大于0,例如设置1天,那么在Binlog同步及备份成功后,本地Binlog日志将会继续保留1天,到期后自动删除。