• Sql Server 2008R2 数据库发布与订阅


    背景描述: 

    发布服务器A: (远程端) , 数据库服务名: GUANWANG1

    订阅服务器B: (本机)   ,  数据库服务名: PC-LLRDBA

    需要从服务器A中数据库发布,然后在B中订阅A发布的数据库;

     

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

    准备工作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发布服务器

     

     

     

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

     

     

     

     

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

     

     

     

     

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

     

     

     

    选择定义计划: 

     

     

     

     

     

     

     

     

     

     

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

     

     

     

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

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

     

     

    订阅失败案例: 

    订阅完成后,却发现本地订阅中没有内容,但是刚刚确实已经订阅成功了啊,为什么呢?

     

     然后在发布服务器中,右键本地发布中的数据库,启动复制监视器

     

     发现是报错了

     

     

     

     

    这个原因可能有好多种:

    1:>>订阅的时候,输入的密码输错了,我第一次就是输成了发布服务器的密码

     

     

     

    2:>>对应的协议要开启

     

     

    3:>>对应的服务要开启Sql Server Browser和Sql Server 代理(MSSQLSERVER)

     

     

    这三个都检查无误了,基本上就搞定了吧!

     

     

    还有一种报错是:"对路径"XXXXX"访问被拒绝或者没有访问路径"xxx"的权限"等,这个错误一般是用户的权限不够导致的,解决方法如下: 

    使用SQL Server发布数据库快照的配置中,如果你选择了使用SQL Server代理,而SQL Server代理服务使用的登陆身份不具有对存放快照文件位置的读写权限时,就会出现该错误。

    解决的方法是可以修改SQL Server代理服务的登录身份,具体做法为:程序->Sql Server Configuration Manager->在左边栏选择”SQL Server服务“->在右侧面板中"SQL Server 代理”一行上右击,选择“属性”,在弹出的对话框中选择"内置账户“->LocalSystem即可。

     

     

     

     

  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/mgzy/p/7699852.html
Copyright © 2020-2023  润新知