如何将我的本地数据库还原到 Windows Azure 数据库?
Posted
技术标签:
【中文标题】如何将我的本地数据库还原到 Windows Azure 数据库?【英文标题】:How to restore my Local database to Windows Azure Database? 【发布时间】:2012-01-23 08:31:40 【问题描述】:我已将我的应用程序上传到 Windows Azure 现在我想将我的本地数据库存储到 Windows Azure 数据库。
请建议我如何创建表并在那里备份表?
【问题讨论】:
【参考方案1】:有几种方法可以做到这一点:
-
最可靠的(我通常使用的)是使用SQL Azure Migration Wizard
然后,您的 SSMS(SQL Server Management Studio 2008 R2 或更高版本)中有“生成脚本”选项。生成脚本选项确实具有制作符合 SQL Azure 的脚本的功能。它还可以编写数据脚本。但是如果您也想迁移数据,我建议使用方法一。 SQL Azure 迁移向导使用 BCP 工具,将数据转储到二进制文件中,而 SSMS 只生成内联 INSERT 语句
SSIS(SQL Server 集成服务) - 您可以创建数据传输任务,但我很少将它用于小型数据库。
导出/导入数据层应用程序(使用 DACPAC 包) - 这将迁移您的架构,也可以迁移您的数据。
更新 2017-10-24
Azure SQL 数据库现在支持从本地 SQL Server 进行事务复制。您可以将 Azure SQL 数据库配置为订阅者,将本地 SQL Server 配置为发布者。您可以在此处阅读有关数据库迁移选项和策略的更多信息:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate
2017 年 12 月 23 日更新
SQL Azure 迁移向导已被数据迁移助手取代:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate
【讨论】:
我尝试使用 SQL Server 2014 工具完成这项工作,但没有成功。 SQL Azure 迁移向导是正确完成这项工作的向导。 在几天后的第二次迁移中,SQL Azure Migration Wizard
没有帮助。最终解决方案是:从 Local SQL Server 中提取数据层(使用 Visual Studio SQL Server Object Explorer
),然后在 Azure SQL 数据库 中发布相同的文件(也使用 @ 987654327@) 并选中复选框注册为数据层应用程序并选中高级选项中的允许不兼容的平台。工作得很好!
我很惊讶人们如何在 2017 年加入并否决 2011 年给出的答案。但在这种特殊情况下,我仍然会回答说,将 SQL 数据库迁移到 Azure SQL DB 的最可靠方法是使用 SQL Azure迁移向导。除非您寻找非停机迁移。
SQL Azure 迁移向导已被数据迁移助手取代:docs.microsoft.com/en-us/azure/sql-database/…【参考方案2】:
如果本地计算机上已有数据库,则可以使用 SQL Management Studio 直接在 Azure 上迁移它。请按以下步骤操作:
-
在 SSMS 中右键单击数据库名称
-
按照随后出现的向导进行操作
【讨论】:
连接azure时除了IP还需要什么吗?你需要一个端口吗? 不,您只需要 SQL Azure 帐户的凭据即可在 SSMS 中连接到 Azure。在 Azure 门户中,您应该使用 SQL Azure 中的防火墙设置添加您的 IP 以访问数据库。 这对我来说效果很好,但是您必须小心哪些用户与数据库相关联。任何基于 Windows 的用户或服务都会导致进程出错。删除它们后,一切都很好。【参考方案3】:有几种方法可以实现此功能。
-
SQL Azure Import/Export. "DACPAC" & "BACPAC"
Microsoft Codename "Data Transfer"
【讨论】:
很抱歉,如果这是复活一个旧主题,但其中一些链接现在已经过时并且不再可用。 只有一个链接不可用,现已更新。 谢谢。此外,Microsoft 代号“数据传输”实验室阶段已经完成,我在该页面上看不到任何与它相关的内容,只是假设它现在已经过时了。【参考方案4】:我假设您指的是 SQL Azure?如果是这样,您可能需要使用 SQL Azure 迁移向导 @http://sqlazuremw.codeplex.com/
【讨论】:
【参考方案5】:我相信 SQL Server 2012 Management Studio 和 SQL Azure 工具现在也有这个选项。
在 SSMS 中,如果您右键单击数据库根目录,则有一个选项“导入数据层应用程序...”,它允许您恢复 BACPAC(您也可以右键单击数据库,然后选择“导出数据层应用程序...”将现有数据库导出到 BACPAC)。
SQL Server Data Tools 为 Visual Studio 2010 提供了数据比较选项,该选项还可用于在两个数据库实例之间移动数据(适用于较小的数据补丁)。
【讨论】:
以上是关于如何将我的本地数据库还原到 Windows Azure 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何正确使用 pg_dump 将我的本地数据库复制到远程服务器
markdown 将我的项目的早期版本还原到一个闪亮的新Git分支