有没有办法简单地获取SQL备份.bak文件,并将其用作还原点以在Azure SQL数据库上生成新数据库?
我认为在这种情况下通常建议使用的向导想要创建一个自定义文件来使用,但它会对加密对象(函数和视图)产生影响,而我看不到另一种方法来实现它。
答案 0 :(得分:57)
如果您已在本地计算机上安装了数据库,则可以使用SQL Management Studio直接在Azure上迁移它。请按照以下步骤操作:
按照当时出现的向导进行操作。
如果您正在运行SSMS v17,则可以配置Azure SQL数据库版本,大小和服务目标。
答案 1 :(得分:24)
Azure SQL数据库目前不支持该功能。在Azure SQL数据库中还原的唯一方法是从BACPAC文件导入 - 您可以按照本指南使用BACPAC文件迁移到Azure SQL DB:https://azure.microsoft.com/en-us/documentation/articles/sql-database-cloud-migrate/
其他选项是使用SQL Server in a VM,这将启用.bak文件的恢复
答案 2 :(得分:0)
当前,Azure不支持使用备份(.bak)文件在Azure SQL实例上还原数据库。但是,还有许多其他方法可以将SQL数据库迁移到Azure SQL。例如,使用SQL Server Management Studio部署提及或通过将备份放在.bacpac文件中,然后使用SSMS导出/导入或使用Microsoft数据库迁移辅助工具将其导入来。下面的链接将对您逐步进行解释,因此对您很有用。
How to migrate SQL Database to Azure SQL Database using SSMS Export/Import
How to migrate SQL Database to Azure SQL Database using SSMS deploy
Migrating SQL Database To Azure SQL Instance using Microsoft Database Migration Assistant (DMA) Tool
答案 3 :(得分:0)
要在Azure SQL Server上获取我的.BAK文件,我在此线程中遵循了两个答案的建议。
在完成以下步骤之前,BAK文件还原在我的笔记本电脑SQL实例上失败(备份来自SQL2016,与我的SQL2014不兼容)。我正在从 EDX.org: “DAT216x Delivering a Relational Data Warehouse” 进行培训,并且从培训中下载了以下两个文件:AdventureWorks2016CTP3.bak
和AdventureWorksDW2016CTP3.bak
。
- 用户:Joseph Idziorek | ANSWER :在VM中使用SQL Server,这将可以还原.bak文件
我跟随这两段视频(在YouTube上托管)创建了
Azure VM
和SQL Instance
用于MCA培训… Demo: Provisioning Microsoft Azure Services (VM, SQL) 。 9:00分钟的视频向您展示了如何配置相关的Azure资源。该视频还演示了如何获取Azure SQL数据库的连接字符串,该字符串将在下一步中使用。从Azure VM远程会话连接到SSMS,我从BAK还原数据库。
- USER :razon | ANSWER :右键单击(数据库名称)>任务>将数据库部署到SQL Azure…
从Azure VM远程会话连接到SSMS SQL实例,我运行了向导“将数据库部署到SQL Azure” 。连接成功后,部署需要几分钟才能完成。 注意:您必须使用“ SQL Server身份验证”,因为Azure数据库不支持“ Windows”。此答案前面提供的视频链接中演示了Azure SQL Server身份验证。
部署环境
@@服务器名@@版本
+------------------------------------------------------------------------------------------------------+
| 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 |
+------------------------------------------------------------------------------------------------------+
在我的方案中, 将数据库部署到Azure 失败,并显示此消息。删除不兼容的对象后,Azure DB部署成功。
正在导入数据库...
标题:Microsoft SQL Server Management Studio
无法导入包。
警告SQL0:一个将SQL Server 2016指定为目标的项目 平台可能会遇到与Microsoft Azure SQL的兼容性问题 数据库v12。
错误SQL72014:.Net SqlClient数据提供程序:消息40536,级别16, 状态2,第1行
“ MEMORY_OPTIMIZED表”在此服务层的此服务层中不受支持 数据库。有关功能支持的更多信息,请参见联机丛书。 Windows Azure SQL数据库的不同服务层。
错误SQL72045:脚本执行错误。执行的脚本:
Importing database
(Microsoft.SqlServer.Dac)
按钮:
好
屏幕截图:
删除不兼容的对象后,Azure DB部署成功。 (注意:我必须做几次。我尝试对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);
使用Redgate SQLSearch,但是即使表定义中确实包含关键字,它也一直说“没有搜索结果”。) / p>
答案 4 :(得分:0)