

# 备份管理及恢复

MySQL云数据库支持数据库备份、Binlog自动备份、从备份恢复、备份文件下载、及数据库回档创建等功能。控制台备份管理：

<!-- image-todo -->

## 备份策略

MySQL备份分为自动备份和手动备份两种，自动备份每天自动进行一次备份（默认备份时间为3：00—6：00的某一整点，备份可以保存7天），手动备份免费3份，自动备份免费7份。备份来源可以选择从主库或从库进行备份；支持是否开启强制备份，开启强制备份后，如果库表存在一些SQL错误，强制备份会忽略并跳过该表，为确保备份任务不被中断，会继续对后续其他表进行备份，这种情况下的备份文件中，存在SQL错误的表可能没有数据，如果存在SQL错误，建议及时修复确保备份完整；用户可以根据业务需求情况设置和更改自动备份策略。

SSD机型MySQL的备份方式提供物理备份和逻辑备份两种，默认逻辑备份方式；标准机型MySQL提供逻辑备份方式。

<!-- image-todo -->

NVMe机型MySQL的备份方式提供物理备份和逻辑备份两种，默认物理备份方式。支持设置“另存US3”自动将备份文件上传至您选定的US3存储空间中，并可以在US3存储空间管理您的备份文件，可根据实际业务情况长期保存；在保留策略已开启“另存US3”期间，请确保所选择US3产品的令牌及对应存储空间存在且令牌授权有效，否则存在备份上传失败的风险。

<!-- image-todo -->

NVMe机型MySQL提供Binlog自动备份功能，支持自动将本地Binlog转储到US3，并支持配置Binlog转储有效期，在数据库回档、创建从库等功能中，会优先使用转储的备份及Binlog进行数据恢复，减少对于主库IO压力。

<!-- image-todo -->

## 手工备份

MySQL实例支持手动备份，用户可以保存某些关键时间点的重要数据备份，当前手工备份的允许保留个数为3个，如果超过3个，会自动删除最早的手动备份；手工备份中，SSD机型MySQL的备份方式提供物理备份和逻辑备份两种，默认逻辑备份方式；标准机型MySQL提供逻辑备份方式。创建手工备份时，用户只需要输入备份名称，选择备份方式，后台会立刻开始进行备份工作。

点击手工备份之后，弹出对话框可以输入备份名称，备份方式，是否强制备份，逻辑备份默认备份全部库表。如需不备份某些库表，则设置备份对象，过滤掉无需备份的库和表。

<!-- image-todo -->

注意：

新增不参与备份的库表时，若输入不存在的库表，备份正常执行不会报错。

## 备份下载

用户可以下载自动备份和手工备份生成的备份文件。

查看所有MySQL实例的备份文件，点击左侧导航栏的“备份管理”。

<!-- image-todo -->

查看对应MySQL实例的备份文件，选择对应的MySQL实例，在详情页点击“备份管理”。NVMe实例会展示备份文件的MD5信息，可用于数据完整性校验。

<!-- image-todo -->

点击下载图标即可弹出下载框进行下载。

<!-- image-todo -->

注意：如果备份文件超过1G，建议通过wget或curl下载至云主机（UHost）。对于较大的备份文件，当下载时间超过两个小时会返回206，wget等工具遇到206后会自动继续下载，直到最终成功完成，这个属于正常现象。

<!-- image-todo -->

如果希望校验下载文件的完整性，可以计算下载后备份文件的MD5，并与备份列表中的MD5做比较，一致则表示下载的文件是完整的。

文件的MD5通过md5sum命令进行计算

<!-- image-todo -->

如果用户开启了Binlog自动转储功能，也可以在列表中下载Binlog备份文件。

<!-- image-todo -->

## Binlog本地日志管理

> 本地Binlog日志清理会影响数据库回档功能的最早可回档时间、创建从库等功能，建议结合Binlog自动备份功能一同使用。

在实例详情“备份管理”菜单下的Binlog日志备份列表菜单中，支持配置Binlog本地管理策略，可配置本地保留最大时长（1-168小时）或者本地磁盘使用百分比（5%-100%），配置完成将会根据策略自动清理本地日志。

<!-- image-todo -->

## 从备份创建MySQL实例

用户可以选择备份文件创建MySQL实例，点击“从备份创建”。创建过程可参考快速上手文档。

<!-- image-todo -->

注意：

备份文件压缩比为5:1，建议创建时的磁盘空间大小为备份文件大小的5倍以上。初始化时间取决于数据量大小。

## 数据库回档

云数据库MySQL支持数据库回档，如因误操作造成数据删除或者丢失时，可以通过“数据库回档”恢复数据。只需确保数据备份文件和binlog都存在，可恢复至7天内任意一秒。控制台选定对应实例，操作项中点击数据库回档。

### SSD机型和标准机型实例

支持数据库回档到新实例，不支持指定库表。 在回档弹窗中选择需要恢复的时间并确认，即可开始回档到新实例：

<!-- image-todo -->

<!-- image-todo -->

### NVMe机型实例

支持数据库回档到新实例或者当前实例，支持库表级别回档。

a. 数据库回档到原实例、指定具体库表：

<!-- image-todo -->

回档不会覆盖原有数据， 会创建出带时间戳的数据库， 命名格式为“数据库名_[指定回档时间]_[操作执行时间]"， 用户确认数据无误后可进行需要的操作。

```
例如 指定表nash.test进行回档， 回档后数据库中会创建出 nash_1662104405_1662104655.test 的表。
```

b. 数据库回档到新实例、指定具体库表：

> 对于回档到新实例的场景：回档完成后, 默认会关闭event_scheduler. 用户可以通过命令行重新开启, 或者在控制台重启实例开启。

<!-- image-todo -->

c. 数据库实例整体回档到新实例：

> 对于回档到新实例的场景：回档完成后, 默认会关闭event_scheduler. 用户可以通过命令行重新开启, 或者在控制台重启实例开启。

<!-- image-todo -->




