我们将把服务器放在两个地方,以保持高水平的冗余度并避免带宽不足。两台服务器位于不同的局域网上,但通过广域网(通过互联网)进行通信。其中一台服务器是主服务器,另一台是辅助服务器。问题是该软件不仅包含数据库,而且主服务器上的文件也必须传输到第二台服务器上。我们正在使用SQL 服务器 2005
我们的设计主要要求如下:
- 我们正在使用SQL 服务器 2005将来会把数据库升级到Oracle,所以要考虑维护和演进的问题。
- 文件(图像、电影等)也必须传输到第二台服务器。
- 互联网上两台服务器之间的关系必须完全安全。安全性是主要问题之一。主服务器上唯一开放的端口是用于 HTTP 请求的端口 80,该端口仅是只读的,所有其他端口均已关闭,这被证明是一种非常安全的选择。
- 两台服务器之间的带宽非常有限,我们不想增加主服务器的负担。
- 第二台服务器必须是可写的,但第二台服务器上的任何修改都不会回发到主服务器。所以我们有一个单向事务,不想要双向事务。
解决方案一 SQL 服务器之间的数据传输:事务复制 服务器之间的文件传输:Cute FTP 安全选项:VPN 在此解决方案中,我们将使用 VPN 来保护两台服务器之间的关系。两台 SQL 服务器之间的数据通过事务复制发送。
解决方案二 SQL 服务器之间的数据传输:备份和恢复 服务器之间的文件传输:Cute FTP 安全选项:VPN 在这里,我们将每六个小时备份一次数据库,并通过安全隧道(VPN)将数据和文件通过 FTP 发送到第二台服务器。此解决方案的缺点是它占用大量带宽,并且比第一个解决方案花费更多时间。
解决方案 III SQL 服务器之间的数据传输:使用合并复制的 Web 同步 服务器之间的文件传输:通过 SSL 的 WebDAV 安全选项: - 这里我们使用合并复制进行复制,但我们不会使用合并复制的双向选项。我们将使用 Web 同步而不是 VPN。要将文件传输到第二台服务器,我们将使用通过 SSL 的 WebDAV 来保护连接。此选项的可能缺点是,我不确定数据传输是否安全,可能会导致主服务器的安全缺陷。即使对于 Web 同步,我们也必须打开 443 端口,这也可能导致安全问题,尤其是我们在此解决方案中未使用 VPN。
解决方案 IV SQL 服务器之间的数据传输:事务复制 服务器之间的文件传输:通过 SSL 的 FTP 或 WebDAV 安全选项:配置代理服务器 代理服务器配置为多宿主服务器,以防止 Internet 上的未经授权的用户访问运行 SQL Server 的内部服务器。 代理服务器配置为多宿主服务器,以防止 Internet 上的未经授权的用户访问运行 SQL Server 的内部服务器。 在此选项中,我们必须打开端口:1433 和 21。我不确定这是否会导致安全性缺陷,尤其是我们在此解决方案中未使用 VPN。
注意:您认为我们没有使用镜像或日志传送等功能。我们不能使用 SQL Server 中的镜像等功能,因为在这些情况下,备用服务器要么不可用,要么(如果使用快照)只是只读的。
总结:我更喜欢使用解决方案 1,因为它解决了所有安全问题,并且被证明是安全的。由于执行事务复制,它将很快,并且可以在将来扩展到其他数据库源(如 Oracle),并且带宽问题很重要。我正在等待您对我的解决方案的建议和评论,并期待任何其他想法。
非常感谢您的回复。
让我更清楚地描述一下我们的情况。我们现在在 WAN 网络上有一台服务器。该服务器包含数据库和 Web 应用程序。问题是我们公司的用户数量非常多,但我们的连接线路很低,带宽不足。因此,当他们开始在 WAN 上使用该网站时,该网站无法使用。
因此,我们决定在我们的 LAN 连接上运行另一个从属服务器,该服务器将由主服务器同步。公司的用户将使用此服务器作为性能问题。我认为这个解释让你更清楚地了解这个主题。
所以我想对数据库(SQL SERVER 2005)使用复制,而不是为了故障转移或可用性。这只是我之前解释过的问题。你必须注意我们的带宽非常慢。
我正在使用 VPN 连接,因为安全对我来说至关重要,我不想打开任何不必要的端口和缺陷。
您使用 DFS 复制文件的建议看起来不错。但是 DFS 有一些限制和要求:
- 我们通过 VPN 通道使用安全关系,并且数据已加密。那么,当 FTP 数据通过安全 VPN 通道加密发送时,为什么要使用 DFS?
- 参与 DFS 复制的服务器必须运行 Windows Server 2003 R2 操作系统。但我们的服务器只有 Windows Server 2003 Service Pack 1,而不是 R2。那也行得通吗?
- 两台服务器必须位于同一个林中。我不确定这是否适用于我们的情况!?这是否体现了安全性?
- 您能给我一些关于有用的 DFS 电子书的建议吗?
希望我已经向您提供了足够的详细信息。我正在等待您的回复。
答案1
如果我读得没错,而且我也这么认为,你遇到的问题其实很简单。但前提是你准备好修改 4 个解决方案中的任何一个。
我还假设您的预算在 100 万至 1000 万美元左右,因为您表示有兴趣在未来迁移到 Oracle,如果您的预算不够高,那么您就倒霉了。
那么。上述问题的 TL;DR 摘要如下。“我们想创建一个高可用性数据库集群,在两个(或更多)站点拥有两个(或更多)服务器。”
我不知道你为什么一直提到 FTP 和 WebDAV,因为你似乎非常关心安全性。FTP 一点也不安全。WebDAV 一点也不高性能。
第一步。获得并保持对网络的绝对控制。您需要在站点之间建立良好的连接。我认为需要 10 到 100Mbit 之间的无争用、无过滤的“运营商级”互联网。在每个站点,您都需要一个不错的 VPN 路由器。类似 Cisco ASA 的设备将是一个不错的开始。然后在两个站点之间设置 AES 安全的 IPSec VPN。
要在两台服务器之间复制文件,可以使用DFS。这是 Windows Server 2003 及更高版本中内置的多主文件系统复制工具。我不会解释设置 DFS 的具体细节。那完全是另一个问题。
要复制数据库,替代方案的数量您可以使用它们,它们各自提供不同的好处。您没有过多谈论您的应用程序架构,或者您是否希望从改进的可用性或改进的可伸缩性或两者中受益。同样,设置复制的实际过程是另一个问题。
我建议您使用便携式 USB 硬盘“手动”进行新数据库服务器的初始同步,这可能比通过互联网同步要快得多。
您还没有提到有关网络基础设施的任何信息,您的网络服务器和数据库服务器是否是分开的?您是否也计划复制它们?
TL;DR:使用行业最佳实践方法通过安全 VPN 实现站点到站点链接,使用内置复制系统来处理数据库和文件系统。忘记 FTP、WebDAV 和所有其他东西,并正确执行。如果您正确执行,它不太可能给您带来麻烦。
答案2
至于它的 SQL Server 部分,您将需要使用事务复制。
对于文件复制,您需要查看 DFS。如果由于您的 AD 设置而无法使用,您需要使用 /sync 选项查看 robocopy。DFS 与安全无关,它是一种数据复制解决方案。要使用 DFS,您需要在两个站点之间有一个 AD 林。这对于多站点公司来说是正常的。
您可能希望从 SQL 2005 升级到更新的版本。微软即将在此之后发布第三个主要版本。
如果您因为用户访问网站而遇到性能问题,您可能需要提高两个站点的网络速度,以便它可以处理您必须处理的所有数据复制的网络流量。
为什么只需要将第二个站点中的用户写入的数据仅提供给第二个站点?如果应用程序仅从第二个站点使用(或主要从第二个站点使用),为什么不将应用程序移动到第二个站点,并让需要从第一个站点访问它的任何人只需连接到第二个站点中的服务器即可?