我使用Azure管理控制台中的“导出”选项创建了Azure SQL数据库的BACPAC备份。
将其下载到我的机器后,我对如何将其恢复到本地SQL Server实例有点困惑。我遇到了DacImportExportCli工具,但找不到本地恢复的示例。
此外,如果有人编写了一个脚本来执行此操作(因此可以安排),这将是非常棒的。
答案 0 :(得分:176)
这可以通过SQL Server Management Studio 2012
完成答案 1 :(得分:52)
我需要导出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:导入/sf:C:\mydatabasefile.bacpac / tdn:NorthWind / tsn:BINGBONG
/tdn
是您希望bacpac文件还原到的数据库的名称。
/tsn
是SQL服务器的名称。
您可以在#5。
的链接上看到所有这些参数说明答案 2 :(得分:10)
答案 3 :(得分:7)
答案 4 :(得分:5)
如果您正在使用SSMS 2012,只需右键单击对象资源管理器中服务器下的Databases文件夹,然后选择“导入数据层应用程序......”。
在路上有一个需要注意的事项:截至2013年3月26日(当我需要自己查找如何执行此操作时),当您从Azure导出.bacpac时,它将作为一个下载。 zip文件,不一个.bacpac文件,导入向导中的“浏览”按钮打开的文件对话框只会在文件中显示* .bacpac或。过滤器,暗示.zip不受支持。但是,如果您将过滤器更改为。,请选择下载的.zip,然后单击“下一步”,向导将正常进行。
答案 5 :(得分:3)
这是一个立即恢复一堆bacpac文件的脚本: Bulk Restore bacpac files local
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] }