为什么您有3个具有相同用户的数据库?
如果一个数据库现在宕机了怎么办?
我之所以问这些问题,是因为用户源数据库的Con下降,阻止了对其他两个数据库的使用,这可能听起来并不像问题那么大。
此外,如果数据库现在宕机了,那么在此期间如果在其他两个数据库中修改了用户,您将已经遇到一致性问题。我认为如果没有更多背景信息,我们无法提供最佳建议。
现在,我将为用户创建第四个数据库,仅在此处进行更改,然后在其他数据库之间进行同步。通过在三个地方更改本质上相同的数据,您已经进行了分布式反规范化,并且可能已经存在一致性问题。如果容错能力很重要,那么该方案在解决多次输入问题时仍会给出解决方案。
我认为拥有第四个仅用户/设置的数据库而不是使用现有数据库中的一个是一个很好的策略,因为它与其他资源无关或未被大量使用,因此崩溃的可能性较小。现在,我知道您说您无法执行此操作,但是我不清楚原因。主数据库上的应用程序是否直接支持用户编辑,或者用户编辑的完全独立的功能可以指向其他地方?
的确,有了这种“规范用户表”的想法-无论您使用同义词还是同步数据-您都无法在用户数据库关闭期间修改用户,但这对我来说似乎是可以的。解决问题并提出来!一个来源,一个地方编辑,如果损坏,则要修复一件事。通过同步,所有其他数据库都具有可以使用的临时副本,但不能进行编辑。最小化跨系统的数据重复是一个伟大而有用的目标。在三个位置输入相同的数据是一个严重的问题,因此请尽一切可能消除这种情况。
要解决更多意见,如果所有应用程序中的用户标识都不相同,那么您应该认真考虑计划中的两个新数据库的停机时间,以使其与主要数据库保持同步(如果需要创意,请询问另一个问题)如何实现这一点,这很棘手,但并不难)。
如果您分析业务需求并发现主数据库必须具有正常的用户数据,则仍将其用作规范数据,然后在同义词或同步之间进行选择,以解决计划外停机时间如何影响所有数据库。
使用同义词的另一个缺点是,您将不再能够在每个数据库中为用户提供适当的FK。