我们现在正在从一个MySQL转移到一个MSSQL 2008R2数据库。 由于该项目是一个我们需要能够很好地扩展的Web应用程序,我们需要重新修改DB处理数据的方式。
我们有3个独立的环境:生产,分段和归档/备份。
首先,是否可以将分析和报告服务设置为仅在归档环境中? 或者,他们在原始交易发生的环境中运作至关重要? (也许这些服务需要所有准确的日志等)。这样做的关键是能够“减轻”生产的关键系统,并将负担转移到服务可以自由消耗更多资源的存档中。
其次,有没有什么好方法可以确保档案/备份环境将被更新和保存? 任何工具build议? 我们正在研究Redgate,但是我们在这方面也没有任何经验。 我们需要使用新的东西将数据库与备份存档同步
第三,我们想要有一些祖父 – 父子分组。 例如,我们希望随时进行以下预先计算,而不进行其他预先计算:
为了这个目的,索引视图是否足够好? 我们希望所有的字段都被预先计算和存储。
最后,我们希望有一些像StackExchanges(通常是Wikis)版本的function。 有没有办法实现旧版本,但仍然在生产环境,并保持更新版本的东西更容易获得? 我们一直在研究分区,但似乎并没有处理如此复杂的场景(我们不希望Xdate之前的所有post都被分区,而不是我们需要比最新版本更早的所有版本)。
如果您没有直接回答所有的子问题,请留下回答,以便我们收集归档最佳实践/可扩展性的完整答复。
如果您build议的某些function/工具来自较新的2012版本,则仍然可以,因为我们将在发布后进行升级。
是的,您可以让“分析和报告”只针对一个环境,因为您只需将其指向该环境即可。 最佳做法是在应用程序的生产数据库之外的其他框上运行SSRS(Reporting Services)和SSAS(Analysis Services)。 这是因为核心数据库引擎,SSRS和SSAS都不同地使用I / O和内存。 如果你打算在某个时候做到这一点,它们也会有不同的聚类。
CDC,更改数据捕获,可能允许您执行所需的归档策略,但您需要查看是否可以有效地inheritance删除语句。 基本上,你需要从生产中删除两种types的删除…一个从生产(更小,更快的事务数据库)中删除它,但不会从拱门删除它,第二种types的删除,从所有环境中删除数据。 理论上我相信这是可能的,但是我从来没有在生产中做过。