哪个更好:每个应用程序一个数据库,还是只有一个数据库?

Wri*_*ree 3 sql-server architecture

我专门针对 SQL Server 询问这个问题,我可以看到多个数据库的优点是:

  1. 日志更小(因此一个失控的事务不会导致其他事务(复制等)停滞)
  2. 页面损坏不会影响多个应用程序(这可以使用文件组隔离吗?)

我似乎无法从单个数据库架构中找到任何好处(也许代码管理更简单)。

您选择了哪种架构,为什么?

Kin*_*hah 6

我同意 mrdenny每个 Application1 个数据库。这样做有很多很好的理由:

  1. 最重要的是日志: SQL Server 使用事务日志能够在发生任何灾难时进行时间点恢复,前提是在数据库联机时定期进行日志备份。
  2. 完整备份:易于管理每个应用程序,可以根据关键到不太关键的应用程序数据库进行优先级排序。
  3. DR 情况:在应用程序崩溃、服务器宕机或故障转移等场景中易于管理。您可以灵活地仅对 1 个应用程序或所有应用程序执行故障转移 - 取决于您是只想为 1 个应用程序还是所有应用程序测试 DR。
  4. 性能考虑和问题隔离:当应用程序繁忙时,它可以轻松迁移到活动较少的新服务器。此外,请考虑锁定、阻塞和死锁情况,即多个应用程序正在访问同一个数据库,从而导致各种故障排除问题。当每个应用程序有 1 个数据库时,很容易只专注于性能不佳的单个应用程序。
  5. 容量规划:您可以轻松建立基线以查看将来哪些应用程序需要更多磁盘空间,并可能将它们迁移到具有足够磁盘空间的新服务器。
  6. 数据库维护:维护将很容易,因为您可以专注于特定应用程序的数据库并给予它们优先级,而不是所有应用程序只使用一个数据库。在执行 checkdb、重建/重组索引、更新统计信息等时,可以减少整体维护时间。

以上只是每个应用程序使用 1 个数据库的一些优势。还有更多,比如对数据库恢复模型、备份计划、整理等有不同的要求。

此外,您可以考虑使用不同的模式在数据库内进行逻辑分离。


归档时间:

查看次数:

2941 次

最近记录:

12 年,4 月 前