http://technet.microsoft.com/en-us/library/cc646023.aspx状态
与 SQL Server 的复制连接使用典型的常规数据库引擎端口(默认实例使用 TCP 端口 1433 等)。复制快照的 Web 同步和 FTP/UNC 访问需要在防火墙上打开其他端口。要将初始数据和架构从一个位置传输到另一个位置,复制可以使用 FTP(TCP 端口 21),或通过 HTTP(TCP 端口 80)或文件和打印共享(TCP 端口 137、138 或 139)进行同步。
这并没有说明,在初始快照在订阅者上恢复后,是否可以关闭除 1433 之外的所有端口。这些端口是否需要永久打开?我的回答是“是的”,但理想情况下我需要尽可能多地关闭。
谢谢
--编辑 抱歉,我忘了说这是一个拉取复制,分发服务器位于发布服务器上。我感兴趣的是分发服务器和订阅服务器之间需要开放什么。
答案1
假设订阅服务器上有一个推送订阅和一个默认的 SQL 实例,则只需要订阅服务器上的入站 TCP 端口 1433 访问(分发服务器 -> 订阅服务器上的端口 1433)。例外情况是,如果您为快照选择了备用交付传输机制(FTP/HTTP/等...)。备用传输机制的连接仅在快照交付期间才需要。快照交付完成后,事务/命令将通过 TCP 端口 1433 交付。标准事务复制是单向的,因此无需在端口 1433 上从订阅服务器到分发服务器的连接。
在拉取订阅的情况下,订阅服务器将从分发服务器拉取,因此只需要在分发服务器(订阅服务器 -> 分发服务器)的入站 TCP 端口 1433 访问(以及备用快照交付方法所需的任何端口)。