我记得听 Joel 说他有 2 个不同的服务器所在位置,每个位置都有 2 个前端服务器和 1 个后端服务器。
如果其中一个托管设施出现故障,他如何切换到另一个?(或者它只是需要 24-72 小时才能传播的 DNS 更改?)。
一个 SQL Server 实例上怎么会有这么多数据库?FB 每个帐户都有一个完全独立的数据库。我看不到有超过 200-250 个数据库的单个 SQL Server 实例!而且我敢肯定他们的客户比这多。
我记得听 Joel 说他有 2 个不同的服务器所在位置,每个位置都有 2 个前端服务器和 1 个后端服务器。
如果其中一个托管设施出现故障,他如何切换到另一个?(或者它只是需要 24-72 小时才能传播的 DNS 更改?)。
一个 SQL Server 实例上怎么会有这么多数据库?FB 每个帐户都有一个完全独立的数据库。我看不到有超过 200-250 个数据库的单个 SQL Server 实例!而且我敢肯定他们的客户比这多。
他们在其中一个 Stack Overflow 播客中谈到了这一点,但我在成绩单中找不到。
1) 两个中心各自处理大约 1/2 的用户。他们经常(每小时,我想 Joel 说)将事务日志发送到另一个站点。如果站点 A 出现故障,他们会在站点 B 上启动数据库备份,并进行 DNS 切换。它不会是即时的或自动化的,他们也不希望它是这样,因为他们会提出稍微陈旧的数据,并且如果有可能恢复损坏的站点,他们希望避免这种情况。
我不确定他们如何处理 DNS 情况,但是您可以将 DNS 记录上的 TTL 设置为仅几秒钟以限制缓存,并且可以非常快速地进行故障转移。
2)为什么不呢?我不确定每个实例的数据库硬限制,但也没有什么可以阻止您在您的机器上运行多个 SQL Server 实例。我想你更多地受到硬件而不是软件的限制。(您也可以使用 MySQL 数据库后端运行 Fogbugz)。
这里有几个问题,所以我会打破这些:
如果其中一个托管设施出现故障,他如何切换到另一个?
有几种方法可以做到这一点,包括数据库镜像(SQL Server 2005 中的新功能)、日志传送和复制。我在 SQLServerPedia 上录制了关于 SQL Server 高可用性和灾难恢复选项的播客。
(或者它只是需要 24-72 小时才能传播的 DNS 更改?)
与提到的另一篇文章一样,您可以将 DNS 生存时间设置得很慢,但更酷的方法是使用数据库镜像。通过镜像,您可以在连接字符串中设置主服务器名称和辅助服务器名称,当第一个服务器没有响应时,您的应用程序将自动尝试第二个服务器。
一个 SQL Server 实例上怎么会有这么多数据库?FB 每个帐户都有一个完全独立的数据库。我看不到有超过 200-250 个数据库的单个 SQL Server 实例!而且我敢肯定他们的客户比这多。
我使用过的最大的 SQL Server 有超过一千个数据库,并且我与其他几个在服务器上拥有超过 2,000 个数据库的系统上工作过的 DBA 进行了交谈。这无疑使管理更具挑战性,这是肯定的。