暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

DotNet开发跳槽 2020-12-28
1265

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

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

 

开始

我们选择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,  发布订阅前没有进行完整备份

出处:https://www.cnblogs.com/jimsfriend/p/10436038.html

版权申明:本文来源于网友收集或网友提供,如果有侵权,请转告版主或者留言,本公众号立即删除。




文章转载自DotNet开发跳槽,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论