You need to enable JavaScript to run this app.
导航
创建 TOS 备份恢复任务
最近更新时间:2024.11.21 09:55:32首次发布时间:2023.06.06 18:05:02

本文介绍创建 TOS 备份恢复任务的操作步骤。

背景信息

云数据库 SQL Server 版支持便捷的数据库上云操作。只需将自建数据库的备份文件上传至对象存储服务(Tinder Object Storage,简称 TOS),即可通过云数据库 SQL Server 版提供的 TOS 备份恢复功能将备份恢复到指定数据库。TOS 备份恢复功能支持全量恢复、差异恢复和日志恢复多种恢复方式,满足更多业务场景。TOS 备份恢复功能采用了微软官方的备份恢复方案,严格保障稳定性和兼容性。

注意事项

  • 当前仅支持从包含了 Microsoft SQL Server 日志文件、SQL Server 数据文件的备份集进行恢复。

  • 如果需要进行差异恢复或日志恢复,需要先恢复其依赖的全量备份,并选择不打开数据库,之后再按需恢复差异备份或日志备份。

  • 在进行差异恢复或日志恢复时,需要确保备份文件的日志序列编号(LSN)连续,否则恢复会出错。

  • 如果指定的备份文件中包含多个同名数据库的同类型备份集,会恢复到最新的备份集的状态。

  • 如果原始的数据库包含 F(全文目录)、S(文件流、FileTable 或内存中 OLTP 容器),则不支持恢复。

  • TOS 备份恢复功能采用了微软官方的备份恢复方案,恢复能力向下兼容,支持从以下版本的备份文件进行恢复:
    • 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_descMULTI_USERis_auto_close_on0recovery_model_descFULL,则表示数据库已经被正确地配置,因此,无需进行进一步执行操作。

操作步骤

  1. 登录云数据库 SQL Server 版控制台

  2. 在顶部菜单栏的左上角,选择目标项目和地域。

  3. 在左侧导航栏,单击 TOS 备份恢复列表,进入 TOS 备份恢复列表页。

  4. TOS 备份恢复列表页,单击创建 TOS 备份文件恢复任务,进入创建 TOS 备份文件恢复任务页。

  5. 创建 TOS 备份文件恢复任务页,设置以下参数。

    参数说明
    恢复方式默认为自建TOS且不支持选择。

    桶名

    必填。存储备份文件的 TOS 桶的名称。

    说明

    如果是第一次使用 TOS 备份恢复功能,需要单击桶名下拉列表右侧的授权 RDS 官方服务账号访问 TOS 服务

    选择备份

    必填。选择待恢复的备份文件。

    说明

    • 仅支持前缀搜索。如果备份文件存放于桶内的某一级文件夹中,则需要逐级输入该文件的路径。最多显示 20 条匹配结果。
    • 当前仅支持备份 .bak.diff.trn.log 格式的文件。

    上云方案

    必填。可选择打开数据库不打开数据库

    • 打开数据库:恢复完成后数据库自动打开并处于可用状态,此时无法继续向数据库恢复日志备份或差异备份。

    • 不打开数据库:恢复完成后数据库保持在恢复中状态,可以继续向数据库恢复日志备份或差异备份。恢复完成后也可使用存储过程修改数据库状态为 Online。更多详情,请参见修改数据库状态为 Online

    恢复类型

    必填。可选择全量恢复差异恢复日志恢复默认恢复

    说明

    恢复类型选择默认恢复时,表示默认恢复还原备份文件中第一个全量备份类型的数据库,且新数据库的默认名称为数据库名称 + 日期

    是否覆盖还原当前仅支持选择
    选择实例必填。选择要恢复到的目标实例。可通过实例名称或实例 ID 进行搜索。

    待恢复数据库名称

    填写要恢复的数据库名称,必须与备份文件中数据库名称一致。每次最多可以恢复 20 个数据库。

    说明

    恢复类型选择默认恢复时,无需配置该参数。

  6. 单击提交。

说明

恢复过程中,实例显示处于迁移中状态。

后续步骤

在 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 上传文件,可参考创建存储桶上传文件

在执行 DBCC CHECKDB 时遇到错误,表明数据库在本地环境可能存在损坏。

使用以下命令修复本地环境数据库错误后重新上云。

DBCC CHECKDB (DBName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;

说明

建议执行该命令前先进行数据备份,否则使用该命令修复错误的过程,可能会导致数据丢失。

该数据库不存在

输入的数据库名称有误。 备份集中没有对应的数据库信息。

  1. 确认在待恢复数据库名称中输入的数据库名称正确。

  2. 确认上传的备份文件包含了目标数据库。

  3. 重新上传备份文件。

  4. 重新创建 TOS 备份恢复任务。

同名数据库已经存在

全备恢复,数据库已经存在并且没有选择覆盖。

  1. 确认在待恢复数据库名称中输入的数据库名称正确。

  2. 在 TOS 备份恢复任务中更改是否覆盖恢复的选项为

空间不足实例剩余空间不满足备份恢复所需要的最小空间要求。为实例扩容。关于扩容的更多信息,请参见变更实例配置

使用差异备份文件失败

数据库状态不是 Restoring。

  1. 使用相应的全量备份重新创建 TOS 备份恢复任务,并选择上云方案不打开数据库

  2. 全量恢复完成后,重新使用该差异备份文件创建 TOS 备份恢复任务。

差异备份跟目标数据库不匹配。检查该差异备份文件跟目标数据库是否匹配。一个数据库仅能进行一次差异还原,差异还原完成后,后续仅能进行日志还原。
基于的全备恢复是 copyonly 类型。基于 copyonly 类型的备份文件进行全量恢复后,不允许进行差异恢复。
差异备份文件 LSN 连续性校验失败。根据之前的上传记录查找差异备份文件,确保 LSN 连续。

使用日志备份文件失败

数据库状态不是 Restoring。

  1. 使用相应的全量备份重新创建 TOS 备份恢复任务,并选择上云方案不打开数据库

  2. 全量恢复完成后,重新使用该日志备份文件创建 TOS 备份恢复任务。

日备文件 LSN 连续性校验失败。根据之前的上传记录查找日志备份文件,保确保 LSN 连续。

使用差异备份文件恢复失败

差异备份恢复过程中失败。

使用该差异备份文件通过 SQL Server Management Studio 在本地环境执行恢复:

  • 如果成功,请提交工单处理。

  • 如果失败,请检查差异备份文件。

使用日志备份文件恢复失败

日志备份恢复过程中失败。

使用该差异备份文件通过 SQL Server Management Studio 在本地环境执行恢复:

  • 如果成功,请提交工单处理。

  • 如果失败,请检查日志备份文件。

备份文件下载失败TOS 文件不存在。在 TOS 检查备份文件,重新上传备份文件。关于如何在 TOS 上传文件,可参考创建存储桶上传文件
文件过大,空间不足。为实例扩容。关于扩容的更多信息,请参见变更实例配置
系统错误,请联系管理员非预期情况,请联系系统管理员。提交工单处理。