SQL Server读写分离神器,发布与订阅(一)

背景描述

发布服务器A: (远程端) , 数据库服务名: GUANWANG1订阅服务器B: (本机)   ,  数据库服务名: PC-LLRDBA需要从服务器A中数据库发布,然后在B中订阅A发布的数据库;


第一步:准备工作

准备工作1: 配置机器名和数据库服务名一致

先检查A,B中的机器名和数据库服务名是否一致,这个很重要!查看方法: 1.检查SQL Server 的服务器名称

use master
go
select @@servername
select serverproperty('servername')

如果查出来的两个名字不一样,那就需要把他们的名字改成一样的,方法如下:2.删除所有之前配置的publishers('old_server_name'为之前的服务名)

select * from msdb.dbo.MSdistpublishers
DELETE FROM msdb.dbo.MSdistpublishers
select * from msdb.dbo.MSdistpublishers
exec sp_droplinkedsrvlogin 'old_server_name',null
exec sp_dropserver 'old_server_name', 'droplogins'


执行完后,重启SQL Server服务

3.配置计算机名与服务名一致

USE master
GO
if serverproperty('servername') <> @@servername  
begin  
      declare @server sysname  
      set   @server = @@servername  
      exec sp_dropserver @server = @server  
      set   @server = cast(serverproperty('servername') as sysname)  
      exec sp_addserver @server = @server , @local = 'LOCAL'  
end

 

4.查看服务名

sp_helpserver


准备工作2: 配置数据库服务器名称的别称

SQL Server读写分离神器,发布与订阅(一)

 服务器名称处使用登陆别称


因为数据库发布和订阅,不能用ip登陆,必须用服务名登陆

方法之一是改服务器的登陆别称! 

首先在本机B配置连接服务器A的登陆别称: 

先在【开始】-->【所有程序】中打开【SQL Server配置管理器】:

SQL Server读写分离神器,发布与订阅(一)

 在【SQL Native Client 10.0配置(32位)】中的别名中配置,如图: 

SQL Server读写分离神器,发布与订阅(一)

这里的别名必须和服务器B的服务器名一致也就是GUANWANG1,实际的按照自己的名字改动;

端口号是:1433

服务器是对应的服务器机器的IP地址

协议是TCP/IP 

同理,在下面的【SQL Native Client 10.0配置】中也一样配置 

SQL Server读写分离神器,发布与订阅(一)


修改服务器别名

然后在服务器A中也要配置访问本机B的别称,这一步不能少,否则后面本地订阅的时候会失败并报错,"进程无法连接到 Subscriber“PC-LLRDBA”。"

切记,这里是双向的,当初我查了好久才想起来,服务端也要配置这个......

具体的方法同上:注意别名是本机B的服务名PC-LLRDBA, IP是本机的IP,实在不知道在cmd下config一下就有了!

SQL Server读写分离神器,发布与订阅(一)

 修改服务器别名

 准备工作好了后,就进行第二步发布

上一篇:AliOS Things 维测高阶能力之数据断点(DWT)使用


下一篇:JDBC驱动下载汇总