RDS for SQL Server添加链接服务器
SQL Server数据库实例2创建链接服务器访问另外一个SQL Server数据库实例1。
- 开启两个实例的分布式事务,请参考开启分布式事务,并且互相加入对端的host信息。线下服务器或ECS服务器请参考远程服务器上的名称解析。
SQL Server数据库实例2和SQL Server数据库实例1已经在相同VPC内。如果ECS与RDS不在相同VPC或者RDS与线下实例建立分布式请通过EIP进行连接,请参考绑定弹性公网IP为RDS实例绑定EIP。
- 在SQL Server实例1中使用rdsuser创建数据库dbtest1。
- 在SQL Server实例2中使用rdsuser运行如下sql创建链接服务器。
USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'TEST_SERVERNAME', @srvproduct=N'SQLServer', @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
用户密码。
- 建立dblink之后,在链接服务器中就可以看到SQL Server实例1中建立的库。
- 使用如下SQL查看是否插入成功,结果如图1所示。
begin tran set xact_abort on INSERT INTO [LYNTEST].[dbtest1].[dbo].[user1] ([id],[lname],[rname]) VALUES('19','w’,'x') GO commit tran