本地还原

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

把这个下载到我的机器上之后,我对如何将它还原到本地 SQLServer 实例感到有点困惑。我偶然发现了 DacImport ExportCli 工具,但是找不到本地恢复的示例。

另外,如果有人写了一个脚本,这样做(这样就可以安排) ,这将是非常棒的。

56455 次浏览

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

您可以使用客户端工具恢复 BACPAC:

Http://dacguy.wordpress.com/2011/09/09/importexport-services/

这些工具可以在这里找到:

Http://sqldacexamples.codeplex.com/documentation

试试“ SqlPackage.exe”

我需要导出一个 SQL Azure 数据库,然后将其导入到本地 SQL 2008 R2服务器(注意,我也在使用 Visual Studio 2010)。微软当然想方设法让这个任务变得很痛苦,然而,我能够通过以下方式做到这一点:

  1. 转到此链接 http://msdn.microsoft.com/en-us/jj650014并安装用于 VisualStudio2010的 < em > SQLServer 数据工具

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

  3. 通过命令行或 powershell 浏览到此

  4. 您需要执行 SqlPackage.exe

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

  6. 下面是我的命令行,我需要执行它来导入一个。返回到我的本地 SQL2008R2服务器:

    .\SqlPackage.exe /a:Import /sf:C:\mydatabasefile.bacpac /tdn:NorthWind /tsn:BINGBONG
    
  • /tdn是您希望将 bacpac 文件还原到的数据库的名称。
  • /tsn是 SQL 服务器的名称。

您可以在 # 5的链接中看到所有这些参数描述。

这可以通过 SQLServerManagementStudio2012简单地完成

  1. 右键单击 连结 > 资料库节点并选择“ 导入数据层应用程序..。
  2. 在介绍步骤中选择“ 下一个”。
  3. enter image description here
  4. 浏览或连接到保存备份的存储帐户。

如果您正在使用 SSMS2012,那么只需在对象资源管理器中的服务器下右键单击 Database 文件夹并选择 “导入数据层应用程序...”即可。

有一个障碍需要注意: 截至2013年3月26日(当时我需要找出如何自己做到这一点) ,当你出口一个。从 Azure 下载的 bacpac,它将作为一个 .zip文件下载,没有作为一个 .bacpac文件,在导入向导中的 Browse 按钮打开的文件对话框将只在文件过滤器中显示 *.bacpac*.*,这意味着不支持 .zip。但是,如果您将筛选器更改为 *.*,请选择您下载的。然后单击 下一个,向导将正常运行。

下面是一个脚本,可以一次恢复一大堆 bacpac 文件: 大容量还原本地的 bacpac 文件

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]
}