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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介: RDS SQL Server 开放了 Linked Server功能,但是默认只能在RDS之间,或者同VPC 下的ECS 自建SQL Server,实现Linkded Server 功能。本文将介绍,利用VPC SNAT 功能,实现RDS Linked Server 访问公网数据库的能力。

描述

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.

如截图:

ECS SNAT 配置

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


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


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


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



4. 等待NAT网关创建成功


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

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


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


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


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

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

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


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

参考文档

微软 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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
SQL Oracle 关系型数据库
MySQL的sql_mode模式说明及设置
MySQL的sql_mode模式说明及设置
1066 112
|
8月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1098 152
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
851 156
|
6月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
9月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
1033 213
|
6月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
6月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
6月前
|
SQL 关系型数据库 MySQL
排除通过IP访问MySQL时出现的连接错误问题
以上步骤涵盖了大多数遇到远程连接 MySQL 数据库时出现故障情形下所需采取措施,在执行每个步骤后都应该重新尝试建立链接以验证是否已经解决问题,在多数情形下按照以上顺序执行将能够有效地排除并修复大多数基本链接相关故障。
452 3

推荐镜像

更多