我正在运行多个网站,并注意到他们所依赖的许多表都是标准的东西,理想情况下应集中在一起:
当一个更新时,我不得不在每个站点的所有数据库中更新它,这将变得乏味并导致疏忽。我最初是这样设计的,因为我认为如果我创建了一个共享数据库,那将是一个单点故障。如果共享数据库崩溃,那么我的所有网站都会遭受损失。
是否有更好的方法可以做到这一点,或者我是否必须接受单点故障的风险,并采用强大的灾难恢复程序来缓解这种风险?
我正在使用SQL Server 2014 Enterprise。
答案 0 :(得分:1)
1]如果您的所有04网站都有静态数据,那么您应该选择单个数据库。这里的数据库DML(数据操作语言)操作应该是最小的而不是经常的。虽然网站性能会有点低,但它是性能v / s数据库维护之间的权衡。
2]如果您的所有04网站都有电子商务应用程序等OLTP(在线交易处理),那么您应该将所有四个数据库分开。
为上述任何一种情况保留灾难恢复
答案 1 :(得分:1)
归结为平衡风险,成本和收益 - 你的问题更容易发生,如果发生了什么事情会有多糟糕?
参考数据的更新多久不会应用到所有地方?发生这种情况有多糟糕?如果更新将在任何地方应用,但是最终只是最终而不是立即应用,这是不是很糟糕?等等。
将其与以下内容进行比较:数据库崩溃的频率如何?如果发生这种情况有多糟糕?等等。
系统简单有多重要?它已经很难管理了吗?如果是这样,代码或数据库是否更难?
我可以想到几种选择;哪个最好取决于你的情况。这种情况包括您已掌握的技术,技术策略等等。
答案 2 :(得分:1)
为什么不将数据库创建为服务,这意味着不要将数据库直接暴露给客户端,而是通过REST接口公开它。
通过这种方式,您可以更好地处理应用程序的容错要求,然后在其上面具有更好的恢复机制。
希望这有帮助。