0

我正在编写一个服务,通过发出以下命令每隔一段时间创建某个 SQL Azure db 的副本:

CREATE DATABASE [copy] AS COPY OF [original]

然后我会定期检查 sys.dm_database_copies 表以查看复制是否完成。基本上,如果 dm_database_copies 条目不存在,则复制完成。

我担心的是:如果复制失败了怎么办?dm_database_copies 条目是否被删除?我的感觉是不应该被删除,因为它包含有关错误的信息,但我不能确定,因为我实际上从未有过数据库复制失败。

所以底线问题是:特定数据库 id 的 dm_database_copies 条目是否会在成功复制之外的任何其他内容上被删除?

提前谢谢了

4

1 回答 1

2

我在复制大型数据库(> 100 GB)时失败,并且记录没有被删除。

文档中我读到:

当数据库复制成功完成并且新数据库变为 ONLINE 时,会自动删除 sys.dm_database_copies 视图中的行。

因此,根据我的经验,它隐含地指出,如果复制过程失败,则不会删除该行。

于 2012-09-05T15:26:56.113 回答