zoukankan      html  css  js  c++  java
  • SQL Server 跨服务器发布/订阅

    ------------------------------------------------第一步: 准备工作------------------------------------------------

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

    先检查A,B中的机器名和数据库服务名是否一致,这个很重要!

    查看方法: 

    1.检查SQL Server 的服务器名称

    1
    2
    3
    4
    use master
    go
    select @@servername
    select serverproperty('servername')

     

    如果查出来的两个名字不一样,那就需要把他们的名字改成一样的,方法如下:

    2.删除所有之前配置的publishers('old_server_name'为之前的服务名)

    1
    2
    3
    4
    5
    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.配置计算机名与服务名一致

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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.查看服务名

    1
    sp_helpserver

      

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

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

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

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

    先在[开始],[所有程序]中打开[SQL Server配置管理器]:

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

     

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

    端口号是:1433

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

    协议是TCP/IP

    同理,在下面的[SQL Native Client 10.0配置]中也一样配置下!

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

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

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

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

    ------------------------------------------------第二步:发布------------------------------------------------

    登陆服务器A数据库,用别名登陆:

    在[复制],[本地发布]中右键新建发布

     

    选择你要发布的数据库

    选择发布类型:(具体选哪种,自己百度下各种的差异),我这里选事务发布

     可以选择发布的对象(表,存储过程,视图等等),也可以选择部分内容,点开勾选就行了

     如果没有特别筛选的,就直接下一步(比如说我只要同步Order表中2014年以后的数据,那么你可以点添加,增加筛选条件)

     

    选择立即xxx,继续下一步

    输入发布服务器的sa账户登陆密码就行了

     

     

    OK,到此发布完成,你可以刷新后查看:

    ------------------------------------------------第三步:订阅------------------------------------------------

     这里选择查找SQL Server发布服务器

     

    选中需要的订阅的数据库发布:

    在本地新建一个同名的数据库:

     

     点击与订阅服务器的连接下面的按钮

    选择定义计划: 

     

    订阅就完成,然后刷新查看内容:

    等过一段时间,数据同步完成后就可以查看数据了,是否一致了!

     ------------------------------------------------订阅完成------------------------------------------------

  • 相关阅读:
    ExecuteScalar requires the command to have a transaction when the connection assigned to the command is in a pending
    如何从vss中分离程序
    String or binary data would be truncated
    the pop3 service failed to retrieve authentication type and cannot continue
    The POP3 service failed to start because
    IIS Error he system cannot find the file specified _找不到页面
    pku2575Jolly Jumpers
    pku2940Wine Trading in Gergovia
    pku3219二项式系数
    pku1029false coin
  • 原文地址:https://www.cnblogs.com/yangzhi-blog/p/10337971.html
Copyright © 2011-2022 走看看