SQL Server 跨网段(跨机房)复制

一.本文所涉及的内容(Contents)

  1. 本文所涉及的内容(Contents)
  2. 背景(Contexts)
  3. 解决方案(Solution)
  4. 搭建过程(Process)
  5. 注意事项(Attention)
  6. 参考文献(References)

二.背景(Contexts)

  搭建SQL Server复制的时候,如果网络环境是局域网内,通过主机名就可以实现了,但是如果是跨网段、跨机房异地搭建复制的时候就需要注意了,因为SQL Server复制不支持通过IP连接分发服务器,那有什么办法解决跨网段、跨机房的问题呢?

三.解决方案(Solution)

  在跨网段、跨机房进行SQL Server复制的时候需要区分两种情况:一种是外网IP的1433端口对应了这台机器SQL Server的数据库端口;另外一种情况是外网IP对应SQLServer机器的端口不是1433;下面是几种解决方案:

A. 如果外网IP端口是1433,可以在Windows的host文件中指定IP地址与主机名的对应关系,主机名必须跟真实的主机名一样?

B. 因为你的外网IP端口不是1433,所以你无法在host文件中跟IP地址一起指定端口;这种情况下,如果条件允许(安全性和端口数),你可以在防火墙中开放外网IP的1433端口对应这个发布服务器的1433端口,并且限制某个IP可以访问这个端口,程序等访问发布数据库就使用另外的21433端口,保证了1433端口的安全;又可以解决端口映射问题,可以画张图解释;

wps_clip_image-16794

(Figure1:逻辑结构图)

C. 另外一种方案是在SQL Server配置管理器里建立一个SQL Server别名,这个别名需要跟主机名一样,不需要启用SQL Server Browser服务;

四.搭建过程(Process)

(一) 环境信息

系统环境:Windows Server 2008 + SQL Server 2008

发布服务器:192.168.1.101,1924,192.168.1.101,1433,服务器名称:USER-H2B2A89PEK

分发服务器:与发布服务器同一台机器

订阅服务器:192.168.1.102,1433,服务器名称:QuZhoushiwei105

发布数据库:Task

订阅数据库:TaskSubscribe

数据库帐号:ReplicationUser/ ReplicationPassword

 

(二) 搭建步骤

  上面的发布服务器的外网IP开通了两个端口,一个是默认的1433,一个是1924,如果是默认的1433,可以通过host文件,而如果只有端口1924的话就只能通过SQL Server别名方式实现,这里为了做测试就一起开通了这2个端口了。

A. 下面是通过host文件的形式创建订阅的具体步骤:

1) 在发布服务器上创建发布,具体操作可以参考:SQL Server 复制事务发布,只有搭建成功之后下面的步骤才能进行;

2) 设置订阅服务器C:\Windows\System32\drivers\etc目录的host文件,添加分发服务器(我的环境是发布服务器与分发服务器是一起的,所以这里指定的是发布服务器的地址)信息:192.168.1.101 USER-H2B2A89PEK

3) 设置分发服务器C:\Windows\System32\drivers\etc目录的host文件,添加订阅服务器信息:192.168.1.102 QuZhoushiwei105

4) 在订阅服务器上创建订阅,具体步骤如下:

wps_clip_image-17997

(Figure2:连接发布服务器)

wps_clip_image-22114

(Figure3:成功连接发布服务器)

wps_clip_image-18311

(Figure4:选择推送订阅)

wps_clip_image-23578

(Figure5:选择订阅数据库)

wps_clip_image-16849

(Figure6:推送订阅帐号密码)

wps_clip_image-21517

(Figure7:代理计划)

wps_clip_image-2598

(Figure8:初始化)

wps_clip_image-15522

(Figure9:成功后的订阅信息与作业)

wps_clip_image-5443

(Figure10:新建订阅的状态信息)

 

B. 下面是通过SQL Server别名的形式创建订阅的具体步骤:

1) 在发布服务器上创建发布,具体操作可以参考:SQL Server 复制事务发布,只有搭建成功之后下面的步骤才能进行;

2) 在订阅服务器上创建分发服务器(我的环境是发布服务器与分发服务器是一起的,所以这里指定的是发布服务器的地址)的别名;

wps_clip_image-12241

(Figure11:订阅服务器上的别名)

  在分发服务器上,如果别名的设置包括:SQL Native Client 10.0 配置(32位)和SQL Native Client 10.0 配置,需要都设置订阅服务器的别名,如果没有像Figure13那样进行设置,

wps_clip_image-21703

(Figure12:分发服务器上的别名)

wps_clip_image-8754

(Figure13:分发服务器上的别名)

3) 接下来的步骤按照Figure2到Figure8进行就可以了,同样,最后一样可以达到Figure9、Figure10的效果;

五.注意事项(Attention)

1. 使用请求订阅,分发作业是在订阅服务器上创建的;使用推送订阅,分发作业是在分发服务器上创建;

2. 在发布服务器上创建发布的时候,如果SQL Server数据库实例名与服务器名不一致,将会出现下面的错误:

wps_clip_image-30328

(Figure14:发布错误)

在订阅服务器上创建订阅的时候,如果SQL Server数据库实例名与服务器名不一致,将会出现下面的错误:

wps_clip_image-12226

(Figure15:订阅错误)

3. 可以通过下面的SQL脚本修改不一致的问题,修改之后记得重启SQL Server服务才能生效;

/*
SQL Server数据库实例名与服务器名不一致的解决办法
*/
IF SERVERPROPERTY('SERVERNAME')<>@@SERVERNAME  
BEGINDECLARE @server SYSNAMESET @server=@@SERVERNAMEEXEC sp_dropserver @server=@server  SET @server=CAST(SERVERPROPERTY('SERVERNAME') AS SYSNAME)EXEC sp_addserver @server=@server,@local='LOCAL'
END

4. 分发服务器上的快照文件会给删除?

CareySon:After the snapshot is applied at all Subscribers, replication cleanup deletes the associated .bcp file for the initial snapshots automatically.

5. 如果通过修改host文件部署发布订阅,你必须使用推送订阅模式,如果你使用请求订阅模式,因为你无法读取快照文件,将会报下面的错误:

wps_clip_image-24196

(Figure16:请求订阅无法读取快照文件错误信息)

使用别名的形式部署发布订阅,同样会存在相同的问题,CareySon在Azure上通过开通相关权限的方式可以使用请求订阅方式,但是过程比较复杂,这里就不做讨论了;

6. 如果只在订阅服务器的host文件上指定了分发服务器(这里指定是发布服务器,因为我的发布服务器与分发服务器是一起的),没有在分发服务器的host文件上指定订阅服务器地址,将会发生下面的错误:

wps_clip_image-2957

(Figure17:发布服务器连接不上订阅服务器)

7. 如果服务器同时存在“SQL Native Client 10.0 配置(32位)”和“SQL Native Client 10.0 配置”,测试发现“SQL Native Client 10.0 配置(32位)”设置的别名是提供给:查找SQL Server发布服务器使用的,错误信息类似Figure19所示;“SQL Native Client 10.0 配置”设置的别名是提供给:分发服务器作业推送到订阅服务器使用的,错误信息类似Figure17所示;具体原因不清楚,求科普;

wps_clip_image-15608

(Figure18:别名)

8. 在分发服务器和订阅服务器上设置别名的时候,别名应该跟服务器的实例名要一致,不然会报下面的错误:

wps_clip_image-4568

(Figure19:错误信息)

六.参考文献(References)

SqlServer数据库同步方案详解(包括跨网段)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Twitter Storm安装配置(Ubuntu系统)单机版

要使用storm首先要安装以下工具&#xff1a;JDK、Python、zookeeper、zeromq、jzmq、storm &#xff08;注&#xff1a;各个模块都是独立的&#xff0c;如果安装失败或者卡顿可以单独百度某个模块的安装&#xff0c;都是可以的。&#xff09; JDK1.7安装 参见上篇《Ubuntu下安…

计算机中隐藏的文件找不到了怎么办,隐藏文件夹找不到了怎么办【图解】

在今天&#xff0c;越来越多的人利用电脑来办公。甚至有一些工作&#xff0c;已经与电脑密切相关了。电脑以其强大的功能辅助人们工作&#xff0c;但有时在操作过程中会碰到这样或那样的问题。这个时候人们就会叹其操作的复杂性。就好比如有时你隐藏了一个文件&#xff0c;可是…

CentOS6 配置 yum 阿里源

一、CentOS6停止维护更新日期2020年11月30日 二、2020年12月2日下架了包括官方所有的CentOS6源&#xff08;包括国内的镜像站&#xff09; 三、CentOS6也完成了它的历史使命 在生产的环境中依旧由很多CentOS6系统依然在坚持&#xff0c;那么可以采取挂载光盘或者使用centos-va…

使用ab进行页面的压力测试

ab是apache自带的一个很好用的压力测试工具&#xff0c;当安装完apache的时候&#xff0c;就可以在bin下面找到ab 参数说明及示例 我们可以模拟100个并发用户&#xff0c;对一个页面发送1000个请求 输入命令&#xff1a;ab -n1000 -c100 http://stone_w.cnblogs.com/ 其中-n代…

取消计算机触摸板,笔记本电脑触摸板,详细教您笔记本电脑触摸板怎么关闭

很多的笔记本的用户都习惯使用鼠标&#xff0c;主要是因为笔记本触摸板操作不太方便&#xff0c;没有鼠标操作灵活。反而是经常在电脑中打字等操作时容易误碰到笔记本触摸板&#xff0c;导致输入错误等等&#xff0c;因此很多朋友一般会关闭触摸板&#xff0c;可是笔记本触摸板…

OC学习笔记--基础篇

本文简要介绍了一些oc的基础类型&#xff0c;包括数组、字典、字符串、消息传递、类、对象、方法、属性、协议和转发&#xff0c;希望对你有帮助。 OC数据类型 打印—类似print NSlog("hello word");数组 NSMutableArray &#xff08;可变数组&#xff09;和 NSAr…

PL/SQL Developer中文版下载以及使用图解(绿色版)

下载地址&#xff1a;http://pan.baidu.com/s/1eQCTmkM 1、运行plsqldev.exe程序&#xff1b; 2、设置Oracle主目录名/OCI库地址&#xff0c;如图&#xff1a; 重新启动程序。 3、配置登陆信息&#xff0c;连接数据库&#xff0c;如图&#xff1a;

实例应用 自定义页面taglib标签

关于继承TagSupport与BodyTagSupport的区别说明 * <code>TagSupport</code>与<code>BodyTagSupport</code>的区别主要是标签处理类是否需要与标签体交互。 * 如果不需要交互的就用<code>TagSupport</code>&#xff0c;如果需要交互就用<…

Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)

具体步骤&#xff1a; 1、安装开发工具WebStorm&#xff1b; 2、安装node/npm&#xff08;下载地址&#xff1a;https://nodejs.org/download/&#xff09;选择适合你的xxx.mis安装&#xff1b; 3、安装express框架(cmd窗口模式&#xff0c;用npm命令执行&#xff1a;npm in…

SimpleITK使用深度学习识别肺癌CT DICOM数据集

肺癌数据集DICOM &#xff1a;https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI 首先用SimpleITK把mhd图片读入&#xff0c;对每个切片使用Gaussian filter然后使用阈值-600把肺部图片二值化&#xff0c;然后再分析该切片的面积&#xff0c;去掉面积小于30mm2的…

MemCache在win7上的可视化配置以及Nodejs/Net应用

惯例科普&#xff1a;MemCache是一套分布式的高速缓存系统&#xff0c;由LiveJournal的Brad Fitzpatrick开发&#xff0c;但目前被许多网站使用以提升网站的访问速度&#xff0c;尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。这是一套开放源代码软件…

Redis在win7上的可视化应用

Redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支持push/pop、add/remove及取交集并…

全网最详细的docker配置nginx http2 优化高速访问

Nginx 从 1.13.9 版本开始加入了 HTTP/2 的 Server Push 功能&#xff0c;本文将介绍如何在 Nginx 下实现 HTTP/2 服务器推送 (Server Push) 。这里我们首先用 Docker 搭建一个支持 HTTP/2 的 Server Push 功能的 Nginx 容器并加入 SSL 证书。如果你还不会 Docker&#xff0c;可…

CentOS安装运行NodeJS框架Express

安装依赖包 yum -y install gcc make gcc-c openssl-devel wget 下载/解压NodeJs wget http://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gztar -zvxf node-v0.12.7.tar.gz 编译及安装&#xff0c;逐行执行 cd node-v0.12.7./configuremake install 验证是否安装配置成功&…

android点滴27:R文件无法加载 R cannot be resolved to a v...

2019独角兽企业重金招聘Python工程师标准>>> 导致这个问题原因可能有二个&#xff1a;1. manifest文件中的包名和真正的报名不统一 2. 在java文件中导入了R文件&#xff0c;在java文件中无需导入任何包的R文件&#xff0c;系统会自动加载gen目录下的R文件。 转载于…

MITK医学Python开发入门详细版

1.关于MITK&#xff1a; MITK的全称是”The Medical Imaging Interaction Toolkit”。它是一款开源的交互式医学图像处理软件开发和应用平台。MITK将ITK和VTK整合为一个应用框架。该软件由德国一个研究室开发。官网地址为&#xff1a;http://mitk.org/wiki/MITK 。 与MITK同名…

服务器系统上1068错误,错误1068,详细教您启动网络服务错误1068怎么解决

在电脑中&#xff0c;通常开机后就会自动连接网络宽带&#xff0c;不过有用户遇到问题。开机后网络图标显示红叉或者图标正常无法上网&#xff0c;打开网络和共享中心才发现是服务或者组无法启动&#xff0c;启动时显示错误1068&#xff0c;这该怎么办&#xff1f;下面&#xf…

NodeJs连接Oracle数据库

nodejs连接oracle数据库&#xff0c;各个平台的官方详情文档&#xff1a;https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodejs连接Oracle的配置&#xff0c;运行环境: windows7 x64 nodejs 0.12.7 Python 2.7.10 npm 2.11.3 运行原理分析 npm调…

maven实现多模块热部署

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 基于maven的项目工程都会按模块划分&#xff0c;每个模块最终形成一个jar包&#xff0c;那么每次对模块的修改就需要重新打包&#xff0c;这样的工作重复而繁琐&#xff0c;以前的热部署解决方案都是只针对web…

鲲鹏服务器php性能,对鲲鹏服务器的内存进行性能优化后的前后数据对比

测试的鲲鹏服务器是96核2numa节点&#xff0c;内存测试用的是Imbench里面的stream。优化说明&#xff0c;bios和绑核优化后性能提升明显&#xff0c;编译参数优化后性能提升不明显可以根据情况是否进行编译优化1、Bios修改:进入bios&#xff0c;在Advanced中进入Memory Config界…