ESAP达摩院 思想有多远,我们就能走多远

战疫|影分身之术


前言

在人人防疫新肺的当下,人们往往容易忽视另一个病毒的存在:网络勒索病毒。

关于这个问题,村长以前也发表过文章,谈到相关经验和教训,见《ESAP中级教程-与勒索病毒战斗的那些事》

本期,村长结合sqlserver的数据库复制发布订阅功能,来给大家讲一讲更有意义的影分身之术

方案架构

这次方案以村长的开发机云备机体验服为示例,最终建成下图所示的同步架构。

其中阿里云主机和体验服都会实时同步开发机上的nxt库,形成两地三中心灾备模式。

架设步骤

1.启用sql复制组件

村长的开发机(NAS12)数据库是sql2008r2,安装时需要勾选SQL Server复制组件。

注意,主机和备机都要启动此组件

2.修改hosts

开发机(NAS12)与云主机(IESAP)是异地网络,需要修改hosts文件,指定云主机IP。

注意,主机和备机如果不是同一个局域网都要修改hosts让计算机名与外网IP对应,以便能直接通过主机名访问。

3.新建发布

进入开发机SSMS,登陆数据库,点击【复制】-【本地发布】-【右键新建发布】,选择发布nxt数据库。

发布类型选择【事务发布】

勾选全部对象

立即创建快照

启动快照代理

发布完成

4.启动代理服务等

进入sql配置管理,确保启动了Browser和代理服务。

注意,主机和备机都要启动此服务

5.新建订阅

进入云主机,登陆数据库,点击【复制】-【本地订阅】-【右键新建订阅】

选择开发机(NAS12)发布服务器

选择nxt数据库。

这里村长选择推送订阅,也就是主机(NAS12)推送给从机(IESAP)。

订阅到本地nxt数据库。

设置本地代理sa账号

连续执行

立即初始化

完成

6.测试同步

在开发机上新建一个提醒

在云主机上查询一下,可以看到,立即同步了

同步情况还可以在开发机上进行监视

重复第5步,将体验服(NAS19)也加入订阅

然后在ES/JU/NX中挂载一下这个数据库就实现一台自动同步开发机更新的体验服了!棒棒哒~

常见问题

  • 监视器报告不能连接到订阅服务器,一般是没配置好hosts

  • 如果报告进程无法在“xxxx”上执行“sp_replcmds”,那就在sql里执行以下下列脚本,配置dbo权限

USE nxt  --nxt改成你的数据库名
GO
sp_changedbowner 'sa'

小结

这里村长演示的是异地单向同步,因为体验服经常需要还原记录。

其实利用SQL Server的发布订阅功能我们还能制作双向同步的数据库,更适合开发-生产的主从模式。

当然,你还可以试试镜像功能,具有实时故障迁移能力,让你的ERP具有多重影分身,九条命,永不宕机!

by 一零村长

2020-3-19


近似文章