我们有一个简单的 SQL 脚本,可以从 Azure 存储 Blob 中恢复 MSSql DB。我们将 PROD DB 备份到 Azure 存储。
尝试运行此脚本(我们发誓用过的工作了一段时间)。现在出现错误:
消息 3271,级别 16,状态 1,第 11 行 文件“https://<{snip}.blob.core.windows.net/full/{snip}.bak:”发生不可恢复的 I/O 错误。指定的 URL 指向块 Blob。不允许对块 Blob 进行备份和还原操作。消息 3013,级别 16,状态 1,第 11 行 RESTORE DATABASE 正在异常终止。
该.bak
文件通过 MSSql 使用内置的维护计划功能生成,并每周一次完整备份到 Azure:
BACKUP DATABASE [<snip>]
TO URL = N'https://<snip>.blob.core.windows.net/full/<snip>.bak'
WITH CREDENTIAL = N'<snip>' ,
NOFORMAT,
NOINIT,
NAME = N'<snip>',
SKIP,
REWIND,
NOUNLOAD,
COMPRESSION,
STATS = 10
以下是 Azure 存储中此目标博客的 Azure GUI 显示的内容:
我们使用的脚本:
RESTORE DATABASE <snip> -- |||||--CHANGE--|||||
FROM URL = 'https://<snip>.blob.core.windows.net/full/<snip>.bak' -- |||||--CHANGE--|||||
WITH CREDENTIAL = '<snip>',
MOVE N'<snip>' TO <snip>,
MOVE N'<snip>_log' TO <snip>,
NOUNLOAD,
REPLACE,
STATS = 1
GO
这是我们的恢复脚本的问题吗,或者我们错误地将完整数据备份到 Azure?