gpt4 book ai didi

sql - Azure数据库复制,等待就绪状态

转载 作者:行者123 更新时间:2023-12-04 21:14:58 25 4
gpt4 key购买 nike

我时不时地通过使用模板数据库和 azure 复制数据库 t-sql 脚本来创建新的 Azure 数据库,无需任何人工交互。

阅读了一些注意事项后,我想知道等待复制的数据库准备就绪的最佳方法是什么。

我已经发布了自己的答案,但如果数据库复制失败,它可能会陷入无限循环。

确保复制完成的最佳方法是什么?这非常重要,因为一次只允许执行一个复制数据库命令。我正在使用带有 C# 队列的 Azure 工作线程,该队列可根据需要创建数据库。

最佳答案

我现在就是这么做的。这应该可行,但不幸的是复制时很少出现错误。

    declare 
@sName varchar(max),
@sState varchar(max),
@iState int,
@sDbName varchar(50)

set @sDbName = 'myDbName'
set @iState = 7 --copying
while @iState = 7
begin
WAITFOR DELAY '00:00:05'
SELECT @sName = name, @iState = state, @sState = state_desc FROM sys.databases WHERE name = @sDbName
end
SELECT name, state,state_desc FROM sys.databases WHERE name = @sDbName

此代码实际上是从 C# 中的 Azure 工作线程运行的

编辑:

如果您想要更精细的方法,请使用 sys.dm_database_copies

但请记住,此 sql 以整数形式返回状态,并且只有在状态 ==0 时才成功,否则复制失败。这些州是:

0 = ONLINE
1 = RESTORING
2 = RECOVERING
3 = RECOVERY_PENDING
4 = SUSPECT
5 = EMERGENCY
6 = OFFLINE
7 = COPYING (Applies to Windows Azure SQL Database)
Windows Azure SQL Database returns the states 0, 1, 4, and 7.

关于sql - Azure数据库复制,等待就绪状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21243950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com