Azure从blob还原SQL Server数据库

时间:2019-01-01 14:18:02

标签: azure azure-sql-database

我正在尝试从存储在Blob中的数据库备份文件中还原Azure中的SQL Server数据库。我已遵循this链接,但收到此错误

  

标题:Microsoft SQL Server Management Studio

     

加载数据时发生错误。

     

其他信息:

     

此版本无法识别容器中的Blob类型。 (Microsoft.SqlServer.StorageClient)

     

远程服务器返回错误:(409)冲突。 (系统)

我也尝试过这个:

CREATE CREDENTIAL mycredential1   
WITH IDENTITY= 'jjt', -- this is the name of the storage account you specified when creating a storage account   
SECRET = 'storage account key'

然后尝试使用凭据从azure blob还原sql db,但是在上述步骤中失败,并出现以下错误:

  

MSG 40514,第16级,状态1,第1行
  此版本的SQL Server不支持“ CREATE CREDENTIAL”。

正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

您不能在Azure SQL数据库上使用CREATE CREDENTIAL,需要创建一个CREATE DATABASE SCOPED CREDENTIAL,如下所示:

CREATE DATABASE SCOPED CREDENTIAL UploadInvoices  
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';

有关更多信息,请阅读this文章。

此外,您不能将本机SQL Server备份还原到Azure SQL数据库中。您正在参考的文章正在还原bacpac。您可以将bacpac还原到Azure SQL数据库中。

请使用Microsoft SQL Server Management Studio(SSMS)为您的SQL Server(本地)数据库创建bacpac,右键单击数据库,选择“任务”,然后选择“导出数据层应用程序”以创建提到的bacpac 。创建bacpac后,可以将其作为新数据库导入到Azure SQL数据库中。

将数据库从SQL Server实例迁移到Azure SQL数据库的更好方法是使用最新版本的数据迁移助手,可以从here下载。该工具将对您的SQL Server评估进行评估,它将使您知道为使数据库与Azure SQL数据库兼容而需要进行的任何调整。如果数据库兼容,则该工具会将数据库迁移到Azure SQL数据库逻辑服务器。