在 Amazon RDS Custom for SQL Server 上配置链接服务器 数据库博客

产品展示

25

在 Amazon RDS Custom 上配置 SQL Server 的 Linked Servers

关键要点

在本文中,我们将介绍如何在 Amazon RDS Custom 上配置 SQL Server 的 Linked Servers。通过设置链接服务器功能,您能够从多个远程数据源检索数据而无需进行应用代码更改。我们将详细讲解配置过程,包括创建同构和异构链接服务器的步骤,以及更新数据库驱动程序的最佳实践。

Amazon Relational Database Service (Amazon RDS) Custom 是一种托管数据库服务,旨在简化云中数据库的设置、操作和扩展,同时允许您访问底层操作系统和数据库环境。您可以为 SQL Server 配置一个 MultiAZ 的 Amazon RDS Custom 实例,以实现高度可用的环境并具有自动故障转移的能力。

SQL Server 的链接服务器功能使您能够灵活地从多个远程数据源提取数据,而无需更改应用代码。只需安装相应的数据库驱动程序,您就可以从异构数据库系统例如 Oracle、PostgreSQL 等中提取数据。要与异构链接服务器连接,您必须在 RDS Custom 实例上本地安装相应的驱动程序。RDS Custom for SQL Server 赋予数据库管理员DBA对数据库实例和底层操作系统的精细控制,使您可以安装应用所需的驱动程序和软件。

在本文中,我们将指导您如何从 RDS Custom for SQL Server 配置指向目标 RDS for SQL Server 实例的同构链接服务器,以及指向目标 Amazon RDS for Oracle 实例的异构链接服务器。我们还将分享使用定制引擎版本CEV持久化和更新数据库驱动程序版本的最佳实践,这将有助于支持与 PostgreSQL 或 Amazon Redshift 等异构链接服务器的使用案例。

解决方案概述

为实现链接服务器功能,我们部署如下的 MultiAZ 架构:

实现此解决方案时,请按照以下高层步骤进行操作:

准备运行 SQL Server 的本地和远程数据源。创建链接服务器配置。测试链接服务器连接并查询链接服务器以验证数据。

前提条件

您必须确保本地 RDS Custom for SQL Server 实例与远程的 Amazon RDS for SQL Server 或 Amazon RDS for Oracle 实例之间能够进行连接。如果您是第一次使用 RDS Custom for SQL Server,可以参考 此指南 快速设置 CloudFormation 来完成前提条件。

准备运行 SQL Server 的本地和远程数据源

要在 RDS Custom for SQL Server 上创建一个测试数据库和包含样本数据的表,请完成以下步骤:

打开 SQL Server Management Studio (SSMS)。连接到运行在 RDS Custom for SQL Server 上的本地数据源。打开一个新的查询窗口。运行以下查询:

sqlCREATE Database [SampleDB]GO

USE [SampleDB]GO

CREATE TABLE [SampleDB][dbo]EmployeeGO

INSERT INTO [SampleDB][dbo][Employee]VALUES (1 John Doe 35 Male) (2 Bob Doe 45 Male) (3 Mary Johnson 35 Female) (4 Julie Jordan 30 Female) (5 James Miller 39 Male)

SELECT FROM [SampleDB][dbo][Employee]

现在在远程服务器上创建一个测试数据库和包含样本数据的表:

在 SSMS 中连接到运行在 Amazon RDS for SQL Server 上的远程数据源。打开一个新的查询窗口。运行以下查询:

sqlCREATE Database [RemoteSampleDB]GO

USE [RemoteSampleDB]GO

CREATE TABLE Stores ( StoreID INT PRIMARY KEY ManagerID INT StoreName VARCHAR(100) NOT NULL State VARCHAR(10))

INSERT INTO [RemoteSampleDB][dbo][Stores]VALUES (101 2 Store Tennessee TN) (102 5 Store California CA) (103 3 Store New York NY) (104 4 Store Maryland MD) (105 1 Store DC DC)

SELECT FROM [RemoteSampleDB][dbo][Stores]

创建 Amazon RDS for SQL Server 的链接服务器配置

要使用 Amazon RDS for SQL Server 创建链接服务器配置,请完成以下步骤:

打开 SSMS 并连接到 RDS Custom for SQL Server。打开一个新的查询窗口。运行以下查询:

sqlUSE [master]GO

EXEC spaddlinkedserver @server=NLinkedServerName @srvproduct=N @provider=NSQLNCLI @datasrc=Nreplacewithremoteserver/endpointname GO

EXEC masterdbospaddlinkedsrvlogin @rmtsrvname = NLinkedServerName @useself = NFalse @rmtuser = NUserName @rmtpassword = NYourSecurePasswordGO

在运行查询之前,请更新以下连接详情:

链接服务器的名称您的 SQL Server DB 实例名称您的 SQL 数据库登录名您登录帐户的密码

测试链接服务器连接并查询链接服务器以验证数据

完成以下步骤以测试连接:

在 SSMS 对象资源管理器中,展开 Server Objects 和 Linked Servers。

选择链接服务器右键单击,然后选择 Test Connection 进行验证。

当连接成功时,选择 OK。

通过链接服务器查询远程数据源:

sql返回到本地服务器并运行以下命令以获取本地和远程服务器的数据SELECT L RFROM [SampleDB][dbo][Employee] L JOIN [LinkedServerName][RemoteSampleDB][dbo][Stores] R ON LEmployeeID = RManagerID

创建 Amazon RDS for Oracle 的链接服务器配置

在本节中,我们将展示如何创建以 Amazon RDS for Oracle 为目标的链接服务器配置。请完成以下步骤:

确认 RDS Custom for SQL Server 与目标 Oracle DB 实例之间有连接性和 DNS 解析。打开 SSMS 并连接到 RDS Custom for SQL Server。打开一个新的查询窗口。修改并运行以下查询以创建链接服务器:

sqlUSE [master]GO

EXEC spaddlinkedserver @server=NOracleLinkedServer @srvproduct=N @provider=NOraOLEDBOracle @datasrc=Nreplacewithoracleservername1521 GO

EXEC masterdbospaddlinkedsrvlogin @rmtsrvname = NOracleLinkedServer @useself = NFalse @rmtuser = NOracleLogin @rmtpassword = NYourSecurePasswordGO

在 Amazon RDS Custom for SQL Server 上配置链接服务器 数据库博客

EXEC masterdbospserveroption @server=N @optname=Nrpc @optvalue=Ntrue GO

EXEC masterdbospserveroption @server=N @optname=Nrpc out @optvalue=NtrueGO

测试链接服务器连接并查询验证数据:

sqlSELECT FROM OPENQUERY (OracleLinkedServer SELECT count() FROM ALLTABLES)

在 RDS Custom for SQL Server 上更新链接服务器驱动程序的最佳实践

在本节中,我们分享在 RDS Custom DB 实例上持久化和更新软件版本的一些最佳实践:

为了维护和管理所需数据库驱动程序的版本,您需要创建定制引擎版本CEV。我们建议在准备 CEV 之前,先阅读软件供应商的最新文档,以了解兼容性和安装最佳实践。有关安装驱动程序和创建 CEV 的详细步骤,请参阅 在 Amazon RDS Custom for SQL Server 中持久化您的操作系统级自定义。要自动化 CEV 创建和分发的过程,建议查看 使用 EC2 Image Builder 管理 Amazon RDS Custom for SQL Server CEV AMIs。在生产 RDS Custom DB 实例上实施之前,务必在低环境中测试和验证驱动程序软件的新版本。

清理

完成以下步骤以清理资源:

云梯加速apk在 Amazon RDS 控制台中,选择导航窗格中的 Databases。选择要删除的 DB 实例。在 Actions 菜单中,选择 Delete。输入 delete me 以确认删除,然后选择 Delete。当系统提示您创建最终快照并保留自动备份时,请选择适合您需求的选项。

结论

在本文中,我们介绍了如何在 RDS Custom DB 实例上配置链接服务器,以支持同构和异构链接服务器需求。我们展示了以 Oracle 和 SQL Server 为目标的配置示例,但您也可以测试并配置其他目标,如 PostgreSQL、Amazon Redshift 和 DB2,只要您安装支持的操作系统和数据库版本兼容的驱动程序。此外,我们还讨论了使用 CEV 管理 RDS Custom DB 实例上链接服务器驱动程序未来软件更新的最佳实践。在开始您的数据库迁移计划之前,强烈建议您阅读产品文档 在 RDS Custom for SQL Server 上工作。您还可以使用 此博客文章中的 CloudFormation 模板 轻松设置您的 PoC 环境。

关于作者

Mesgana Gormley 是 Amazon Web Services 的高级数据库专家解决方案架构师。她在 Amazon RDS 团队工作,为 AWS 客户提供技术指导,并帮助他们迁移、设计、部署和优化 AWS 上的关系数据库工作负载。

Sudhir Amin 是 Amazon Web Services 的数据库专家解决方案架构师。在纽约的角色中,他为不同工业垂直领域的企业客户提供架构指导和技术支持,推动他们的云采用。他是台球、拳击和 UFC 等搏击运动的爱好者,喜欢旅行,尤其是那些拥有丰富野生动物保护区的国家,能够近距离观察世界上最壮观的动物。

Santhosh Reddy Talla 是一位经验丰富的数据库工程师,目前在 AWS 的 RDS SQL Server 团队工作,专注于关系数据库如 SQL Server、Oracle、Postgres 和 MySQL。他具有解决复杂问题、优化数据库性能和使用 Python、Shell 和 PowerShell 自动化任务的强大能力。在工作之余,他是一名户外运动爱好者,喜欢滑雪和远足。

简化 CNAME 链管理:使用 Route 53 Resolver 的 DNS 防火墙关键要点从今天起,您可以配置 DNS 防火墙以自动信任解析链中所有的域名,例如 CNAME 或 DNAME 链。DNS 防火墙为云中私有网络的出站 DNS 请求提供安全保护,帮助拦截和管理潜在的网络攻击。新增的防火...

强化基于亚马逊 Bedrock 的 RAG 聊天机器人架构:安全设计与防范模式的蓝图关键要点本文展示了如何使用 亚马逊 Bedrock 部署一个安全且负责任的聊天机器人应用程序,并提供详细的安全计划。我们识别了在将大型语言模型LLM集成到应用程序中时可能出现的常见安全风险和反模式。亚马逊 Bedro...