将 SQLServer 备份还原到 Azure SQL 数据库

有没有一种简单的方法来进行 SQL 备份。Bak 文件,并使用该文件作为恢复点在 Azure SQL 数据库上生成一个新的数据库?

在这种情况下,通常建议使用的向导希望创建一个可以使用的自定义文件,但是它对加密的对象(函数和视图)感到恶心,我看不出有其他方法可以实现它。

88465 次浏览

Azure SQL 数据库目前不支持该功能。还原 Azure SQL 数据库的唯一方法是从 BACPAC 文件导入——你可以通过以下指南使用 BACPAC 文件迁移到 Azure SQL DB: https://azure.microsoft.com/en-us/documentation/articles/sql-database-cloud-migrate/

另一种选择是使用 VM 中的 SQLServer,它将启用. bak 文件的还原

如果您已经在本地机器上有一个数据库,那么您可以使用 SQLManagementStudio 直接在 Azure 上迁移它。遵循以下步骤:

在 SSMS 中右键单击数据库名称: mssms

跟随随后出现的向导。

如果您正在运行 SSMS v17,您可以配置 Azure SQL 数据库版本、大小和服务目标。

目前,Azure 不支持使用备份(。Bak)档案。但是,还有许多其他方法可以将 SQL 数据库迁移到 Azure SQL。例如,使用 SQLServerManagementStudio 部署提及或在。然后使用 SSMS Export/Import 或使用 Microsoft 数据库迁移辅助工具导入 bacpac 文件。下面的链接将对你有用,因为他们解释这些方法作为一步一步的过程。

为了在 Azure SQL Server 上获得我的.BAK 文件,我遵循了这个线程中两个答案的建议。

在完成以下步骤之前,BAK 文件还原在笔记本 SQL 实例上失败(备份来自 SQL2016,与 SQL2014不兼容)。我从 EDX.org: “ DAT216x 交付关系数据仓库”开始训练,我从训练中下载了这两个文件: AdventureWorks2016CTP3.bakAdventureWorksDW2016CTP3.bak

BAK 呼叫 AzureDB

  1. USER : Joseph Idziorek | 回答: 在 VM 中使用 SQL Server,这将启用。备份文件

我跟随这2个视频(在 YouTube 上托管)来创建 Azure VMSQL Instance用于 MCA 训练... 演示: 提供微软 Azure 服务(VM,SQL)。这个9:00分钟的视频向您展示了如何提供相关的 Azure 资源。视频还演示了如何获取 Azure SQL 数据库的连接字符串,这将在下一步中使用。

从 Azure VM 远程会话连接到 SSMS,我从 BAK 恢复数据库。

  1. USER : razon | 回答: 右击(数据库名称) > 任务 > 将数据库部署到 SQL Azure..。

从 Azure VM 远程会话连接到 SSMS SQL 实例,我运行了向导 “将数据库部署到 SQL Azure”。连接成功后,部署花了几分钟才完成。注意: 必须使用“ SQLServer 身份验证”,因为 Azure 数据库不支持“ Windows”。在本答案前面提供的视频链接中演示了 Azure SQL Server 身份验证.

部署环境

@@servername@@ version

+------------------------------------------------------------------------------------------------------+
| Source                                                                                               |
+------------------------------------------------------------------------------------------------------+
| data216x                                                                                             |
|                                                                                                      |
| Microsoft SQL Server 2016 (SP1-CU13) (KB4475775) - 13.0.4550.1 (X64)                                 |
| Jan 10 2019 19:31:11                                                                                 |
| Copyright (c) Microsoft Corporation                                                                  |
| Developer Edition (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor) |
+------------------------------------------------------------------------------------------------------+
| Target                                                                                               |
+------------------------------------------------------------------------------------------------------+
| sqlserver-dat216x                                                                                    |
|                                                                                                      |
|                                                                                                      |
| Microsoft SQL Azure (RTM) - 12.0.2000.8                                                              |
| Dec 19 2018 08:43:17                                                                                 |
| Copyright (C) 2018 Microsoft Corporation                                                             |
+------------------------------------------------------------------------------------------------------+

结果

在我的场景中,Importing database步骤中的 将数据库部署到 Azure失败了。在我删除了不兼容的对象之后,Azure DB 部署成功了。

导入数据库。

标题: Microsoft SQL Server 管理工作室

无法进口包装。

警告 SQL0: 指定 SQLServer2016为目标的项目 平台可能会遇到与微软 Azure SQL 的兼容性问题 数据库版本12。

错误 SQL72014: . Net SqlClient 数据提供程序: Msg 40536,级别16, 2号州际公路1号线

属性的此服务层中不支持“ MEMORY _ OPTIMIZED 表” 有关特性支持的详细信息,请参阅联机丛书 WindowsAzure SQL 数据库的不同服务层。

错误 SQL72045: 脚本执行错误。执行的脚本:

CREATE TYPE [Sales].[SalesOrderDetailType_inmem] AS TABLE (
[OrderQty]       SMALLINT NOT NULL,
[ProductID]      INT      NOT NULL,
[SpecialOfferID] INT      NOT NULL,
INDEX [IX_SpecialOfferID] NONCLUSTERED HASH ([SpecialOfferID]) WITH (BUCKET_COUNT = 8),
INDEX [IX_ProductID] NONCLUSTERED HASH ([ProductID]) WITH (BUCKET_COUNT = 8))
WITH (MEMORY_OPTIMIZED = ON);

(Microsoft. SqlServer. Dac)

按钮:

好的

截图:

在我删除了不兼容的对象之后,Azure DB 部署成功了

enter image description here