我应该如何在24×7系统上执行数据库维护

我是inheritance兼职DBAangular色的软件开发人员。 我负责SQL Server 2008上的一个小型,高容量的24×7数据库的应用程序后端。

在数据库中还有其他的东西,关键的是50GB,7.5M的行表,在高峰负载时提供10万个请求/秒,在“夜晚”时约为一半。 这是99%的读取stream量,但写入是不变的,并且是必需的。

我需要能够在没有维护窗口的情况下执行定期维护。 说索引重build,清除旧数据,Windows Update或硬件升级的作业。 我所看到的大部分build议都是“做一个维护窗口”的。 当我欣赏这种情绪的时候,我希望还有另一种方式。 如果能解决这个问题,我确实有能力购买新的硬件或修改数据库,客户端(一组Web服务器),以及大部分的应用程序代码(ADO.NET + ASP.NET)。

我一直在思考如何使用热备件(或第三台服务器)来进行维护,然后“交换”到生产环境中。
1通过还原备份(包括当前事务日志)同步备用数据库。
2执行维护任务。 3重新configuration客户端以连接到备用服务器。 现有的连接在一分钟内完成。 4备用服务器现在是生产服务器。

剩下的问题是,新的生产服务器现在已经过时,不pipe花了多长时间来执行维护。 是否有某种方法可以使原生产服务器排队等待更改并将它们合并到步骤2和步骤3之间的备件中? 任何其他的想法?

您需要阅读SQL 2008提供的高可用性function。请参阅此白皮书。 有太多的情况可以覆盖。

[在肥皂盒上攀登]

你确实需要维护窗口。 这并不意味着每周,甚至每月,但是有时候需要服务器来进行改进。 有很less的系统可以长时间(100年)运行,或者需要。 维护窗口的目的是最大限度地减less停机时间并使其可预测,从而使业务能够应对。 我build议不要一起解雇维护窗口。 如果通过转移到集群等方式来改变configuration,那么在转换过程中肯定会有一些停机时间,但是很小。 [爬下来]

一些选项:

  1. 镜像
  2. 聚类
  3. 日志传送
  4. 在线索引操作
  5. 使用在线索引操作和分区表进行归档
  6. 点对点复制

我的2美分。

我第二反映,并指出,如果你真的需要24/7公司应该提高他们的预算,包括一个DBA或顾问来帮助。

多次镜像可以解决24/7的需求“足够好”,而且只需要很less的成本就可以超越第二台服务器。

由于该数据库是基础架构的重要组成部分,因此无论如何推荐使用热备份。 这也将使您能够进行维护。