小编use*_*972的帖子

失败的复制作业删除所有用户

由于这件事的进展在第一次显然有些难以理解:

我使用带有分离/重新连接方法的复制数据库向导尝试了一个完全无聊的、已经完成了数千次的数据库复制。

复制失败。日志表明它无法对CREATE VIEW特定视图执行操作,因为该视图的数据源不存在。这本身就很有趣,因为源肯定存在,并且有问题的视图在数据库中完全可用。我还不太清楚这有多重要,因为我还没有弄清楚为什么会产生错误。

这导致从数据库中删除所有非系统用户关联,留下用户 dbo、information_schema、sys 和 guest。非系统角色也被删除。架构不受影响。

我已经从备份中恢复了损坏的数据库。然而,在学术上,我想知道以下几点:

  1. 为什么失败的复制操作会从数据库中剥离用户关联?
  2. 是否可以在源数据库上执行任何类型的维护/重建/修复操作来修复它?
  3. 用户的流失是显而易见的,但鉴于失败的复制作业的相当神秘的性质显然会损坏数据库,我应该如何担心不太明显的影响?从理论上讲,我希望从备份中恢复可以减轻这种担忧,但是我有什么理由担心,例如,主数据库吗?

这是完全可重复的。为了试验这个特定问题,我制作了一些副本(手动),在每种情况下,失败的复制作业都会从数据库中删除用户和角色。

删除产生错误的视图允许复制完成,并且正如人们所期望的那样,除了保持源数据库不变之外,还生成具有相同数据、用户等的副本。

如果这很重要,我已经尝试重建系统数据库的索引以及损坏的数据库,但没有明显效果。

产生的错误:

1:00:25 PM,5/28/2013 1:00:25 PM,0,0x,ERROR : errorCode=-1073548784 description=Executing the query "CREATE VIEW [Sourcing].[PermittedArrProducts]
AS
SELECT     dbo.tblArrProducts.ArrProductID, dbo.tblArrProducts.ArrangementID, dbo.tblArrProducts.ContainerTypeID, dbo.tblArrProducts.Quantity
FROM         Sourcing.PermittedArrangements INNER JOIN
                      dbo.tblArrProducts ON Sourcing.PermittedArrangements.ArrangementID = dbo.tblArrProducts.ArrangementID

" failed with the following error: "Invalid object name 'Sourcing.PermittedArrangements'.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server

6
推荐指数
1
解决办法
282
查看次数

标签 统计

sql-server ×1

sql-server-2005 ×1