有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文为您介绍如何通过 SQL Server 控制台,从其他云厂商或自建 SQL Server 数据库迁移数据至腾讯云数据库 SQL Server。

操作场景

冷备迁移即通过备份文件(格式为 bak、tar、zip)进行数据恢复,适用于其他云厂商或自建 SQL Server 数据库,迁移数据至腾讯云数据库 SQL Server,且业务允许停机进行备份的场景。
腾讯云数据库 SQL Server 支持用户通过 对象存储 COS 文件或本地上传文件,来迁移数据至云数据库 SQL Server。
注意:
如果使用 zip 和 tar 格式文件进行备份恢复,需要保证解压后文件跟解压前的 zip 和 tar 文件在同一层路径文件夹,如果在下一层路径文件夹中将无法解析。

注意事项

迁移之前需保证目的实例 SQL Server 版本不低于源实例版本。
迁移库不能与云数据库 SQL Server 有库名重复。
若备份文件较大,建议采用“从 COS 下载文件”的方式,即先将文件上传 COS 后使用 COS 链接进行恢复,上传备份文件至 COS 和获取 COS 链接请参见 上传备份至 COS
全量备份文件 + 日志文件恢复:目标实例和源实例不需要同版本,目标实例版本高即可。
全量备份文件 + 差异备份恢复:目标实例和源实例必须要同版本。
bak、tar、zip 格式文件的后缀请注意大小拼写,仅支持小写,不支持大写。

操作步骤

1. 登录 SQL Server 控制台,在实例列表,单击实例 ID,进入实例管理页面。
2. 在实例管理页面,选择备份恢复页,单击新建

3. 在创建备份恢复项目页面,完成备份恢复设置,单击创建任务

参数
说明
任务名称
由字母,数字、下划线组成,最长60个字符。
备份上传方式
支持本地直接上传文件、从 COS 下载文件。
恢复方式
支持全量备份文件、支持全量备份文件+日志文件、支持全量备份文件+差异备份。
说明:
如需取消创建备份恢复任务,请单击取消,取消后在备份恢复任务列表不会保留任务记录。
4. 在创建备份恢复项目页面,完成备份文件上传,单击保存。 根据步骤3中选择的备份上传方式,分为以下两种操作情形,您可对应参考操作。
注意:
若备份文件较大,建议采用“从 COS 下载文件”的方式,即先将文件上传 COS 后使用 COS 链接进行恢复,上传备份文件至 COS 和获取 COS 链接请参见 上传备份至 COS
直接上传备份文件
从 COS 下载文件

参数
说明
恢复方式
选择全量备份文件 + 日志文件或全量备份文件 + 差异备份进行恢复时,对文件名称有要求,可单击获取备份命令生成对应的备份命令,来生成符合文件命名规范的备份文件。
全量备份文件恢复:不能使用全量备份 + 差异备份、全量备份 + 日志文件的完整备份名称。
全量备份文件 + 差异备份恢复:
全量备份文件名称要求:dbname_localtime_1full1_1noreconvery1.bak
增量备份文件名称要求:dbname_localtime_1diff1_1noreconvery1.bak
最后一次增量备份文件名称要求:dbname_localtime_1diff1_1reconvery1.bak
全量备份文件 + 日志文件恢复:
全量备份文件名称要求:dbname_localtime_2full2_2noreconvery2.bak
日志文件名称要求:dbname_localtime_2log2_2noreconvery2.bak
最后一次日志文件名称要求:dbname_localtime_2log2_2reconvery2.bak
备份上传
单击上传,从本地导入备份文件。
数据库重命名
选填操作。开启后,将重置备份文件中原来的数据库名,恢复至云上数据库后将其指定为新的数据库名,需填写备份恢复前原来的数据库名以及为恢复后新的数据库命名。
说明:
最多支持重命名5个数据库。
如果原数据库存在未重命名的数据库,则备份恢复任务完成后未重命名的数据库名称保持不变。
下载设置
支持上传完后自动恢复、手动启动恢复任务。 上传完后自动恢复:单击保存后,即启动恢复任务。 手动启动恢复任务:单击保存后,在备份恢复页面手动启动任务,上传后的备份文件仅保存24小时。
说明:
在备份文件上传页面,支持单击上一步回看和编辑备份恢复设置。
回退至备份恢复设置页面后,如不需要变动,可单击下一步进行备份文件上传,如需取消任务,可单击取消

回退至备份恢复设置页面后,如需重新编辑任务名称、备份上传方式、恢复方式,可单击编辑进行操作,单击编辑后,之前的第二步中备份文件上传页面内容将被清空,可在重新编辑完成后,单击创建任务进入下一步后重新设置。

参数
说明
恢复方式
选择全量备份文件+日志文件或全量备份文件+差异备份进行恢复时,对文件名称有要求,可单击获取备份命令生成对应的备份命令,来生成符合文件命名规范的备份文件。
全量备份文件恢复:不能使用全量备份+差异备份、全量备份+日志文件的完整备份名称。
全量备份文件+差异备份恢复:
全量备份文件名称要求:dbname_localtime_1full1_1noreconvery1.bak
增量备份文件名称要求:dbname_localtime_1diff1_1noreconvery1.bak
最后一次增量备份文件名称要求:dbname_localtime_1diff1_1reconvery1.bak
全量备份文件+日志文件恢复:
全量备份文件名称要求:dbname_localtime_2full2_2noreconvery2.bak
日志文件名称要求:dbname_localtime_2log2_2noreconvery2.bak
最后一次日志文件名称要求:dbname_localtime_2log2_2reconvery2.bak
COS 原文件链接
粘贴 COS 上原备份文件的链接。
说明:
从 COS 下载文件时,请注意 COS 原文件链接权限,支持以下两种权限:
公有读权限:可直接复制 COS 下载链接。
私有读权限:请通过 COS 侧提供预签名授权下载,详情参考 预签名授权下载
bak、tar、zip 格式文件的后缀请注意大小拼写,仅支持小写,不支持大写。

数据库重命名
选填操作。开启后,将重置备份文件中原来的数据库名,恢复至云上数据库后将其指定为新的数据库名,需填写备份恢复前原来的数据库名以及为恢复后新的数据库命名。
说明:
最多支持重命名5个数据库。
如果原数据库存在未重命名的数据库,则备份恢复任务完成后未重命名的数据库名称保持不变。

说明:
在备份文件上传页面,支持单击上一步回看和编辑备份恢复设置。
回退至备份恢复设置页面后,如不需要变动,可单击下一步进行备份文件上传,如需取消任务,可单击取消


回退至备份恢复设置页面后,如需重新编辑任务名称、备份上传方式、恢复方式,可单击编辑进行操作,单击编辑后,之前的第二步中备份文件上传页面内容将被清空,可在重新编辑完成后,单击创建任务进入下一步后重新设置。

5. 在备份恢复任务列表,查看备份恢复任务。
全量备份文件恢复:恢复任务启动完成后将自动结束。
全量备份文件 + 差异备份、全量备份文件 + 日志文件:全量备份恢复完成后,该恢复任务支持以子任务的形式继续上传差异备份文件/日志文件,当子任务选择“最后一次恢复”,且该子任务成功完成后,整个备份恢复任务将自动结束。


最佳实践

云数据库 SQL Server 支持跨账号进行备份恢复,即从账号 A 下的一个实例获取备份文件下载链接,在账号 B 上进行数据恢复,下文为您介绍跨账号备份恢复的注意事项和操作方法。
注意:
从账号 A 下的一个实例获取备份文件下载链接后,在账号 B 上去做备份恢复,账号A 和 B 需要在同一个地域。
此备份恢复方式,目前支持的备份文件格式为 bak、tar 和 zip 文件。
bak、tar、zip 格式文件的后缀请注意大小拼写,仅支持小写,不支持大写。
在控制台获取的备份文件链接,需注意备份文件形式为单库的备份文件才支持跨同地域跨账号备份恢复。
当前需对下载的备份链接做解码,具体请参考 解码说明

操作步骤

1. 使用账号 A 登录 SQL Server 控制台,在实例列表,单击实例 ID,进入实例管理页面。
2. 在实例管理页,单击备份管理,在数据备份列表找到目标单库备份文件,单击其操作列的查看详情

3. 在弹窗中单击下载,然后复制下载地址链接。

4. 单击 在线解码,在跳转界面对复制的链接进行解码

说明
仅需要对下载链接的前面部分进行解码。 示例:假设某个下载链接为: https://sqlserver-bucket-bj-1258415541.cos.ap-beijing.myqcloud.com/1312368346%2fsqlserver%2fmssql-8e5hjaiq%2fbackup%2fautoed_instance_58013012_AdventureWorksDW2012_2022_12_29023915.bak?********** 我们仅需要选取直到 .bak?的部分地址去做解码,转码后再和后半部分组合即可获取到用于跨账号去做备份恢复的链接。 针对以上示例链接,我们取做解码的部分地址为: https://sqlserver-bucket-bj-1258415541.cos.ap-beijing.myqcloud.com/1312368346%2fsqlserver%2fmssql-8e5hjaiq%2fbackup%2fautoed_instance_58013012_AdventureWorksDW2012_2022_12_29023915.bak? 在线解码后为: https://sqlserver-bucket-bj-1258415541.cos.ap-beijing.myqcloud.com/1312368346/sqlserver/mssql-8e5hjaiq/backup/autoed_instance_58013012_AdventureWorksDW2012_2022_12_29023915.bak?

则最终用于跨账号备份恢复的链接为: https://sqlserver-bucket-bj-1258415541.cos.ap-beijing.myqcloud.com/1312368346/sqlserver/mssql-8e5hjaiq/backup/autoed_instance_58013012_AdventureWorksDW2012_2022_12_29023915.bak?**********
5. 复制用于跨账号备份恢复的链接,使用账号 B 登录 SQL Server 控制台,在实例列表,单击实例 ID,进入实例管理页面。
6. 在实例管理页,选择备份恢复 > 新建

7. 在窗口下,完成如下配置,单击创建任务


参数
说明
任务名称
输入任务名称,任务名称由字母,数字、下划线组成,最长60个字符。
备份上传方式
选择从 COS 下载文件。
恢复方式
选择全量备份文件。
8. 在备份文件上传窗口,粘贴链接,单击保存

9. 跳转至备份恢复页面,找到刚才创建的备份任务,在其操作列单击启动
10. 在备份恢复列表,查看到迁移任务状态显示迁移成功即完成跨账号备份恢复操作。


相关 API

API
描述
接口(CreateBackupMigration)用于创建备份导入任务。
接口(ModifyBackupMigration)用于修改备份导入任务。
接口(StartBackupMigration)用于启动备份导入任务。
接口(DescribeBackupMigration)用于创建增量备份导入任务。
接口(DeleteBackupMigration)用于删除备份导入任务。
接口(DescribeUploadBackupInfo)用于查询备份上传权限。
接口(CreateIncrementalMigration)用于创建增量备份导入任务。
接口(ModifyIncrementalMigration)用于修改增量备份导入任务。
接口(StartIncrementalMigration)用于启动增量备份导入任务。
接口(DescribeIncrementalMigration)用于查询增量备份导入任务。
接口(DescribeBackupCommand)用于查询以规范的格式创建备份的命令。
接口(DescribeBackupUploadSize)用于查询上传的备份文件大小。
接口(DescribeUploadIncrementalInfo)用于查询增量备份上传权限。
接口(DeleteIncrementalMigration)用于删除增量备份导入任务。