SQL Server 跨网段跨机房复制

一、 背景

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

二、 解决方案

在跨网段、跨机房进行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端口的安全;又可以解决端口映射问题,可以画张图解释;

(Figure1:逻辑结构图)

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

三、 搭建过程

(一) 环境信息

系统环境: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) 在订阅服务器上创建订阅,具体步骤如下:

(Figure2:连接发布服务器)

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

(Figure4:选择推送订阅)

时间: 2024-08-15 18:50:17

SQL Server 跨网段跨机房复制的相关文章

SQL Server 跨网段跨机房FTP复制

一. 背景 搭建SQL Server复制的时候,如果网络环境是局域网内,通过主机名就可以实现了,但是如果是跨网段.跨机房异地搭建复制的时候就需要注意了,因为SQL Server复制不支持通过IP连接分发服务器,那有什么办法解决跨网段.跨机房的问题呢? 我在SQL Server跨网段(跨机房)复制已经讲到了两种解决方法,如果想用请求订阅模式,共享快照文件权限的配置比较麻烦,更好更安全的方式是通过FTP形式读取快照文件进行初始化: 二. 搭建过程 (一) 环境信息 系统环境:Windows Serv

通过SQL SERVER 触发器实现跨库同步

有两个服务器,分别装有两个SQL Server A ,B A,B的表结构a,b 相同 A,B分别都会做一些INSERT,UPDATE,DELETE操作,要求AB的数据保持一致 (即A新增一条数据,要求B也新增,A更改一条数据,B也更改相应的) 是不是可以用触发器来实现 例程 /*--同步两个数据库的示例 有数据 srv1.库名..author有字段:id,name,phone, srv2.库名..author有字段:id,name,telphone,adress 要求: srv1.库名..aut

SQL Server如何通过备份文件初始化复制

一.背景 MySQL在对有历史数据的数据库进行搭建复制(Master/Slave)的时候,可以通过在Master服务器备份历史数据,利用这个备份文件在Slave进行还原:这样做的好处是可以更加快速的搭建好环境,因为可以对备份文件进行压缩.分包,并且可以使用FTP等工具保证传输过程的安全与快捷:详情可参考:Windows下搭建MySQL Master Slave 当SQL Server遇到同样需要对历史数据库搭建复制,通常的做法是在本地发布快照,再由订阅传输数据,那SQL Server应该如何实现

Sql Server2000+Sql Server Mobile Edition配置合并复制

近期都在研究合并复制的配置.我需要的环境是这样的,服务器端的数据库采用SQL Server 2000.PPC,客户端采用的精简数据库是Sql Server Mobile Edition. 时下大多采用的数据库配合方式基本上是sql server 2005和Sql Server Mobile Edition.其实,我也想这样采用.但是考虑到原有的数据库系统是采用2000的版本,很难让原来的研发人员去花费时间整迁移. 本来,精简数据库要选择sql ce 2.0.但在安装过程中总是无法成功解决Serv

SQL Server提高你的合并复制性能

点燃你的合并复制性能 改善合并复制性能的最好的方式就是尽可能地运行合并代理.然而,如果你的用户不在线,那么你就无法运行合并代理,并且你应该劝告你的用户尽量频繁进行同步.以下的贴士将会帮助你提高合并复制的性能. 1.使用合适的配置文件(profile) 关于合并复制性能,你有几种特定的配置文件可以用来解决特定的需求.要察看这些配置文件,右击你的合并代理,选择代理配置(profile),然后从以下列表中选择合适的配置文件: 默认的代理配置文件 高容量服务器对服务器的配置文件 行数和检查总量确认配置文

SQL SERVER 2012 从Enterprise Evaluation Edtion 升级到 Standard Edtion SP1

        案例背景: 公司从意大利购买了一套中控系统,前期我也没有参与其中(包括安装.实施都是第三方),直到最近项目负责人告诉我:前期谈判以为是数据库的License 费用包含在合同中,现在经过确认SQL Server 数据库的License需要我们这边提供.等我连接到该数据库服务器检查时,发现数据库版本为2012 Enterprise Evaluation Edition (64-bit),而公司现在只购买了2012 Standard Edition .那么我现在需要安装SQL SERV

使用SQL Server 助力解决全行业数字化能力

        作为数十载一直从事SQL Server的资深爱好者,深刻感受到SQL Server提供优秀的性能和功能给用户带来的利益和便利性.纵观全世界的数据库,无论NOSQL.大数据如何引领时代潮流,但都离不开关系数据库作为基础数据库源.SQL Server能够成为关系数据库魔力象限的领导者,就证明了其优秀的能力.长期以来,SQL Server在db-engines排名前3,保持着全球领先数据库的行业.深受用户的喜爱.随着SQL Server 2017的推出和更多新特性的支持,所受关注度越来

SQL Server 2000 的工具

1.3.4 ProfilerSQL Server Profiler 是一个图形化的管理工具用于监督记录和检查SQL Server 数据库的使用情况对系统管理员来说它是一个监视用户活动的间谍 1.3.5 Client Network Utility SQL Server Client Network Utility 用于配置客户端的连接测定网络库的版本信息以及设定本地数据库的相关选项 1.3.6 Server Network UtilitySQL Server Server Network Uti

SQL Server 2000中的数据转换服务 (DTS)

server|数据|转换 摘要: 为了完成数据合并.存档和分析等任务:为了进行应用程序开发:为了进行数据库或服务器升级,数据库管理员经常需要导入.导出以及转换数据.SQL Server 2000 中的数据转换服务(DTS)为此提供了一组图形化工具和可编程对象,能够帮助管理员和开发人员解决从不同来源到单个或多个目标的数据转移问题,包括数据提取.转换以及合并.您可以将任务.工作流操作和限制条件组成 DTS数据包,然后安排定期或在特定事件发生时执行该数据包.本白皮书将介绍 DTS,给出一些能够用于创建