笔者最近碰到了需要搭建跨网段的SQL Server复制,实际的拓扑结构如下草图所示:

发布端A服务器位于CDC机房中

订阅端B服务器位于阿里云

因为SQL Server复制不支持通过IP连接分发服务器,为了解决跨网段、跨机房的问题,笔者采用了如下的解决方案:

1.设置端口映射:在防火墙中开放外网IP的1433端口对应位于CDC机房中的发布服务器A的1433端口。并且该1433端口仅对位于阿里云的服务器B开放。

2.打开位于阿里云的服务器B的1433端口,并设置仅限CDC机房服务器访问。

3.基于安全考虑,采用备份文件初始化,这样可以不必使用文件共享快照文件。

4.使用Host文件,将IP与服务器名对应。

5.由于仅仅是测试,为了简化设置,发布服务器和分发服务器都在同一个服务器上。

----------------------------------------------------------------------------------------------------

以下是实际测试搭建SQL Server 跨网段(跨机房)通过备份文件初始化复制的过程截图:

1,在订阅服务器上设置HOST文件,将CDC机房的外网IP对应发布服务器A的服务器名:

2,同样在发布服务器上设置HOST文件,将位于阿里云的订阅服务器外网IP对应订阅服务器的机器名:

3,在发布服务器和订阅服务器上分别创建Replication用户(这里仅提供了在订阅服务器创建的截图),分别用于日志读取代理器连接发布服务器和推送复制连接到订阅服务器。

4,在发布服务器上新建本地发布

此处快照文件夹可以随便设置,因为后续不会使用到。

设置基本完成。

6,备份发布数据库(需要保留一份在发布数据库上,以备创建订阅时使用):

USE [master]
GO
BACKUP DATABASE [mydb]
TO DISK = N'E:\dbbackup\full\mydb 2015-02-26_2.BAK'
WITH NOFORMAT, NOINIT, NAME = N'mydb-完整数据库备份',
SKIP, NOREWIND, NOUNLOAD,COMPRESSION, STATS = 10
GO

7,拷贝一份备份文件到订阅服务器
8,在订阅服务器还原数据库:

RESTORE DATABASE [mydb]
FROM DISK = N'D:\mydb 2015-02-26\mydb 2015-02-26.BAK'
WITH FILE = 1,
MOVE N'mydb' TO N'D:\MSSQL\Data\mydb\mydb.mdf',
MOVE N'mydb_Data' TO N'D:\MSSQL\Data\mydb\mydb_Data.ndf',
MOVE N'mydb_log' TO N'D:\MSSQL\Log\mydb\mydb_log.ldf',
NOUNLOAD, REPLACE, STATS = 10
GO

9,在发布服务器上创建订阅:

USE [mydb]
GO
EXEC sp_addsubscription
@publication = N'TranPub_mydb',
@subscriber ='mySubscriptionNm',-- 这里应该填订阅服务器的服务器名(即hosts里的名字)
@destination_db = N'mydb',
@subscription_type = N'Push',
@sync_type = N'initialize with backup',
@backupdevicetype='disk',
@backupdevicename='E:\dbbackup\full\mydb 2015-02-26.BAK'-- 这个是发布服务器上备份文件的路径

创建成功后会得到消息:

Job 'XXXX' started successfully.
Warning: The distribution agent job has been implicitly created and will run under the SQL Server Agent Service Account.

10,最后还需要修改订阅端的连接:

打完收工,文字不多,以图片说话,如有不明白的地方请大家留言就是。

参考文献:

https://technet.microsoft.com/zh-cn/library/ms147834(v=sql.105)

http://www.cnblogs.com/gaizai/archive/2013/09/18/3328511.html

http://www.cnblogs.com/gaizai/p/3309567.html

SQL Server 跨网段(跨机房)通过备份文件初始化复制的更多相关文章

  1. SQL Server 中的跨库视图

    SQL Server 中的跨库视图 在一个SQL中,有多个数据库,A.B.C,在使用C为连接库中,现在要查询A中的表T1. 那么,在C中建创视图(A_T1). SELECT *FROM A.dbo.T ...

  2. SQL Server 数据库同步,订阅、发布、复制、跨服务器

    随便说两句 折腾了一周,也算把数据库同步弄好了.首先局域网内搭建好,进行各种测试,弄的时候各种问题,弄好以后感觉还是挺简单的.本地测试好了,又在服务器进行测试,主要的难点就是跨网段同步,最后也解决了, ...

  3. SQL Server 通过备份文件初始化复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建过程(Process) 注意事项(Attention) 疑问(Questions) 参考文 ...

  4. Step3 SQL Server 通过备份文件初始化复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建过程(Process) 注意事项(Attention) 疑问(Questions) 参考文 ...

  5. SQL Server 通过备份文件初始化复制 – 听风吹雨

    一.背景 MySQL在对有历史数据的数据库进行搭建复制(Master/Slave)的时候,可以通过在Master服务器备份历史数据,利用这个备份文件 在Slave进行还原:这样做的好处是可以更加快速的 ...

  6. (1)sql server 同网段复制

    转自:https://blog.csdn.net/hliq5399/article/details/51678774(文末有复制系列文章链接) 一.背景 在复制的运用场景中,事务发布是使用最为广泛的, ...

  7. SqlServer 跨网段跨服务器复制

    注意:被同步的表必须有主键,否则无法同步.对数据库进行操作时需要登录服务器,在服务器本地进行操作,远程对数据库进行操作不能完成所有的步骤 准备工作: 1.将发布数据库完整备份到订阅服务器上,并在订阅服 ...

  8. SQL Server Agent Job 中用Powershell将备份文件拷贝到AWS S3

    SQL Server 数据库备份后,如何再复制一份到AWS S3 上,步骤和需要注意的地方如下: 1. 首先在SQL Server 中创建一个Credential 2. 授权这个Credential ...

  9. SQL Server 数据变更时间戳(timestamp)在复制中的运用

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 方案(Solution) 方案一(Solution One) 方案二(Solution Two ...

随机推荐

  1. 高可用Hadoop平台-答疑篇

    1.概述 这篇博客不涉及到具体的编码,只是解答最近一些朋友心中的疑惑.最近,一些朋友和网友纷纷私密我,我总结了一下,疑问大致包含以下几点: 我学 Hadoop 后能从事什么岗位? 在遇到问题,我该如何 ...

  2. AR介绍

    AR介绍 AR全名扩增实境,是一种实时融合现实与虚拟的图像技术. AR技术的三板斧:感知(寻找目标定位位置-与环境交互),渲染(实现产品交互-与客户交互),追踪(捕捉目标运动轨迹-客户环境上下文). ...

  3. Spring事务传播属性介绍(三).Nested

    Required.Required_New传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10259897.html Mandatory.Neve ...

  4. Eclipse MAT:浅堆 vs 保留堆

    来自:唐尤华 https://dzone.com/articles/eclipse-mat-shallow-heap-retained-heap 有没有想要搞清楚浅堆(Shallow Heap)和保留 ...

  5. Docker实战-为镜像添加SSH服务

    1.基于docker commit命令创建 Docker提供了docker commit命令,支持用户提交自己对定制容器的修改,并生成新的镜像. 命令格式为:docker commit CONTAIN ...

  6. MVC之——Razor语法

    实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download View里所有以@开头或@(/*代码*)的部分代码都会 ...

  7. 【Java并发编程】8、各种锁的概念

    持续更新中... 共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁,直到已释放所有共享锁.获准共享锁的事务只能读数据,不能修改数据. 排他锁(X锁):如果事务 ...

  8. 跨域CORS 头缺少 'Access-Control-Allow-Origin'

    今天遇到一个跨域的问题找了好久的资料错误如下: 解决之后: 控制层 加上这两行代码就好啦: @RequestMapping(value = "",method = RequestM ...

  9. Hadoop windows 环境配置

    下载 winutils 点击 这里下载 winutils 包,并解压缩. 此处解压缩后目录位置为 D:\software\hadoop2.6 配置环境变量 变量名 变量值 HADOOP_USER_NA ...

  10. 【JavaFx教程】第一部分:Scene Builder

    第一部分的主题 开始了解 JavaFX . 创建并运行一个 JavaFX 项目. 使用 Scene Builder 来设计用户界面. 使用 模型 - 视图 - 控制器(MVC)模式 构造基础的应用. ...