SQL SERVER 2016跨网段和局域网发布订阅
由于工作需要,需定时同步数据库中的不同数据,你们是否和我有着同样的需求?其实有两种方式可以实现,一种方式是今天所写的复制的新建发布-新建订阅,另一种方式是AlwaysOn高可用性。下面先来看看复制的发布和订阅。
一:同网段定时同步数据
1.环境:
SQL2016PC1
系统:win10
数据库版本:SQL Server 2016
IP:10.88.20.133
Sqlserver端口:1433
计算机名:SQLT1
工作组:WORKGROUP
用户名:Administrator
SQL2016PC2
系统:win10
数据库版本:SQL Server 2016
IP:10.88.20.134
Sqlserver端口:1433
计算机名:SQLT2
工作组:WORKGROUP
用户名:Administrator
2.准备工作(SQLT1和SQLT2务必同样的配置)
- )开共享
2.)打开防火墙1433端口
3.)新建入站规则
4.)开启TCP/IP
选中TCP/IP右键“属性”,在属性中把对应的ip 10.88.20.133的Enabled设置为“是”,端口号为默认的1433
5.)Sql Server Browser 服务和代理服务开启
6.)两台机子有相同的账户和密码
7.)数据库添加windows账户
8.)数据库开启远程连接
9.)测试网络是否连接成功
打开cmd命令窗口(windows+R 输入cmd回车)。
使用ping命令测试网络连接是否有问题(SQL2016PC1 和SQL2016PC2都要ping测试是否互通)
接着测试1433端口是否可用
使用telnet命令测试端口是否可用 telnet 10.88.20.134 1433
弹出下框则表示成功可用
3.发布设置
在SQL2016PC1新建了一个新的数据库Test,Test里面有一张表table, table插入了几条测试数据,把数据库test备份复制到SQL2016PC2机器上还原。
配置SQL2016PC1 作为分发服务器
打开数据库的 复制->本地发布,右键新建发布
发布数据库选择的是测试用的test,目的是要把SQL2016PC1 的test数据库同步到SQL2016PC2 的数据库test
4.配置SQL2016PC2 作为订阅服务器
二、跨网段配置
由于公司的两台服务器不在同一个网段,所以上面的配置的过程中出现了问题。
SQL2016PC1在23段,SQL2016PC2在21段,发现telnet端口测试也通讯正常,但是用ip登陆数据库连接的时候报要“使用数据库实例名称登录”的错误,这个时候需要用windows验证,输入服务器名称连接就好了。
在发布服务器的C:\Windows\System32\drivers\etc 目录下找到hosts 文件,配置订阅服务器的ip地址和数据库实例名称,这样发布服务器就可以找到不在同一个网段的订阅服务器实例了