Azure SQL Database Bacpac Local Restore
我使用Azure管理控制台中的"导出"选项创建了Azure SQL数据库的BACPAC备份。
将其下载到我的机器后,我对如何将其恢复到本地SQL Server实例有点困惑。 我遇到了DacImportExportCli工具,但找不到本地恢复的示例。
此外,如果有人编写了一个脚本来执行此操作(因此可以安排),这将是非常棒的。
-
这可能是SQL Server 2012的事情,但是在SQL Server Management Studio中,如果我右键单击本地服务器的数据库文件夹并选择"导入数据层应用程序",该应用程序将启动向导,该向导读入BACPAC文件以生成Azure数据库的副本。 如果您不想先在本地复制它,向导还可以直接连接到blob-store以获取BACPAC文件。
-
你有没有想到这个?
-
@dumbledad我相信它是导入数据层应用程序的SQL 2012 SSMS,2008R2似乎只能导出DACPAC,无法看到导入选项。
这可以通过SQL Server Management Studio 2012完成
右键单击Connection> Databases节点,然后选择"Import Data-tier application ..."
在介绍步骤中选择"下一步"。
浏览或连接到保留备份的存储帐户。
-
太棒了。 RedGate工具可以很好用。我很高兴看到MS支持选项。
-
它适用于sql express 2012吗?因为我有以下错误消息:计数不从包加载架构模型。 (Microsoft.SqlServer.Dac)------------------------------附加信息:内部错误。内部目标平台类型SqlAzureDatabaseSchemaProvider不支持模式文件版本"2.5"。 (文件:C: Users xxxxx Downloads dbname-2013-10-10-20-2.bacpac)(Microsoft.Data.Tools.Schema.Sql)
-
@ElTone我刚刚使用Management Studio将bacpac直接从Azure存储恢复到我的本地SQL Server Express 2012数据库。没有看到任何错误,数据似乎在那里。有人提到安装较新版本的SQL Server数据工具帮助了他们(但他们并不是指管理工作室)social.msdn.microsoft.com/Forums/windowsazure/en-US/…
-
@Juha Palomä ki正确:安装最新版本的SSDT解决了这个问题。一切都好了。
-
您可以使用Management Studio导入大量bacpac文件似乎存在一些限制。如果你点击OutOfMemory异常,请查看Flea的答案,了解如何使用命令行工具SqlPackage.exe
-
"导入数据层应用程序",我之前怎么没想到它! (超级直观!)
-
如果您注意到已经占用了大量RAM,请在导入后重新启动SQL Server服务!
-
注意:如果您已将SQL Azure升级到V12,那么您需要SQL 2014的最新SQL Server包/ CU才能在本地导入它
我需要导出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的链接上看到所有这些参数说明。
-
这该死的井工作
-
如果安装了SSMS 2012,则可以更轻松地完成此操作。您可以使用上面@Josiah所描述的向导,即使使用2008 R2服务器也是如此。
-
我花了很多时间寻找这个解决方案,我设法下载整个管理工作室2014年。
-
在"更新数据库"步骤中,SqlPackage暂停了,直到我完全删除了目标数据库
您可以使用客户端工具还原BACPAC。视频在这里:
Import/Export Services
这些工具可在此处获得:
http://sqldacexamples.codeplex.com/documentation
-
该工具应支持将bacpac导入本地数据库。例如,使用Windows Auth将bacpac导入数据库将如下所示:"DacCli -S myserver -E -D nw_restored -F northwind.bacpac -I"。但是,所需程序集的codeplex列表已过期 - 所有链接都不起作用,因此该工具将无法运行(它在某些SQL 2012 CTP组件上具有先决条件)。
-
我已经在我的机器上安装了所有组件,因此我尝试使用DacCli导入bacpac - 它有效(请参阅我之前评论中的命令行)。 100MB的bacpac花了大约20分钟。
似乎我的祈祷得到了回应。 Redgate今天免费推出了他们的SQL Azure备份工具 - http://www.red-gate.com/products/dba/sql-azure-backup/download
-
几个问题:1。SQL Azure备份的主动开发暂时停止(当您运行最新版本的工具时会显示此注释)2。直接从Azure备份到本地SQL时,它似乎没有通过bacpac,但实现某种本土的架构/数据副本。根据我的经验,它一直很慢。 3.基于前一点,机制是错误的 - 我有多个表无法传输,因为该工具无法检测到唯一键
-
这个答案应该更新,或者不再是接受的答案。此后,链接工具已成为"云"解决方案,不支持本地备份。
-
备份工具仍可从red-gate.com/products/dba/sql-azure-backup/Discontinued获取
如果您正在使用SSMS 2012,则只需右键单击对象资源管理器中服务器下的Databases文件夹并选择"Import Data-tier Application ..."即可。
路上还有一个需要注意的事项:截至2013年3月26日(当我需要自己查找如何执行此操作时),当您从Azure导出.bacpac时,它将作为.zip文件下载,不是.bacpac文件,导入向导中的"浏览"按钮打开的文件对话框只显示* .bacpac或。在文件过滤器中,暗示不支持.zip。但是,如果将过滤器更改为。,请选择下载的.zip,然后单击"下一步",向导将正常进行。
-
这是正确的答案。您现在可以安装SSMS 2016的免费独立版本,它提供了所有这些功能
这是一个立即恢复一堆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] } |