Geo*_*Ego 2 sql-server database-design production-environment database-schema
我只是继承了一个相对较小的SQL Server数据库。我们有一个分散的系统,可在大约十个站点上运行,每个站点整日受到60至100个客户的追捧。在检查系统时,有几件事让我惊讶:没有定义维护计划或密钥。
我有许多不同的应用程序已经在访问数据库。它们中的大多数是用内联SQL用C编写的。我从事的部分工作是为所有内容编写存储过程,并让我们的应用程序移至该过程。但是,在执行此操作之前,我真的认为我应该专注于这些看似明显的问题。
另外,我们最终将研究复制到中央站点,因此我真的认为应该在考虑之前解决这些问题。
弄清楚重新设计方案和维护计划将很耗时,但不会出现问题-我之前已经在单个站点上做到了。但是,在确保数据完整性且不破坏应用程序的情况下,我将如何在十个(或更多)生产站点上对数据库进行这些重大更改?
我怀疑没有定义正式的密钥,该数据库可能存在大量的数据完整性问题。幸运的你。
对于复制,您将需要GUID。我会这样做,在开发环境中添加GUID和PK定义并测试测试。您可能会发现很多人确实选择了*的废话,添加这些列将导致出现问题或使事情显示在您不想要的报告上。查找并修复所有这些问题。确保将对数据的所有更改编写脚本,并将它们与您需要对应用程序进行的所有代码更改一起放入源代码管理中。然后安排停机时间,以在最短的使用时间内维护数据库。让用户知道应用程序将提前关闭。在停机期间,让应用程序显示停机消息,将datbase更改为单用户模式,以便除团队以外,没有人可以影响数据库,进行完整备份,
在任何情况下,我都不会尝试更改此专业而不更改为单用户模式。