云数据库 SQL Server 冷备迁移

这里说明如何通过 SQL Server 控制台,从其他云厂商或自建 SQL Server 数据库迁移数据至腾讯云数据库 SQL Server。

相关产品
云数据库 SQL Server 产品页,含版本规格、价格与购买入口。

一、操作场景

冷备迁移即通过备份文件(格式为 bak、tar、zip)进行数据恢复,适用于其他云厂商或自建 SQL Server 数据库,迁移数据至腾讯云数据库 SQL Server,且业务允许停机进行备份的场景。

腾讯云数据库 SQL Server 支持用户通过 对象存储 COS 文件或本地上传文件,来迁移数据至云数据库 SQL Server。

二、触发器迁移说明

仅支持以下迁移、创建、修改。其他触发器不支持迁移,并且迁移完成后会被自动删除。

·CREATE_TABLE, ALTER_TABLE, DROP_TABLE

·CREATE_VIEW, ALTER_VIEW, DROP_VIEW

·CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE

·CREATE_FUNCTION, ALTER_FUNCTION, DROP_FUNCTION

·CREATE_INDEX, ALTER_INDEX, DROP_INDEX

·CREATE_STATISTICS, DROP_STATISTICS, UPDATE_STATISTICS

·CREATE_SYNONYM, DROP_SYNONYM

·CREATE_TYPE, DROP_TYPE

·DDL_TABLE_EVENTS, DDL_VIEW_EVENTS 等 DDL 事件组

·其他非安全敏感 DDL 事件

三、COS 原文件链接说明

在使用冷备迁移的过程中,若备份下载权限设置为“仅内网可下载”,则生成的备份链接不能进行备份恢复操作(链接含有 x-cos-security-token 参数,因此不能进行备份恢复),此时,你需要解除 VPC 和 IP 地址对下载权限的限制才能使用冷备迁移功能,请到 下载配置 中调整下载权限为“外网和内网均可下载”后,重新生成备份链接,再使用新链接进行备份文件上传。

四、注意事项

·迁移之前需保证目的实例 SQL Server 版本不低于源实例版本。

·迁移库不能与云数据库 SQL Server 有库名重复。

·若备份文件较大,建议采用“从 COS 下载文件”的方式,即先将文件上传 COS 后使用 COS 链接进行恢复,上传备份文件至 COS 和获取 COS 链接请参见 上传备份至 COS。

·全量备份文件 + 日志文件恢复:目标实例和源实例不需要同版本,目标实例版本高即可。

·全量备份文件 + 差异备份恢复:目标实例和源实例必须要同版本。

·bak、tar、zip 格式文件的后缀请注意大小写拼写,仅支持小写,不支持大写。

·备份文件恢复上云时,需要预留出的磁盘空间大小 =(压缩比 + 1)* 压缩后的备份文件大小,否则可能会出现因磁盘空间不足导致的备份恢复失败。

五、操作步骤

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 上进行数据恢复,下文为你介绍跨账号备份恢复的注意事项和操作方法。

七、操作步骤

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)用于删除增量备份导入任务。
赞 (0)
上一篇 4天前
下一篇 4天前