最简单的SQLserver,发布订阅教程,保证一次就成功

发布订阅用来做数据库的读写分离,还是很好用的

当单台数据库的压力太大时,可以考虑这种方案,一主多从,主服务器的数据库只管写入,其他的数据库都是只读也是一种很好的方案

开始

我们选择A服务器做为发布的服务器, 

B服务器做为订阅的服务器,

第一部分A服务器

选择要A服务器,选择 “复制”,“本地发布”,右键本地发布

如果是第一次会有如下,一直点下一步

注意:..\ ReplData这个文件夹是发布所在的文件夹,要保持访问权限,当在c盘时,有时可能会出现无法访问,我这里一般会给ReplData这个文件夹加上everyone权限

选择要发布的数据库

注意:这个数据库要有过完整备份

选择发布类型

注意:实时性高,数据量大的一般选择事务发布比较好

 

一直点下一步

注意,这一步很关键

注意:1,不要用sa账户,单独再新建一个sqlserver账户,而且要有该数据库的db_owner权限,

我们来添加一个test账户  找到“安全性”,右键“登录名”

点击“用户映射”更改一下test账户权限

这个test账户一定要有你即将要发布的数据库的public和db_owner权限

然后:在B服务器上进行一模一样添加test账户的操作,后面会用到

添加完成之后继续发布,加上我们添加的Test账户

 

有个警告,说代理没运行

找到sqlserver管理器,将代理运行起来,

,B服务器也进行相同的操作,保证sqlserver代理都是开着的

到这里还不够

下一步,配置host,找到 A服务器文件  c:\windows\system32\drivers\etc下的hosts文件

在最后一行填上B服务器的ip 和主机名, 注意,ip和名字之间隔空格,这个ip可是是内网,也可以是公网

 

然后A服务器就完备了,没啥事了,接下来配置B服务器,

第二部分,B服务器

在B服务器进行相同的操作主机上进行相同的添加host操作

将A服务器的ip 和主机名 添加到B服务器的hosts文件下面,

然后开始创建订阅

选择查找SqlServer服务器,这里服务器名称写A服务器的名称,不能用ip,用刚才在hosts文件里面那个A服务器的主机名

使用sa或者刚才创建的test账户登录,登录成功后,会看到A服务器的发布

选择上面的,推送订阅,好处是便于集中管理

账户还用刚才创建的那个test

然后一直下一步,直到完成

创建完成

测试一下,在A服务器添加一条数据

可以看到,B服务器马上也有了,删除修改也会同步,到这里就全部成功

其他

在A服务器上面查看订阅的状况

右键当前的发布,“启动复制监视器”

可以看到当前的状况,

如果订阅没有成功,或者数据没能同步,可以在这里看看日志,查找原因。

常见问题

 1,  两台主机的 1433端口互相不通

 2,  SqlServer Agent 代理没有开启

3,  没有配置 hosts 文件中的ip和主机名映射

4,  ReplData文件夹权限不足

5,  发布订阅前没有进行完整备份

(联系作者,QQ 634892969)

最简单的SQLserver,发布订阅教程,保证一次就成功的更多相关文章

  1. SqlServer发布订阅

    我们在开发系统的时候,经常会遇到高并发的问题,还有高可用性和安全性方面的考虑,需要用读写分离的方案来解决问题.也就是在我们使用数据库比较多,更新少而查询比较多的情况下使用读写分离,实现提高性能,减少数 ...

  2. SqlServer发布订阅错误收集

    原文:SqlServer发布订阅错误收集 目录 1. SqlServer发布订阅错误收集 1.1. Message:脚本对于表"dbo.table"失败. 1.1.1. 错误消息 ...

  3. SQLServer 发布订阅(Replication)造成的Memroy压力(cmemthread等待)

    深入了解下发布订阅:     数据复制:允许一个数据源向一个或多个目标数据库分发数据,只需要OLE DB 访问接口即可访问: 整个复制框架包含:复制组件,复制代理,复制类型: 复制组件: 发布服务器: ...

  4. 知方可补不足~Sqlserver发布订阅与sql事务的关系

    回到目录 前几讲说了一下通过sqlserver的发布与订阅来实现数据的同步,再通过EF这个ORM架构最终实现架构系统的读写分离,而在使用发布与订阅来实现数据同步时,需要我们注意几点,那就是当操作被使用 ...

  5. Redis(8)——发布/订阅与Stream

    一.Redis 中的发布/订阅功能 发布/ 订阅系统 是 Web 系统中比较常用的一个功能.简单点说就是 发布者发布消息,订阅者接受消息,这有点类似于我们的报纸/ 杂志社之类的: (借用前边的一张图) ...

  6. Spring Data Redis实现消息队列——发布/订阅模式

    一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式.利用redis这两种场景的消息队列都能够实现. 定义:生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列, ...

  7. redis实现消息发布/订阅

    redis实现简单的消息发布/订阅模式. 消息订阅者: package org.common.component; import org.slf4j.Logger; import org.slf4j. ...

  8. JS中的发布订阅模式

    一. 你是如何理解发布订阅模式的 JS中的设计模式: 单例模式:处理业务逻辑 构造原型模式:封装类库,组件,框架,插件等 类库:jQuery 只是提供了一些常用的方法,可以应用到任何的项目中,不具备业 ...

  9. SQLServer 2008 R2 发布订阅配置指南

    原以为配置SQLServer 2008 R2的发布订阅很简单,实际配置后才发现过程中有问题地方一直都没搞明白,最后经过几天的查找问题和实践,终于搞定了.现将过程记录如下. SQLServer 2008 ...

随机推荐

  1. yyb博客的几道神仙题

    该比赛链接 T5 题意: 给你一个\(n\times n\)的网格,开始有\(m\)个被涂成黑色的格子,如果存在三个格子\((x,y)\),\((y,z)\),\((z,x)\)满足\((x,y)\) ...

  2. DZY Loves Math 系列详细题解

    BZOJ 3309: DZY Loves Math I 题意 \(f(n)\) 为 \(n\) 幂指数的最大值. \[ \sum_{i = 1}^{a} \sum_{j = 1}^{b} f(\gcd ...

  3. 使用mysqlbinlog对主库binlog进行同步

    #!/bin/bash BASEDIR="/usr/local/mysql" BIN="$BASEDIR/bin" MYSQLBINLOG="$BIN ...

  4. Battery Historian 使用常用命令

    一.重置电池数据收集数据 打开电池数据获取:adb shell dumpsys batterystats --enable full-wake-history 重置电池数据: adb shell du ...

  5. 一条sql执行过长的时间,你如何优化,从哪些方面?

    1.查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化) 2.涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合 3. ...

  6. java.lang.OutOfMemoryError: Java heap space内存不足问题

    今晚,在定义一个new int[19001][13001]的数组时候内存不够:特转了一下方法: Exception in thread "main" java.lang.OutOf ...

  7. JAVA传递带有空格的参数

    String s="b2 + b1"; Process child = Runtime.getRuntime().exec("C:\\eclipse-workspace\ ...

  8. sonarqube6.7部署文档

    应用介绍:sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量通过插件形式:可以支持包括Java.C#/C++.PL/SQL.Cobol.javascrip.Groovy等等二十几 ...

  9. 【汇总目录】C#

    [2019年04月29日] C# textbox 自动滚动 [2019年02月07日] C#利用VUDP.cs开发网络通讯应用程序 [2019年02月06日] C#利用VINI.cs操作INI文件 [ ...

  10. djang增删改查

    创建表: from django.db import models class Publisher(models.Model): pid = models.AutoField(primary_key ...