• sqlserver 开启发布订阅模式


    主服务器

    用于发布与分发

    从服务器

    订阅

    分发服务器的概念,是指用于管理发布与订阅的交互,这里用发布服务器充当即可

    主服务器操作:

    在这里插入图片描述
    在这里插入图片描述

    按需选择,一般选择快照发布

    在这里插入图片描述

    如果不需要排除列则不做任何选择

    在这里插入图片描述

    定义执行时间

    在这里插入图片描述

    这里配置连接到发布服务器的账号,可以选用sa,也可以自行创建,注意新建账号赋予的权限,要保证可以操作数据库

    在这里插入图片描述
    在这里插入图片描述

    从数据服务器

    筛选出主服务器名称

    在这里插入图片描述

    选择发布计划

    在这里插入图片描述

    选择在哪里管理分发日志

    选择第一个选项,在主服务器查看有关日志,这里注意如果是sqlserverstudio2016,在查看订阅属性的时候,会提示
    无法将值“null”应用于属性 ServerInstance: 值不能为 Null ,这是工具的bug,升级工具到2018。
    旋第二个则是在订阅服务器管理订阅
    在这里插入图片描述

    确定订阅服务器有关数据库

    在这里插入图片描述

    完成

    注意事项:

    如果使用新增sqlserver账号,需要编辑发布属性的发布访问列表

    修改快照存放位置,然后将其文件夹设为共享文件夹,并修改该文件夹的权限组为everyone

    (由于出现操作系统错误 5,进程无法读取文件),此外这个问题,还跟选择分发代理位置有可能的关系,建议配置由主服务器管理选项,其中域控账号为 机器名\windows登录账号

    从服务器的服务器名称不能包含“-”

    服务器改名后,记得查看当前sqlserver线程的运行账户是否与服务器名对应,否则会抱错提示验证为空

    修改sqlserver进程名与服务器名称一致,需要重启sqlserver

    use master  
           go  
           select @@servername
           select serverproperty('servername')
      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
      ELSE
          PRINT '实例名与主机名一致,无需修改'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    部分操作C盘内容记得以管理员打开sqlserver studio

    在这里插入图片描述

    这是基于同域下的同步复制,所以对两者服务器的基本通信要保持,其中防火墙的关闭、1433端口的telnet
    发布订阅是从服务器去主服务器的快照存放位置去拉取文件,并还原到从服务器数据库,所以快照文件夹的权限要注意
    一半的问题几乎都来自权限问题

  • 相关阅读:
    聊一聊系统重构
    iOS NSKeyedUnarchiver归档和读取
    三维模型体积计算及其注意事项
    德人合科技|办公电脑文件资料防泄密软件
    JSTL 标签库
    开源共建 | TIS整合数据同步工具ChunJun,携手完善开源生态
    xtrabackup相关参数
    【数据结构】 双向循环链表链表的实现
    [附源码]java毕业设计网上招聘系统
    Java基于 SpringBoot+Vue 的游戏分享网站
  • 原文地址:https://blog.csdn.net/qq_44198436/article/details/138222738