一、在VMware Workstation建立了2台WindowsServer2012服务器。
分别修改计算机名称为Node1和Node2。这里不建议采用复制硬盘的方式来做虚拟机,老老实实一台台安装。安装完成之后,每台虚拟机都安装sqlserver2017数据库实例。确定2台虚拟机通讯正常。
计算机名称 | Sql实例名称 | ip | 说明 |
---|---|---|---|
Node1 | Node1 | 192.168.137.128 | 主数据库服务器 |
Node2 | Node2 | 192.168.137.129 | 从数据库服务器 |
二、 创建共享文件夹
在Node1C盘根目录创建sqlShared文件夹*(这个可以随便配置)。
给该文件夹设置Everyone权限。
设置该文件夹为共享文件夹,并确定Node2可以通过网络路径(\\NODE1\sqlShared)访问到。
三、开启SQLServer代理。
1、首先在Node1和Node2服务器上分别创建2个相同的Windows账户(用户名和密码都一样),并设置账户类型为管理员。我这里叫sxy。
2、在SQLServerConfigurationManager中SQL Server服务中右键点击SQL Server代理,选择属性。
3、进入属性对话框后选择浏览,将用户选择为sxy,然后手动输入sxy配置的密码。
4、配置完成后启动代理服务,并在Windows服务中,将SQLServer代理服务启动类型设置为自动。2台服务器都要进行此操作。
四、配置分发
1、在数据库实例中右键点击复制选择配置分发。
2、将当前实例选择为分发服务器、
3、指定快照文件夹,用第二步创建的共享文件夹的网络地址\\NODE1\sqlShared
4、配置分发数据库,数据库名称按照系统生成名称来,不建议修改。
分发数据库文件的文件夹和日志文件夹建议修改到较大的磁盘下。
5、剩下的步骤全部点击下一步可以了。
6、配置完成之后,右键点击复制可以看到菜单多了发布服务器属性和分发服务器属性。
五、发布数据订阅
1、在复制→本地发布,右键点击选择新建发布。
2、选择分发发布数据库,这里我们选择WTM帮我们生成的数据库
3、选择发布类型,我们这里选择事务发布
4、选择要发布的对象,这里我们把所有的表都勾选(如果有别的也勾选)。
5、筛选表行,直接下一步就可以了
6、快照代理设置,选择立即创建快照。
7、对代理进行安全设置
7.1、选择在sqlserver代理服务账户下运行,并配置使用以下sql server登录名
这里使用登录名是sa 密码是当前实例的密码
8、向导操作,选择创建发布,直接下一步
9、填写发布名称,完成发布
10、查看发布
六、接收订阅
1、在Node2服务器sqlserver实例中,复制→本地订阅右键选择新建订阅
2、在发布中选择查找服务器。
3、在弹出的连接对话框中,输入Node1计算机的数据库实例名称,账户和密码。(注意:这里不要输入ip地址连接。但是前提是,在Node2SSMS中利用ip地址是可以成功连接Node1的数据库实例)
4、连接成功后,选择node1发布的订阅数据库和名称。
5、发布代理位置中选择第二项,由node2服务器主动请求订阅,减轻node1的压力。(第一个是node1服务器主动推送)
6、 选择node2的同步数据库,如果事先没建数据库,可以在这里新建一个。
7、设置分发代理安全性。
选择在sqlserver代理服务账户下运行,并配置使用以下sql server登录名
这里使用登录名是sa 密码是当前实例的密码
8、剩下的步骤全部下一步就可以了。订阅完成之后,刷新查看。复制→本地订阅
9、展开指定的node2同步数据库zxcl,查看是否完成同步(建议30秒左右查看,第一同步较慢)。
10、如果同步不正常,到node1数据库实例中,复制→本地发布→订阅名称右键点击选择启动复制监视器,查看同步情况
11、根据报错信息,自行修改问题。
12、完成主从复制。