开发者社区> 阿里云服务支持> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

RDS SQL Server 通过链接服务器访问公网的解决方案

简介: RDS SQL Server 开放了 Linked Server功能,但是默认只能在RDS之间,或者同VPC 下的ECS 自建SQL Server,实现Linkded Server 功能。本文将介绍,利用VPC SNAT 功能,实现RDS Linked Server 访问公网数据库的能力。
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

描述

RDS SQL Server 开放了 Linked Server功能,但是默认只能在RDS之间,或者同VPC 下的ECS 自建SQL Server,实现Linkded Server 功能。本文将介绍,利用VPC SNAT 功能,实现RDS Linked Server 访问公网数据库的能力。

链接服务器

功能

链接服务器使您能够实现可以获取和更新其他数据库中的数据的分布式数据库。在需要实现数据库分片而不需要创建自定义应用程序代码或直接从远程数据源加载的场景中,它们是一种很好的解决方案。

优点

  • 从SQL Server外部访问数据的能力。
  • 在跨企业的异构数据源上发布分布式查询、更新、命令和事务的能力。
  • 类似地处理不同数据源的能力。

RDS 链接服务器

RDS 实例,默认是没有权限执行SQL Server 自带的添加链接服务的存储过程。

需要参考阿里云官方文档,通过RDS 自带的存储过程来添加链接服务器。

增加链接服务器Linked Server

T-SQL命令

sp_rds_add_linked_server

支持的实例

  • SQL Server 2012、2014、2016、2017、2019标准高可用版(独享型或通用型实例)
  • SQL Server 2012、2014、2016企业高可用版(独享型或通用型实例)
  • SQL Server 2017、2019企业集群版(独享型或通用型实例)

说明 共享型规格实例暂不支持该存储过程。


描述

增加实例的链接服务器。支持分布式事务,实例主备自动创建,切换不需要再配置。

使用方法

DECLARE
@linked_server_name sysname = N'y******lb',
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,1433', --style: 10.1.10.1,1433
@user_name sysname = N'***' ,
@password nvarchar(128) = N'******',
@source_user_name sysname = N't**t',
@source_password nvarchar(128) = N'******',
@link_server_options xml
= N'
            <rds_linked_server>
                <config option="data access">true</config>
                <config option="rpc">true</config>
                <config option="rpc out">true</config>
            </rds_linked_server>
'
EXEC sp_rds_add_linked_server
@linked_server_name,
@data_source,
@user_name,
@password,
@source_user_name,
@source_password,
@link_server_options


链接服务器配置


未配置SNAT 情况下

报错:A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible.

如截图:

image

ECS SNAT 配置

1. 查看RDS 实例的VPC ID信息

image


2. 点 vpc id ,进行专有网络页面,选择公网NAT网关,创建NAT网关


确认目前交换机没有公网NAT网关

image


3. 创建公网NAT网关,选择RDS 实例所使用的VPC ID(需要付费支付)


image


4. 等待NAT网关创建成功


image

5. 查看公网NAT网关和SNAT条目ID信息

image

6. 查看路由表记录,确认,自定义路由条目,目标网段和下一跳为刚创建的公网NAT网关

image


7. 此时找一台同VPC ECS 主机实例进行验证,访问公网地址是否通。


image

注: ECS 要通过VNC 登录,不能申请公网地址,否则验证会不准


8. 创建RDS 实例,注意选择刚才配置的 VPC

image

9 .在RDS SQL Server 创建链接服务器

image

注:显示链接服务器创建成功,部分报错是RDS 存储过程权限兼容性问题,不影响使用。


10. 测试验证插入和查询功能成功

image

参考文档

微软 Linked Server 文档:

https://learn.microsoft.com/en-us/sql/relational-databases/linked-servers/linked-servers-database-engine?view=sql-server-ver16

阿里云链接服务器文档:

https://help.aliyun.com/document_detail/88094.html#section-ckn-jv3-v2b

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
0 0
通过RDS MySQL SQL洞察和审计排查如何丢失数据?
最近遇到多次业务方,反馈数据写入成功,但是需要查询使用时,数据确找不到了,所以需要确认数据什么不见了?
0 0
本地执行 RDS SQL 语句| 学习笔记
快速学习本地执行 RDS SQL 语句
0 0
RDS SQL Server通过配置镜像为高性能模式提高写入性能
RDS SQL Server通过配置镜像为高性能模式提高写入性能
0 0
RDS SQL Server 自带证书开启TDE的解决方案
RDS SQL Server 自带证书开启TDE的解决方案
0 0
RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT
RDS SQL Server 如何设置为快照隔离级别 READ_COMMITTED_SNAPSHOT
0 0
RDS SQL Server 备份恢复到本地报错:Cannot find server certificate with thumbprint
RDS SQL Server 备份恢复到本地报错:Cannot find server certificate with thumbprint
0 0
RDS For SQL Server删除数据库报错
RDS For SQL Server删除数据库报错
0 0
RDS SQL Server 备份功能
RDS SQL Server 备份功能。 您可以通过设置备份策略调整RDS数据备份和日志备份的周期来实现自动备份,也可以手动备份RDS数据。
0 0
SQL server 2008 最小化安装(学习专用)
之后下载这两个安装包,根据电脑实际情况下载,这里我选择x64版本的两个轻量级安装包,其他版本比较大,学习的话这两个版本就够了
0 0
文章
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
相关文档: 迁云实施服务
文章排行榜
最热
最新
相关电子书
更多
用SQL做数据分析
立即下载
RDS SQL Server CPU高使用率性能优化
立即下载
RDS SQL Server CPU 高使用率性能优化
立即下载


http://www.vxiaotou.com