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深圳分会吧!
解决方案概述
我们只需完成以下三个简单步骤即可实现迁移:
对本地SQL Server数据库进行完整备份
将数据库备份文件(*.bak)上传至VMware数据存储。
将数据库备份还原至目标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了!