我已经使用Azure管理控制台中的“导出”选项创建了我的Azure SQL数据库的BACPAC备份。
将其下载到我的计算机后,我对如何将其还原到本地SQL Server实例有些困惑。我遇到了DacImportExportCli工具,但找不到本地还原的示例。
同样,如果有人编写了执行此操作的脚本(这样就可以安排它了),那就太好了。
我已经使用Azure管理控制台中的“导出”选项创建了我的Azure SQL数据库的BACPAC备份。
将其下载到我的计算机后,我对如何将其还原到本地SQL Server实例有些困惑。我遇到了DacImportExportCli工具,但找不到本地还原的示例。
同样,如果有人编写了执行此操作的脚本(这样就可以安排它了),那就太好了。
Answers:
只需通过SQL Server Management Studio 2012即可完成
我需要导出一个SQL Azure数据库,然后将其导入到本地SQL 2008 R2服务器中(请注意,我也在使用Visual Studio 2010)。微软当然会竭尽全力使这项任务很痛苦,但是,我能够做到以下几点:
转到此链接http://msdn.microsoft.com/zh-cn/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/zh-cn/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 Server的名称。
您可以在#5的链接上看到所有这些参数说明。
似乎我的祈祷得到了回应。Redgate今天免费启动了他们的SQL Azure备份工具-http: //www.red-gate.com/products/dba/sql-azure-backup/download
如果您使用的是SSMS 2012,只需在对象资源管理器中的服务器下的“数据库”文件夹上单击鼠标右键,然后选择“导入数据层应用程序...”,就很容易。
有一点需要注意:从2013年3月26日起(当我需要自己了解如何做的时候),当您从Azure导出.bacpac时,它将以.zip文件下载,而不是 .bacpac文件,并且导入向导中的“浏览”按钮打开的文件对话框将仅显示* .bacpac或。在文件过滤器中,表示不支持.zip。但是,如果将过滤器更改为。,选择下载的.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] }