拿来吧你!本地SQL Server数据库迁移大法

Amazon RDS on VMware支持在本地VMware环境下为用户提供托管SQL Server数据库服务。SQL Server的管理工作向来以复杂与耗时著称,但Amazon RDS on VMware足可以帮助大家在VMware vSphere集群上轻松的配置、扩展并运营SQL Server。您可以将原有的本地SQL Sever数据库迁移至Amazon RDS on VMware上,借此发挥托管服务的固有优势。

  • Amazon RDS on VMware

    https://aws.amazon.com/cn/rds/vmware/

在将SQL Server数据库迁移至Amazon RDS on VMware时,您可以选择多种具体迁移方法。其一是使用SQL Server的原生导入与导出向导程序,将数据由本地SQL Server复制到Amazon RDS on VMware所管理的目标SQL Server内。使用这一选项,您可以分别迁移元数据与其他数据。另一种方法是使用SQL Server原生备份与还原功能迁移整个本地数据库。本文将向大家介绍如何使用VMware数据存储实现SQL Server备份与还原,借此将本地SQL Server数据库迁移至Amazon RDS on VMware

????  想要了解更多亚马逊云科技最新技术发布和实践创新,敬请关注2021亚马逊云科技中国峰会!点击图片报名吧~更多精彩内容,敬请期待8.19-20北京9.15深圳分会吧!

解决方案概述

我们只需完成以下三个简单步骤即可实现迁移:

  1. 对本地SQL Server数据库进行完整备份

  2. 将数据库备份文件(*.bak)上传至VMware数据存储。

  3. 将数据库备份还原至目标Amazon RDS for SQL Server。

下图所示,为这套解决方案的基本架构。

先决条件

在开始之前,请确保您的VMware vSphere环境已经在Amazon RDS on VMware上正常运行,同时满足以下要求:

1.VMware vSphere v6.5或更高的Enterprise Plus版本。

2.可用的Amazon账户。

3.运行在Amazon RDS on VMware上的vSphere集群。关于具体操作说明,请参阅开始使用Amazon RDS on VMware。

  • 开始使用Amazon RDS on VMware

    https://aws.amazon.com/cn/rds/vmware/getting-started/

4.VMware vSphere用户账户。

5.作为迁移源的SQL Server虚拟机。

6.安装有SQL Server客户端工具的虚拟机。在本文中,我们使用mssql-cli作为客户端工具。您也可以使用SQL Server Management Studio (SSMS)或者其他您熟悉的SQL Server客户端工具。

数据库迁移

要将本地SQL Server数据库迁移至Amazon RDS on VMware,请完成以下操作步骤:

  • 停止指向源数据库的应用程序连接,或者将数据库设为只读。

  • 对数据库执行完整备份。

  • 通过SQL Server虚拟机启动vSphere客户端。

  • 将数据库备份文件上传至数据存储。

以下截屏中的iSCSI为我们的数据存储,migration-demo为iSCSI数据存储下文件夹,AdventureWorksLT2014.bak则为完整备份文件的名称。

现在接下来,您可以将数据库备份还原至目标Amazon RDS for SQL Server。

  • 接入目标Amazon RDS for SQL Server。

在本文中,我们使用mssql-cli访问Amazon RDS for SQL Server。当然,您也可以使用SSMS或者您所熟悉的其他客户端工具。

为了让Amazon RDS能够通过VMware数据存储实现数据库备份还原,大家需要使用rds_set_configuration存储过程程序以设置还原流程中的vSphere环境信息。具体请使用以下参数:

配置参数 

vsphere_datacenter    

vSphere集群部署所在的vSphere数据中心名称。

vsphere_datastore    

数据库备份文件存储所在的数据存储名称。vSphere用户名称。用户需要有权限从vSphere端点处下载*.bak文件。例如,<vsphere_endpoint>/folder/ 

vsphere_username    

<filepath>?dcPath=<datacenter>&dsName=<datastore>

vsphere_password    

vSphere用户的密码。  

vsphere_endpoint  

vSphere端点(前缀应为HTTP或HTTPS)。 

  • 使用以下脚本,将Amazon RDS for SQL Server配置为从VMware数据存储处启用原生还原功能(请将其中的用户名与密码部分替换为您的vSphere用户凭证):

 1USE rdsadmin
 2
 3GO
 4
 5EXEC rds_set_configuration 'vsphere_datacenter', ‘ENV6-Datacenter’;
 6
 7EXEC rds_set_configuration 'vsphere_datastore', 'iSCSI';
 8
 9EXEC rds_set_configuration 'vsphere_username', 'user@vSphere.local';
10
11EXEC rds_set_configuration 'vsphere_password', '[password]';
12
13EXEC rds_set_configuration 'vsphere_endpoint', 'https://vcenter.env6.amazon.local';
14
15GO

以下截屏,为您的输出结果。

使用以下代码验证配置:

1USE rdsadmin
2
3GO
4
5
6
7rds_show_configuration
8
9GO

结果应包含您在存储程序rds-set_configuration中设定的值。

  • 使用以下代码运行数据库还原:

 1USE msdb
 2
 3GO
 4
 5
 6
 7EXEC rds_restore_database
 8
 9@restore_db_name='AdventureWorksLT2014',
10
11@datastore_path_to_restore_from='migration-demo/AdventureWorksLT2014.bak'
12
13GO
14GO

结果将返回一条task_id,您可以用它跟踪任务进度。在以下截屏中,返回的task_id为10。

我们使用以下代码,跟踪数据库还原任务的进度:

1EXEC rds_task_status @task_id = 10
2
3GO

在还原完成之后,您应看到类似于以下截屏的结果,其中% complete列显示为100,而lifecycle列显示为SUCCESS。结果还应显示出还原数据库所耗费的总时长。在本示例中,AdventureWorksLT2014数据库的还原操作耗费了2分钟。

在某些情况下,您也可以取消当前正在进行的任务。当任务执行过程中,lifecycle列将显示INPROGRESS值。例如,在任务进行期间,您可以运行以下脚本以取消上一项还原任务:

1USE msdb
2
3GO
4
5
6
7EXEC rds_cancel_task @task_id = 10
8
9GO

在还原任务完成之后,您可以将应用程序指向运行在vSphere上的Amazon RDS for SQL Server,并开始针对Amazon RDS for SQL Server实例上的数据库运行查询(详见以下截屏)。

局限性

当然,这项功能也有自己的局限性。截至本文撰稿时,相关局限包括:

  • 仅支持对完整数据库备份进行还原。

  • 不支持从多个文件备份进行还原。

  • 不支持将Amazon RDS for SQL Server备份至VMware数据存储。Amazon RDS on VMware目前仅支持SQL Server 2016 SP2 Enterprise Edition。因此,还原功能只支持从相同或更早的SQL Server版本处获取到的备份文件。

总结

本文介绍了如何使用SQL Server原生备份及还原功能,并配合VMware数据存储将本地SQL Server数据库迁移至Amazon RDS on VMware。

关于Amazon RDS on VMware的更多详细信息,请参阅Amazon RDS on VMware。

  • Amazon RDS on VMware

    https://aws.amazon.com/cn/rds/vmware/


本篇作者

Wanda He

亚马逊云科技高级数据库专业

解决方案架构师

她与客户一道在亚马逊云科技上设计、部署并优化各类关系数据库。

听说,点完下面4个按钮

就不会碰到bug了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值