全部产品

通过Linked Server访问云下自建SQL Server

更新时间:2020-07-06 14:52:01

使用场景

RDS SQL Server 2012和2016双机高可用版开放了Linked Server功能,不仅可以在RDS之间建立Linked Server,在网络连通的前提下,也支持和云下自建SQL Server建立Linked Server。

本文将介绍如何利用VPN在RDS SQL Server上建立Linked Server连接到云下自建SQL Server。

注意:和云下自建数据库链接的前提是网络连通,若有问题请咨询相关团队协助解决。

前提条件

  • 要求RDS SQL Server为以下版本:

    • 2012 标准双机高可用版(独享型实例)
    • 2016 标准双机高可用版(独享型实例)
    • 2012 企业双机高可用版(独享型实例)
    • 2016 企业双机高可用版(独享型实例)
  • RDS SQL Server实例状态为运行中

  • 在部署VPN网关前,需要做好网络规划:

    • 本地移动设备和云上VPC内需要访问的私网IP地址段不能相同,否则无法通信。

    • 客户端必须能访问Internet。

操作步骤

  1. 利用VPN打通RDS SQL Server所在VPC和云下机器间的网络连接通道

    1. 创建VPN网关

    2. 创建SSL服务端

    3. 创建客户端证书

    4. 客户端配置

    5. 连接测试

  2. 在RDS SQL Server上创建Linked Server

利用VPN打通RDS SQL Server所在VPC和云下机器的网络连接通道

创建VPN网关

  1. 登录VPC管理控制台

  2. 在左侧导航栏,单击VPN > VPN网关

  3. 在VPN网关页面,单击创建VPN网关

  4. 在购买页面,配置VPN网关,完成支付。本操作中VPN网关的配置如下:

    配置项 说明
    地域
    • 选择VPN网关的地域。本操作中选择华东1(杭州)
    • 确保VPC的地域和VPN网关的地域相同。
    专有网络 选择要连接的VPC。
    带宽规格 选择一个带宽规格。带宽规格是VPN网关所具备的公网带宽。
    IPsec-VPN 选择是否开启IPsec-VPN功能,IPsec-VPN功能适用于站点到站点的连接,可以根据您的实际需要选择开启。
    SSL-VPN 选择是否开启SSL-VPN功能。本操作选择开启
    SSL并发连接数 选择您需要同时连接的客户端最大规格。

    SSL

  5. 返回VPN网关页面,单击华东1地域,查看创建的VPN网关。

    说明:VPN网关的创建一般需要1-5分钟。

    刚创建好的VPN网关的状态是准备中,约两分钟左右会变成正常状态。正常状态就表明VPN网关完成了初始化,可以正常使用了。

    gateway

创建SSL服务端

  1. 在专有网络的左侧导航栏,单击VPN > SSL服务端

  2. 单击创建SSL服务端。本操作中SSL服务端的配置如下:

    配置项 说明
    名称 输入SSL服务端的名称。
    VPN网关 选择上面创建的VPN网关
    本端网段 以CIDR地址块的形式输入要连接的网络。单击添加本端网段添加多个本端网段,本端网段可以是任何VPC或交换机的网段,也可以是本地网络的网段。
    客户端网段 以CIDR地址块的形式输入客户端连接服务端时使用的IP地址。
    高级配置 使用默认高级配置。

    server

创建客户端证书

  1. 在专有网络的左侧导航栏,单击VPN > SSL客户端

  2. 单击创建SSL客户端证书

  3. 创建客户端证书对话框,输入客户端证书名称并选择对应的SSL服务端,单击确定

  4. SSL客户端页面,找到已创建的客户端证书,单击下载下载生成的客户端证书。

    client

客户端配置

  1. 下载并安装OpenVPN客户端。

  2. 创建客户端证书中下载的证书解压后复制到OpenVPN安装目录中的config文件夹中。

    config

  3. 单击Connect发起连接。

    connecting

连接测试

在客户端ping已连接的VPC内的一台ECS实例,测试连通性。

说明:确保测试的ECS实例的安全组规则允许客户端远程连接,授权对象为SSL服务端配置中指定的客户端网段。详情请参见安全组配置案例

sr

注意:若连接不通,可能是设置了本地机器防火墙,需要将防火墙设置为允许远端连接。

在RDS SQL Server上创建Linked Server

  1. 在RDS SQL Server上创建Linked Server:

    1. USE master
    2. GO
    3. DECLARE
    4. @linked_server_name sysname = N'myTestLinkedServer',
    5. @data_source sysname = N'30.40.13.6,1433',
    6. @user_name sysname = N'TestDbo' ,
    7. @password nvarchar(128) = N'TestDbo@123'
    8. ;
    9. EXEC [dbo].[sp_rds_add_linked_server_ha]
    10. @linked_server_name,
    11. @data_source,
    12. @user_name,
    13. @password
    14. ;
    15. GO

    参数说明:

    • @linked_server_name:Linked Server的名称。

    • @data_source:用户线下SQL Server的IP和端口号,格式为:IP,Port

    • @user_name:用户线下SQL Server的登录用户名。

    • @password:用户线下SQL Server登录名对应的密码。

      命令执行截图

  2. 执行以下命令测试Linked Server:

    SELECT * FROM [myTestLinkedServer].[ReportServer$MS3001].[sys].[tables]

    测试结果图