文档首页> 云数据库 RDS> 最佳实践> RDS for SQL Server> RDS for SQL Server添加链接服务器
更新时间:2024-07-01 GMT+08:00

RDS for SQL Server添加链接服务器

sql server数据库实例2创建链接服务器访问另外一个sql server数据库实例1。

  1. 开启两个实例的分布式事务,请参考开启分布式事务,并且互相加入对端的host信息。线下服务器或ECS服务器请参考远程服务器上的名称解析

    sql server数据库实例2和sql server数据库实例1已经在相同VPC内;若ECS与RDS不在相同VPC或者RDS与线下实例建立分布式请通过EIP进行连接,请参考绑定弹性公网IP为RDS实例绑定EIP。

  2. 在rds实例1中使用rdsuser创建数据库dbtest1。
  3. 在rds实例2中使用rdsuser运行如下sql创建链接服务器。

    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedserver @server = N'TEST_SERVERNAME', @srvproduct=N'SQL Server', @provider=N'SQLOLEDB', @datasrc=N'192.168.***.***,1433'
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST_SERVERNAME', @locallogin = NULL , @useself = N'false', @rmtuser = N'rdsuser', @rmtpassword = N'********'
    GO
    表1 参数说明

    参数

    说明

    @server

    链接服务器名称。

    @srvproduct

    数据源的产品名称。使用默认值SQL Server。

    @provider

    使用该默认值。

    @datasrc

    要访问的实例IP和端口。

    @rmtsrvname

    链接服务器名称。

    @locallogin

    本地服务器上的登录名。默认值NULL即可。

    @useself

    是否通过模拟本地登录名或登录名和密码连接到链接服务器。此处填false,表示通过登录名和密码连接到链接服务器。

    @rmtuser

    用户名(rdsuser)。

    @rmtpassword

    用户密码。

  4. 建立dblink之后,在链接服务器中就可以看到rds实例1中建立的库。

  5. 使用如下SQL查看是否插入成功,结果如图1所示。

    begin tran
    set xact_abort on
    INSERT INTO [LYNTEST].[dbtest1].[dbo].[user1]
    ([id],[lname],[rname])
    VALUES('19','w’,'x')
    GO
    commit tran  
    图1 插入结果