本文介绍创建 TOS 备份恢复任务的操作步骤。
云数据库 SQL Server 版支持便捷的数据库上云操作。只需将自建数据库的备份文件上传至对象存储服务(Tinder Object Storage,简称 TOS),即可通过云数据库 SQL Server 版提供的 TOS 备份恢复功能将备份恢复到指定数据库。TOS 备份恢复功能支持全量恢复、差异恢复和日志恢复多种恢复方式,满足更多业务场景。TOS 备份恢复功能采用了微软官方的备份恢复方案,严格保障稳定性和兼容性。
当前仅支持从包含了 Microsoft SQL Server 日志文件、SQL Server 数据文件的备份集进行恢复。
如果需要进行差异恢复或日志恢复,需要先恢复其依赖的全量备份,并选择不打开数据库,之后再按需恢复差异备份或日志备份。
在进行差异恢复或日志恢复时,需要确保备份文件的日志序列编号(LSN)连续,否则恢复会出错。
如果指定的备份文件中包含多个同名数据库的同类型备份集,会恢复到最新的备份集的状态。
如果原始的数据库包含 F(全文目录)、S(文件流、FileTable 或内存中 OLTP 容器),则不支持恢复。
Microsoft SQL Server 2019
Microsoft SQL Server 2017
Microsoft SQL Server 2016
Microsoft SQL Server 2014
Microsoft SQL Server 2012
Microsoft SQL Server 2008R2
已创建 SQL Server 实例,且实例状态处于运行中、迁移中或恢复中。更多信息,请参见创建实例。
已明确在备份文件中需要恢复的数据库的名称。
鉴于云数据库 SQL Server 版的默认语言环境为英文,建议您将其修改为中文,以方便后续操作。详细操作,请参见如何修改 SQL Server 的语言环境。
(可选)在上云方案选择的是打开数据库进行数据库恢复时,已修改以下参数的取值:
在上云方案选择的是打开数据库进行数据库恢复时,数据库的状态将被自动默认设置为 Online
,同时也会默认修改以下参数的取值,但为了节约时间加快上云的速度,建议您先手动修改以下参数的取值。
USE [master] //数据库被设置为可读写模式,方便对其进行读取和修改操作。 ALTER DATABASE [XXXX] SET READ_WRITE WITH NO_WAIT GO //取消了数据库的自动关闭功能。某些数据库为了节约系统资源,在没有活动连接时会自动关闭。 ALTER DATABASE [XXXX] SET AUTO_CLOSE OFF WITH NO_WAIT GO //数据库的恢复模式被设置为完全恢复模式。 ALTER DATABASE [XXXX] SET RECOVERY FULL WITH NO_WAIT GO //允许多个用户同时访问数据库。 ALTER DATABASE [XXXX] SET MULTI_USER FULL WITH NO_WAIT
说明
您可以执行以下命令查看数据库的状态,本示例以数据库 MyDatabase
为例:
SELECT name, user_access_desc, is_auto_close_on, recovery_model_desc FROM sys.databases WHERE name = 'MyDatabase'
如果 user_access_desc
为 MULTI_USER
、is_auto_close_on
为 0
、recovery_model_desc
为 FULL
,则表示数据库已经被正确地配置,因此,无需进行进一步执行操作。
在顶部菜单栏的左上角,选择目标项目和地域。
在左侧导航栏,单击 TOS 备份恢复列表,进入 TOS 备份恢复列表页。
在 TOS 备份恢复列表页,单击创建 TOS 备份文件恢复任务,进入创建 TOS 备份文件恢复任务页。
在 创建 TOS 备份文件恢复任务页,设置以下参数。
参数 | 说明 |
---|---|
恢复方式 | 默认为自建TOS桶且不支持选择。 |
桶名 | 必填。存储备份文件的 TOS 桶的名称。 说明 如果是第一次使用 TOS 备份恢复功能,需要单击桶名下拉列表右侧的授权 RDS 官方服务账号访问 TOS 服务。 |
选择备份 | 必填。选择待恢复的备份文件。 说明
|
上云方案 | 必填。可选择打开数据库或不打开数据库。
|
恢复类型 | 必填。可选择全量恢复、差异恢复、日志恢复、默认恢复。 说明 在恢复类型选择默认恢复时,表示默认恢复还原备份文件中第一个全量备份类型的数据库,且新数据库的默认名称为 |
是否覆盖还原 | 当前仅支持选择否。 |
选择实例 | 必填。选择要恢复到的目标实例。可通过实例名称或实例 ID 进行搜索。 |
待恢复数据库名称 | 填写要恢复的数据库名称,必须与备份文件中数据库名称一致。每次最多可以恢复 20 个数据库。 说明 在恢复类型选择默认恢复时,无需配置该参数。 |
单击提交。
说明
恢复过程中,实例显示处于迁移中状态。
在 TOS 备份文件恢复任务完成、打开数据库后,建议使用 DBCC
CHECKDB
命令对恢复的数据库进行完整性校验,具体命令,请参见 DBCC CHECKDB (Transact-SQL)(Microsoft)。 执行完整性校验后,正常情况会看到以下结果:
… CHECKDB found 0 allocation errors and 0 consisteency errors in database 'xx' DBCC execution completed. If DBCC printed error messages, contact your system administrator.
如果在恢复任务创建和执行过程中遇到错误,可参考下表进行排查。
错误类型 | 可能原因 | 解决方案 |
---|---|---|
备份文件校验失败 | 备份文件中没有可恢复的数据库信息。 | 确认备份文件完整性。如果备份文件损坏或备份文件未包含目标数据库信息,需重新生成全量备份文件并上传 TOS,之后再创建 TOS 备份恢复任务。关于如何在 TOS 上传文件,可参考创建存储桶和上传文件。 |
选择全量恢复时,指定的备份集中包含了全文目录、文件流、FileTable 或内存中 OLTP 容器。 | 当前仅支持从包含了 Microsoft SQL Server 日志文件、SQL Server 数据文件的备份集进行恢复,如果备份集中包含了数据流文件或全文目录文件,则不能用于恢复。如遇此种情况,则需重新生成备份文件并上传 TOS,之后再创建 TOS 备份恢复任务。关于如何在 TOS 上传文件,可参考创建存储桶和上传文件。 | |
选择全量恢复时,指定的备份集中不包含 Microsoft SQL Server 日志文件或 Microsoft SQL Server 数据文件。 | 当前仅支持从包含了 Microsoft SQL Server 日志文件、SQL Server 数据文件的备份集进行恢复。如遇此种情况,则需重新生成备份文件并上传 TOS。关于如何在 TOS 上传文件,可参考创建存储桶和上传文件。 | |
备份文件版本高于实例版本。 | 支持从 Microsoft SQL Server 2019 及更早版本的标准版备份文件中进行恢复。 | |
备份集完整性校验失败。 | 确认备份文件完整性。如果备份文件损坏,需重新生成全量备份文件并上传 TOS,之后再创建 TOS 备份恢复任务。关于如何在 TOS 上传文件,可参考创建存储桶和上传文件。 | |
在执行 | 使用以下命令修复本地环境数据库错误后重新上云。
说明 建议执行该命令前先进行数据备份,否则使用该命令修复错误的过程,可能会导致数据丢失。 | |
该数据库不存在 | 输入的数据库名称有误。 备份集中没有对应的数据库信息。 |
|
同名数据库已经存在 | 全备恢复,数据库已经存在并且没有选择覆盖。 |
|
空间不足 | 实例剩余空间不满足备份恢复所需要的最小空间要求。 | 为实例扩容。关于扩容的更多信息,请参见变更实例配置。 |
使用差异备份文件失败 | 数据库状态不是 Restoring。 |
|
差异备份跟目标数据库不匹配。 | 检查该差异备份文件跟目标数据库是否匹配。一个数据库仅能进行一次差异还原,差异还原完成后,后续仅能进行日志还原。 | |
基于的全备恢复是 copyonly 类型。 | 基于 copyonly 类型的备份文件进行全量恢复后,不允许进行差异恢复。 | |
差异备份文件 LSN 连续性校验失败。 | 根据之前的上传记录查找差异备份文件,确保 LSN 连续。 | |
使用日志备份文件失败 | 数据库状态不是 Restoring。 |
|
日备文件 LSN 连续性校验失败。 | 根据之前的上传记录查找日志备份文件,保确保 LSN 连续。 | |
使用差异备份文件恢复失败 | 差异备份恢复过程中失败。 | 使用该差异备份文件通过 SQL Server Management Studio 在本地环境执行恢复:
|
使用日志备份文件恢复失败 | 日志备份恢复过程中失败。 | 使用该差异备份文件通过 SQL Server Management Studio 在本地环境执行恢复:
|
备份文件下载失败 | TOS 文件不存在。 | 在 TOS 检查备份文件,重新上传备份文件。关于如何在 TOS 上传文件,可参考创建存储桶和上传文件。 |
文件过大,空间不足。 | 为实例扩容。关于扩容的更多信息,请参见变更实例配置。 | |
系统错误,请联系管理员 | 非预期情况,请联系系统管理员。 | 请提交工单处理。 |