我记得听说Joel说他有2个不同的服务器位置,每个位置有2个前端服务器和1个后端服务器。
如果其中一个托管设施发生故障,他怎么能切换到另一个呢? (或者它只是一个需要24-72小时才能传播的DNS更改?)。
单个SQL Server实例如何拥有如此多的数据库? FB每个帐户都有一个完全独立的数据库。我看不到单个SQL Server实例上有超过200-250个数据库!我相信他们有更多的客户。
答案 0 :(得分:1)
他们在其中一个Stack Overflow播客中谈到了这一点,但我在成绩单中找不到它。
1)两个中心中的每一个都处理大约1/2的用户。通常(每小时,我认为Joel说)他们将交易日志发送到另一个站点。如果站点A出现故障,它们会在站点B上调出db备份,并进行DNS切换。它不会是即时的或自动化的,也不是它们想要的,因为它们会提出稍微过时的数据,并且如果能够将破碎的网站重新启动则希望避免这种情况。
我不确定他们如何处理DNS情况,但您可以将DNS记录上的TTL设置为仅限秒以限制缓存,并且可以非常快速地进行故障转移。
2)为什么不呢?我不确定每个实例的数据库的硬限制,但也没有什么能阻止您在盒子上运行多个SQL Server实例。我想你的硬件比软件更受限制。 (您也可以使用MySQL数据库后端运行Fogbugz。)
答案 1 :(得分:0)
在这里有几个问题所以我会打破这些:
如果其中一个托管设施发生故障,他怎么能切换到另一个呢?
有几种方法可以做到这一点,包括数据库镜像(SQL Server 2005中的新增功能),日志传送和复制。我在SQLServerPedia上录制了podcast on SQL Server high availability and disaster recovery options。
(或者它只是一个需要24-72小时才能传播的DNS更改?)
与上面提到的其他帖子一样,您可以将DNS生存时间设置为非常慢,但冷却器方法使用数据库镜像。使用镜像,您可以在连接字符串中设置主服务器名称和辅助服务器名称,并且当第一个服务器没有响应时,您的应用程序将自动尝试第二个服务器。
单个SQL Server实例如何在其上拥有如此多的数据库? FB每个帐户都有一个完全独立的数据库。我看不到单个SQL Server实例上有超过200-250个数据库!我相信他们有更多的客户。
我与之合作过的最大的SQL Server拥有超过一千个数据库,我和其他几位在服务器上处理过2000多个数据库的系统的DBA进行了交谈。它肯定会使管理变得更具挑战性,这是肯定的。