码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server 跨网段(跨机房)通过备份文件初始化复制

时间:2015-02-27 13:27:13      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

笔者最近碰到了需要搭建跨网段的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 = NE:\dbbackup\full\mydb 2015-02-26_2.BAK 
WITH NOFORMAT, NOINIT,  NAME = Nmydb-完整数据库备份, 
SKIP, NOREWIND, NOUNLOAD,COMPRESSION,  STATS = 10
GO

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

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

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

USE [mydb]
GO
EXEC sp_addsubscription
    @publication = NTranPub_mydb,
    @subscriber =mySubscriptionNm,
    @destination_db = Nmydb,
    @subscription_type = NPush,
    @sync_type = Ninitialize 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 跨网段(跨机房)通过备份文件初始化复制

标签:

原文地址:http://www.cnblogs.com/ajiangg/p/4303092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!