WrinkleFree Asked: 2013-05-24 05:09:24 +0800 CST2013-05-24 05:09:24 +0800 CST 2013-05-24 05:09:24 +0800 CST 哪个更好:每个应用程序一个数据库,还是只有一个数据库?[复制] 772 我专门针对 SQL Server 提出这个问题,我可以看到多个数据库的优势是: 日志更小(因此一个失控事务不会导致其他事务(复制等)停止) 页面损坏不会影响多个应用程序(可以使用文件组隔离吗?) 我似乎无法从单一数据库架构中找到任何好处(也许代码管理更简单)。 你选择了哪种架构,为什么? sql-server architecture 3 个回答 Voted Best Answer Kin Shah 2013-05-24T06:01:45+08:002013-05-24T06:01:45+08:00 我同意 mrdenny每个 Application 有 1 个数据库。这样做有很多充分的理由: 最重要的是日志: SQL Server 使用事务日志能够在发生任何灾难时进行时间点恢复,前提是在数据库在线时定期进行日志备份。 完整备份:易于管理每个应用程序,并且可以根据关键到不太关键的应用程序数据库进行优先级排序。 DR 情况:在应用程序崩溃、服务器停机或故障转移等情况下易于管理。您可以灵活地仅对 1 个应用程序或所有应用程序执行故障转移 - 取决于您是否只想为 1 个应用程序或所有应用程序测试 DR。 性能考虑和问题隔离:当应用程序繁忙时,可以轻松地将其迁移到活动较少的新服务器。此外,请考虑锁定、阻塞和死锁情况,即多个应用程序访问同一个数据库会导致各种故障排除问题。当每个应用程序有 1 个数据库时,很容易只专注于单个应用程序性能不佳。 容量规划:您可以轻松地建立基线以查看未来哪些应用程序需要更多磁盘空间,并可能将它们迁移到具有足够磁盘空间的新服务器。 数据库维护:维护将很容易,因为您可以专注于特定应用程序的数据库并赋予它们优先级,而不是所有应用程序只使用一个数据库。执行 checkdb、重建/重组索引、更新统计信息等时,可以减少整体维护时间。 以上只是每个应用程序使用 1 个数据库的一些优点。还有更多,比如对数据库恢复模型、备份计划、排序规则等有不同的要求。 此外,您可以考虑使用不同的模式在数据库中进行逻辑分离。 mrdenny 2013-05-24T05:16:18+08:002013-05-24T05:16:18+08:00 我总是会为每个数据库放置一个应用程序。这样,随着应用程序的增长,我可以将繁忙的应用程序转移到新的服务器上,而不必溢出数据库。拥有多个数据库也会在数据库之间创建一道安全墙。 gbn 2013-05-24T06:23:57+08:002013-05-24T06:23:57+08:00 所有应用程序中的数据在事务上是否一致? 是 = 你需要一个数据库 否 = 使用单独的数据库
我同意 mrdenny每个 Application 有 1 个数据库。这样做有很多充分的理由:
以上只是每个应用程序使用 1 个数据库的一些优点。还有更多,比如对数据库恢复模型、备份计划、排序规则等有不同的要求。
此外,您可以考虑使用不同的模式在数据库中进行逻辑分离。
我总是会为每个数据库放置一个应用程序。这样,随着应用程序的增长,我可以将繁忙的应用程序转移到新的服务器上,而不必溢出数据库。拥有多个数据库也会在数据库之间创建一道安全墙。
所有应用程序中的数据在事务上是否一致?