Azure SQL数据库Bacpac本地还原

Azure SQL Database Bacpac Local Restore

我使用Azure管理控制台中的"导出"选项创建了Azure SQL数据库的BACPAC备份。

将其下载到我的机器后,我对如何将其恢复到本地SQL Server实例有点困惑。 我遇到了DacImportExportCli工具,但找不到本地恢复的示例。

此外,如果有人编写了一个脚本来执行此操作(因此可以安排),这将是非常棒的。


这可以通过SQL Server Management Studio 2012完成

  • 右键单击Connection> Databases节点,然后选择"Import Data-tier application ..."
  • 在介绍步骤中选择"下一步"。
  • enter image description here
  • 浏览或连接到保留备份的存储帐户。

  • 我需要导出SQL Azure数据库,然后将其导入本地SQL 2008 R2服务器(注意我也使用Visual Studio 2010)。微软当然竭尽全力使这项工作成为一项痛苦的任务,但是,我能够通过以下方式实现这一目标:

  • 转到此链接http://msdn.microsoft.com/en-us/jj650014并安装Visual Studio 2010的SQL Server数据工具

  • 这将安装在您的本地驱动器上。在我的情况下,这里是它把它:C: Program Files(x86) Microsoft SQL Server 110 DAC bin

  • 通过命令行或powershell浏览到此

  • 您将要执行SqlPackage.exe

  • 打开此链接以查看SqlPackage.exe的所有参数选项列表(http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx)

  • 这是我需要执行的命令行,以将.bacpac文件导入我的本地SQL 2008 R2服务器:

    .\SqlPackage.exe /a:Import /sf:C:\mydatabasefile.bacpac /tdn:NorthWind /tsn:BINGBONG

  • /tdn是您希望bacpac文件还原到的数据库的名称。
    /tsn是SQL Server的名称。

    您可以在#5的链接上看到所有这些参数说明。


    您可以使用客户端工具还原BACPAC。视频在这里:

    Import/Export Services

    这些工具可在此处获得:

    http://sqldacexamples.codeplex.com/documentation


    似乎我的祈祷得到了回应。 Redgate今天免费推出了他们的SQL Azure备份工具 - http://www.red-gate.com/products/dba/sql-azure-backup/download


    如果您正在使用SSMS 2012,则只需右键单击对象资源管理器中服务器下的Databases文件夹并选择"Import Data-tier Application ..."即可。

    路上还有一个需要注意的事项:截至2013年3月26日(当我需要自己查找如何执行此操作时),当您从Azure导出.bacpac时,它将作为.zip文件下载,不是.bacpac文件,导入向导中的"浏览"按钮打开的文件对话框只显示* .bacpac或。在文件过滤器中,暗示不支持.zip。但是,如果将过滤器更改为。,请选择下载的.zip,然后单击"下一步",向导将正常进行。


    这是一个立即恢复一堆bacpac文件的脚本:
    批量恢复bacpac文件本地

    1
    2
    3
    4
    cd [FOLDERPATH]
    $goodlist = dir
    cd 'C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin'
    foreach($i in $goodlist){ $name = $i.Name; $namer = $i.Name.Substring(0, $i.Name.length - 7); .\SqlPackage.exe /a:Import /sf:[FOLDERPATH]\$name /tdn:$namer /tsn:[SERVERNAME] }