从Azure Blob存储还原SQL备份

时间:2015-07-03 10:49:46

标签: sql-server powershell azure blobstorage

我的任务是从隔夜备份中自动恢复数据库。备份将保存到Azure Blob存储容器中。

我想直接从Blob Storgae执行恢复,还有其他人做过这个吗?

我尝试创建一个powershell脚本,将备份文件下载到安装了SQL Server的服务器上,然后在那里恢复表单,但我遇到了很多问题。

1 个答案:

答案 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

匹配当前数据库的块大小非常重要,以便还原成功完成。