You need to enable JavaScript to run this app.
导航
通过 TOS 上传本地数据库的全量备份数据至云数据库 SQL Server 版实例
最近更新时间:2024.08.30 15:28:18首次发布时间:2024.07.05 16:09:55

云数据库 SQL Server 版支持通过对象存储 TOS 将本地 SQL Server 数据迁移至云上 SQL Server,适用于数据备份、灾难恢复、业务扩展、开发和测试等场景。本文介绍如何通过 TOS 将本地数据库的全量备份数据上传至云数据库 SQL Server 版实例。

背景信息

迁移方案

云数据库 SQL server 提供两种数据迁移上云的方案,具体如下所示:

  • 方案一:全量备份上云

    全量备份上云可以实现一次性数据的迁移上云,但需要长时间的停止业务,将导出的全量备份文件上传至对象存储,然后恢复到目标数据库实例中。

  • 方案二:全量 + 增量备份上云

    全量 + 增量备份上云可以持续迁移数据上云,但需要在完成全量备份的基础上,通过多次增量文件恢复,实现迁移过程中业务中断最小化。增量恢复通常需要进行多次增量备份恢复操作。每次恢复后,目标数据库都将处于导入中状态,此时数据库将不可读写。只有完成最后一次增量备份恢复后,数据库才会变为运行中状态。

不同规模的数据库迁移上云场景存在一定的差异,具体如下表所示:

业务中断时长需要迁移的数据库大小(GiB)推荐方案
30 min ~ 2 h< 100 GiB方案一
≥ 100 GiB方案二
2 h ~ 4 h< 200 GiB方案一
≥ 200 GiB方案二
4 h ~ 8 h< 500 GiB方案一
≥ 500 GiB方案二

说明

  • 如果业务可以接受任意中断时长,则适用于方案一。

  • 如果业务无法接受任意中断时长,则不适用于本文档介绍的迁移方案。

迁移流程

本示例以迁移 100GiB 的数据库,从本地数据中心全量 + 增量的迁移过程为例介绍迁移流程,具体如下表所示:

上云阶段步骤说明

全量阶段

准备工作

准备工作包括:

  • 完成数据库控制台 CheckDB 检查。

  • 关闭本地环境备份系统。

  • 修改数据库为 FULL 恢复模式。

数据库完全备份开始对线下数据库做 FULL Backup,耗时约 30 分钟。 压缩备份按照 50% 比例计算,备份完成后,备份文件大小约为 50GiB。
上传完全备份至 TOS上传 50GiB 备份文件到 TOS Bucket,按公网 10MB/s,耗时约 2 小时。
上云完全备份文件开始在云数据库 SQL Server 版控制台恢复 FULL Backup 文件,耗时约 1 小时。
打开数据库上云完成完成数据库上线,如果选择异步执行数据库控制台操作,上线速度快,耗时约 1 分钟。

说明

在进行全量备份迁移上云时,本示例全量备份迁移 100 GiB 的数据上云需要中断应用的时间约为 3 小时 31 分钟。

迁移时间

一次完成的备份迁移阶段如下表所示:

阶段步骤描述
导出数据库全量备份文件备份文件该阶段主要耗时为生成数据库备份文件所需的时间,通常取决于源数据库的配置与大小,具体时间需要您根据源数据库的配置进行预估。

上传备份文件至对象存储 TOS 桶

对象存储 TOS 不限速,如果您是通过公网访问对象存储 TOS 时,上传下载速度受公网带宽限制。例如:公网带宽为 10MB/s 时,在没有其他因素影响网络的情况下上传的速度为 10MB/s。

通过对象存储 TOS 恢复上云任务全量恢复至目标端云数据 SQL Server 版恢复速度通常约为 100GiB/h。
  • 迁移时长 = 阶段 ① 耗时 + 阶段 ② 耗时 + 阶段 ③ 耗时

  • 业务中断时长 = 上传对象存储 TOS + 创建对象存储 TOS 恢复任务

注意事项

  • 仅支持将低版本的备份文件迁移至高版本数据库实例,不支持将高版本备份文件迁移至低版本。版本限制如下所示:

    • 数据库商用版本:建议从低版本到高版本,例如支持从 Web 版到标准版到企业版。

    • 数据库兼容版本:例如仅支持从 SQL Server 2012 迁移到 SQL Server 2019,不支持从 SQL Server 2019 迁移至 SQL Server 2012。

  • 备份文件名不能包含特殊字符,特殊字符包括 \/:*?"<>|!@#$%^&*()_+-=

  • 在备份数据恢复上云任务没有完成前,请不要删除对象存储 TOS 上的备份文件,否则会导致迁移上云失败。

  • 备份文件的后缀名必须为 bakdifftrnlog,具体如下所示:

    • bak:表示全量备份文件。

    • diff:表示差异备份文件。

    • trnlog:表示事务日志备份文件。

    说明

    如果备份文件的后缀不是上述格式,那么系统可能无法正确识别该文件类型,从而影响后续操作。

  • 在进行生产环境数据库迁移前,建议您先在开发或测试环境进行实际的测试评估。如果需要在生产环境中运行评估,建议在业务低峰期测试,降低业务影响。

适用场景

云数据库 SQL Server 版数据库迁移,适用于以下场景:

  • 数据备份和灾难恢复:云数据库提供了高效的备份和灾难恢复解决方案。在硬件故障或数据被意外损坏时,可以从云备份中恢复数据。

  • 业务扩展:如果您的业务正在扩展,需要更多的服务器和存储资源来处理数据需求,那么将数据迁移到云数据库可以降低硬件和运维成本,同时云数据库可以根据业务需求进行弹性扩展。

  • 实时业务:云数据库具有高效、快速的处理能力,可以支持大量并发用户的实时访问和查询,非常适合需要实时业务支持的场景。

  • 开发和测试环境:云数据库提供了一个独立的,易于构建和管理的环境,非常适合用作开发和测试环境。

前提条件

类别说明

对象存储 TOS

云数据库 SQL Server 版

  • 已创建数据库实例。详细操作,请参见创建实例

  • 目标数据库实例的可用存储空间为待还原数据库总量的 1.5 倍,如果实例的存储空间不够,需提高实例的空间。详细操作,请参见常规变配

  • 执行以下命令设置数据库的状态为完全恢复模型,该模型可以将所有的事务记录在事务日志中,在发生故障时可以恢复所有操作。

    ALTER DATABASE [DBName] SET RECOVERY FULL WITH NO_WAIT;
    
  • 执行以下命令设置数据库的 AUTO_CLOSE 选项为 OFF,释放数据库使用的所有系统资源:

    ALTER DATABASE [DBName] SET AUTO_CLOSE OFF WITH NO_WAIT;
    

其他

  • 已关闭本地环境备份系统。

  • 鉴于云数据库 SQL Server 版的默认语言环境为英文,建议您将其修改为中文,以方便后续操作。详细操作,请参见如何修改 SQL Server 的语言环境

  • 在本地数据库环境中执行DBCC CHECKDB 语句,以确保数据库中没有任何的 allocation errorsconsistency errors。并获得以下正常执行结果:

    ...
    CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxx'.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    

步骤一:备份本地文件

说明

在备份本地文件前,需确保已停止数据的写入,由于新写入的数据不会被备份,导致数据不一致。

  1. 在本地 SQL Server 数据库的查询编辑器中,执行以下命令备份全量数据:

    BACKUP DATABASE [<db_name>] TO  DISK = N'<backup location, e.g. E:\backup\dbname.bak' WITH NOFORMAT, NOINIT,  NAME = N'<dbname>-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    
  2. 修改备份文件的名称为:数据库名_备份类型_时间戳.bak

步骤二:上传数据库备份文件

  1. 创建存储桶

    1. 登录对象存储控制台

    2. 在左侧导航栏单击桶列表,在页面左上方单击创建桶

    3. 设置存储桶参数,部分参数如下表,然后单击确定

      参数说明
      区域需和云数据库 SQL Server 版的实例在同一个地域下。
      桶策略需设置为公共读。即允许所有人都可以对公共读权限的存储桶进行读取操作。
      默认存储类型需设置为标准存储。该存储类型适用于频繁被访问。
      服务端加密需设置为无,不加密。
  2. 上传数据库备份文件

    • 方式一:(推荐)通过 TOS Browser 上传文件

      1. 登录 TOS Browser。关于如何获取 AK 和 SK 的操作步骤,请参见获取 Access Key

      2. 桶列表页面,单击目标 Bucket。

      3. 在目标 Bucket 页面,单击上传文件

      4. 上传文件控制面板,上传文件后,单击确定

    • 方式二:通过对象存储 TOS 控制台上传文件

      1. 登录对象存储控制台

      2. 在左侧导航栏,单击桶列表

      3. 桶列表页面,单击目标桶名称。

      4. 文件列表页面,单击上传文件

      5. 上传文件页面,上传文件后,单击确定

步骤三:创建全量数据上云任务

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

  2. 在顶部菜单栏的左上角,选择实例所属的地域。

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

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

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

    参数说明
    恢复方式默认为自建 TOS 且不支持选择。
    桶名存储备份文件的 TOS 桶的名称。

    选择备份

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

    说明

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

    上云方案

    可选择打开数据库不打开数据库

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

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

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

    待恢复数据库名称

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

    说明

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

  6. 单击提交

步骤四:查看备份上云记录

您在完成备份上云操作后,可以查看 TOS 备份恢复任务。具体操作,请参见查看 TOS 备份恢复任务