我的任务是从隔夜备份中自动恢复数据库。备份将保存到Azure Blob存储容器中。
我想直接从Blob Storgae执行恢复,还有其他人做过这个吗?
我尝试创建一个powershell脚本,将备份文件下载到安装了SQL Server的服务器上,然后在那里恢复表单,但我遇到了很多问题。
答案 0 :(得分:0)
是的,这是可能的。这些说明适用于SQL 2012R2。
我可以使用带有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
匹配当前数据库的块大小非常重要,以便还原成功完成。