我的任务是从一夜之间的备份中自动恢复数据库。备份保存到 Azure Blob 存储容器。
我想直接从 Blob Storgae 执行还原,还有其他人实现了吗?
我尝试创建一个 powershell 脚本来将备份文件下载到安装 SQL Server 的服务器上,然后在那里恢复表单,但我遇到了很多问题。
我的任务是从一夜之间的备份中自动恢复数据库。备份保存到 Azure Blob 存储容器。
我想直接从 Blob Storgae 执行还原,还有其他人实现了吗?
我尝试创建一个 powershell 脚本来将备份文件下载到安装 SQL Server 的服务器上,然后在那里恢复表单,但我遇到了很多问题。
是的,这是可能的。这些说明适用于 SQL Server 2012。
我能够使用带有 AZCopy 命令的 /BlobType:page 开关上传备份。
然后,我能够使用存储在数据库中的存储凭据直接从该位置恢复。
这是一些示例代码:
复制文件 -
Azcopy /Source:<locationOfYourBackup> /Dest:https://<yourContainerName>.blob.core.windows.net/sqlbackup/<yourBackupFile> /DestKey:<YourContainerKey> /BlobType:page
在数据库服务器上 -
Create credential 'sqlbackup'
With identity ='<yourContainerName>', secret = '<YourContainerKey>'
RESTORE DATABASE [nameOfYourDatabase] FROM URL = https://<yourContainerName>.blob.core.windows.net/sqlbackup/<yourBackupFile>
WITH credential = 'sqlbackup' , FILE = 1, NOUNLOAD, REPLACE, BLOCKSIZE=4096
匹配当前数据库的块大小非常重要,这样还原将成功完成。