我在 stackoverflow.com 上询问了这个问题,他们还建议我也在这里问。
我有了一个新客户,等等等等,我需要中断从他们的家庭办公室到他们将要完全删除的另一个数据库的 SQL Server 2000 复制(在某些托管地点,它不再需要)。
我认为,总部的数据库是“发布者”。老实说,我认为我们可以删除其他数据库,总部的数据库就可以正常运行,但最好将其清理一下,删除发布/订阅内容。
我关心的一个问题是身份插入。在具有自动分配的整数主键的表上,每个数据库都会“保留”一个它将使用的 ID 块,这样它们在同步时就不会互相干扰。
那么,如果我直接转储复制内容,数据库是否会顺利插入,直到达到其自动编号范围的上限?然后会发生什么?
答案1
从发布者中删除复制,然后完全删除复制配置。这将摆脱已分配的 ID 块,剩下的单个服务器将使用所有 ID。
答案2
标识插入保留是由复制完成的还是以某种方式与其绑定?我怀疑他们正在使用合并复制,这意味着存在发布者和子订阅者。插入标识也可能与发布的设置方式无关。因此,当您删除复制时,将发生以下两种情况之一:它将继续仅使用保留块,因此现在您需要扩展它。或者它将检测到另一个数据库已消失,并让剩下的数据库访问所有数字。我怀疑它将继续使用保留块,因此在用完数字之前,您不会遇到任何问题。
如果您想要保留的数据全部位于主服务器上,那么您只需打开 SQL 企业管理器,深入到复制节点,您将在其中找到服务器的复制,您应该能够右键单击并删除。这样就可以将其删除。
然后如果我没记错的话,您删除了该出版物(由数据库本身上的共享手表示),然后如果您愿意,您可以在整个服务器上禁用复制。
抱歉,我没有说得更具体一些,但我已经好几年没有做过任何复制工作了。