使用以下命令将 Amazon RDS for S SQL erver 表导出到 S3 存储桶 AWS DMS - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用以下命令将 Amazon RDS for S SQL erver 表导出到 S3 存储桶 AWS DMS

由 Subhani Shaik 创作 () AWS

环境:PoC 或试点

来源:RDS

目标:S3

R 类型:不适用

工作负载:Microsoft

技术:数据库; CloudNative

AWS服务:AWSDMS;亚马逊;亚马逊 S3RDS;S AWS ecrets Manager;Ident AWS ity and Access Management

Summary

适用于SQL服务器的亚马逊关系数据库服务 (AmazonRDS) 不支持将数据加载到亚马逊网络服务 (AWS) 云上的其他数据库引擎链接服务器上。相反,您可以使用 AWS Database Migration S SQL erver (AWSDMS) 将 Amazon RDS for Server 表导出到亚马逊简单存储服务 (Amazon S3) 存储桶,其他数据库引擎可以在该存储桶中使用数据。

AWSDMS帮助您AWS快速、安全地将数据库迁移到。源数据库可在迁移过程中保持全面运行,从而最大程度地为依赖该数据库的应用程序减少停机时间。AWSDMS可以将您的数据迁入和迁出最广泛使用的商业和开源数据库。

此模式在配置AWSDMS端点时使用 S AWS ecrets Manager。 服务可帮助您保护访问您的应用程序、服务和 IT 资源所需密钥。您可以使用该服务在数据库凭证、密钥和其他API密钥的整个生命周期中对其进行轮换、管理和检索。用户和应用程序通过调用 Secrets Manager 来检索机密,从而减少对敏感信息进行硬编码的需要。Secrets Manager 提供密钥轮换,内置了亚马逊RDS、亚马逊 Redshift 和亚马逊 DocumentDB 的集成。此外,该服务还可以扩展到其他类型的机密,包括密API钥和OAuth令牌。借助 Secrets Manager,您可以通过使用细粒度的权限来控制对密钥的访问权限,并集中审核AWS云端、第三方服务和本地资源的密钥轮换。

先决条件和限制

先决条件

  • 一个活跃的AWS账户

  • 一个 S3 存储桶

  • 虚拟私有云 (VPC)

  • 数据库子网

  • Amaz RDS on SQL 服务器版

  • 一个 I AWS dentity and Access Management (IAM) 角色,可以代表 Amazon RDS 实例访问 S3 存储桶(列出、获取和放置对象)。

  • 用于存储RDS实例凭证的 Secrets Manager。

架构

技术堆栈

  • Amaz RDS on SQL 服务器版

  • AWS DMS

  • Amazon S3

  • AWS Secrets Manager

目标架构

下图显示了在的帮助下将数据从 Amazon RDS 实例导入 S3 存储桶的架构AWSDMS。

描述如图所示。
  1. 通过源终端节点连接到源 Amazon RDS 实例的AWSDMS迁移任务

  2. 从源 Amazon RDS 实例复制数据

  3. 通过目标终端节点连接到目标 S3 存储桶的AWSDMS迁移任务

  4. 以逗号分隔值 () CSV 格式将复制的数据导出到 S3 存储桶

工具

AWS服务

其他服务

操作说明

任务描述所需技能

创建 Amazon RDS SQL 服务器版实例。

  1. 打开AWS管理控制台 RDS,选择并使用标准创建选项来创建具有所需版本的 Amazon RDS 实例,例如 SQL Server Express 版、SQL服务器标准版或 Server Enterpris SQL e 版。对于版本,请选择 2016 年或更高版本。

  2. 模板下,选择开发/测试

DBA, DevOps 工程师

设置实例的凭证。

  1. 为实例输入名称。

  2. 提供 Amazon RDS 实例的用户名和密码。

DBA, DevOps 工程师

配置实例类别、存储、自动扩缩以及可用性。

  1. 从列表中选择数据库实例类标准类内存优化突发性能。选择可分配为此数据库实例规划的工作负载所需计算、网络和内存容量的数据库实例类型。有关更多信息,请参阅AWS文档

  2. 从列表中选择存储类型:通用型SSDIOPSSSD、已配置磁性。根据需要分配默认存储大小。

  3. 选择 “启用存储自动扩展”,根据您的容量规划增加 Amazon RDS 存储空间。

  4. 支持带有复制实例的多可用区部署。AWS DMS在可用区、内部硬件或网络中断时,AWSDMS将创建一个备用实例,并通过自动故障转移到备用副本来提供高可用性 (HA)。根据您导入的大小,选择相应选项。

DBA, DevOps 工程师

指定VPC、子网组、公有访问权限和安全组。

根据需要选择VPC数据库子网组VPC安全组来创建 Amazon RDS 实例。遵循最佳实践,例如:

  • 请勿启用RDS数据库实例的公共访问权限。

  • 请勿在安全组中使用 CIDR 0.0.0.0/0。

  • 仅使用所需的 IP 地址和端口详细信息访问实RDS例。

DBA, DevOps 工程师

配置监控、备份和维护。

  1. 指定所需备份选项。默认情况下,启用备份,保留期为一天。

  2. 选择相应的 auto 次要版本升级维护窗口设置,将 Amazon 对数据库进行待处理的修改或维护RDS。

  3. 选择创建数据库

DBA, DevOps 工程师
任务描述所需技能

创建表和加载示例数据。

在新数据库中创建一个表。使用其他信息部分中的示例代码将数据加载到表中。

DBA, DevOps 工程师
任务描述所需技能

创建密钥。

  1. 打开 Secrets Manager 控制台并选择存储新密钥

  2. 输入 Amazon for SQL Server 数据库RDS的用户名和密码。

此密钥将用于AWSDMS源端点。

DBA, DevOps 工程师
任务描述所需技能

创建用于访问 Amazon 的IAM角色RDS。

  1. 在控制台上 IAM,选择并创建一个IAM角色来授予 S3 存储桶对 Amazon 的读/写访问权限。RDS

  2. 功能,选择S3 集成

DBA, DevOps 工程师
任务描述所需技能

创建 S3 存储桶。

要保存来自 Amazon f RDS o SQL r Server 的数据,请在控制台上选择 S3,然后选择创建存储桶。确保 S3 存储桶不可公开访问。

DBA, DevOps 工程师
任务描述所需技能

为创建一个IAM角色AWSDMS以访问 Amazon S3。

创建一个AWSDMS允许从 S3 存储桶中列出、获取和放置对象的IAM角色。

DBA, DevOps 工程师
任务描述所需技能

创建AWSDMS源端点。

  1. 在控制台上,选择 Database Migration Service,然后选择端点。创建源终端节点,选中 “选择RDS数据库实例” 复选框。

  2. 对于源引擎,请选择 Microsoft SQL 服务器

  3. 在 “终端节点数据库访问权限” 下,选择 S AWSecrets Manager,然后输入您之前创建的密钥和IAM角色以及数据库名称。

  4. 测试源端点。

DBA, DevOps 工程师

创建AWSDMS目标端点。

创建目标端点,选择 Amazon S3 作为目标引擎

提供您之前创建的IAM角色的 S3 存储桶名称和文件夹名称。

DBA, DevOps 工程师

创建AWSDMS复制实例。

在同一个VPC子网和安全组中,创建AWSDMS复制实例。有关选择实例类的更多信息,请参阅AWS文档

DBA, DevOps 工程师

创建AWSDMS迁移任务。

要将数据从 Amazon f RDS or S SQL erver 导出到 S3 存储桶,请创建数据库迁移任务。对于迁移类型,请选择迁移现有数据。选择您创建的AWSDMS终端节点和复制实例。

DBA, DevOps 工程师
任务描述所需技能

运行数据库迁移任务。

要导出SQL服务器表数据,请启动数据库迁移任务。该任务会以CSV格式将数据从 Amazon f RDS or S SQL erver 导出到 S3 存储桶。

DBA, DevOps 工程师
任务描述所需技能

删除资源。

为了避免产生额外费用,请使用控制台按以下顺序删除资源:

  1. 迁移任务

  2. 复制实例

  3. 端点

  4. S3 存储桶

  5. 数据库实例

DBA, DevOps 工程师

相关资源

其他信息

若要创建数据库和表并加载示例数据,请使用以下代码。

--Step1: Database creation in RDS SQL Server CREATE DATABASE [Test_DB] ON PRIMARY ( NAME = N'Test_DB', FILENAME = N'D:\rdsdbdata\DATA\Test_DB.mdf' , SIZE = 5120KB , FILEGROWTH = 10%) LOG ON ( NAME = N'Test_DB_log', FILENAME = N'D:\rdsdbdata\DATA\Test_DB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO --Step2: Create Table USE Test_DB GO Create Table Test_Table(ID int, Company Varchar(30), Location Varchar(20)) --Step3: Load sample data. USE Test_DB GO Insert into Test_Table values(1,'AnyCompany','India') Insert into Test_Table values(2,'AnyCompany','USA') Insert into Test_Table values(3,'AnyCompany','UK') Insert into Test_Table values(4,'AnyCompany','Hyderabad') Insert into Test_Table values(5,'AnyCompany','Banglore')