Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将SQL Server备份还原到Azure SQL数据库_Sql Server_Azure_Azure Sql Database_Database Backups - Fatal编程技术网

Sql server 将SQL Server备份还原到Azure SQL数据库

Sql server 将SQL Server备份还原到Azure SQL数据库,sql-server,azure,azure-sql-database,database-backups,Sql Server,Azure,Azure Sql Database,Database Backups,有没有一种方法可以简单地获取一个SQL backup.bak文件,并将其用作在Azure SQL数据库上生成新数据库的还原点 在这种情况下,我看到的通常建议使用的向导希望创建一个自定义文件以供使用,但它会吐在加密对象(函数和视图)上,我看不到其他方法来运行它。Azure SQL数据库当前不支持该功能。在Azure SQL数据库中还原的唯一方法是从BACPAC文件导入-您可以按照以下指南使用BACPAC文件迁移到Azure SQL DB: 其他选项是使用,这将启用.bak文件的还原如果您在本地计算

有没有一种方法可以简单地获取一个SQL backup.bak文件,并将其用作在Azure SQL数据库上生成新数据库的还原点


在这种情况下,我看到的通常建议使用的向导希望创建一个自定义文件以供使用,但它会吐在加密对象(函数和视图)上,我看不到其他方法来运行它。

Azure SQL数据库当前不支持该功能。在Azure SQL数据库中还原的唯一方法是从BACPAC文件导入-您可以按照以下指南使用BACPAC文件迁移到Azure SQL DB:


其他选项是使用,这将启用.bak文件的还原

如果您在本地计算机上已经有数据库,那么您可以使用SQL Management Studio直接在Azure上迁移它。遵循以下步骤:

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

按照随后出现的向导进行操作


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

当前Azure不支持使用备份(.bak)文件还原Azure SQL实例上的数据库。但是,还有许多其他方法可以将SQL数据库迁移到Azure SQL。例如,使用SQL Server Management Studio deploy或在.bacpac文件中获取备份,然后使用SSMS导出/导入或使用Microsoft数据库迁移帮助工具导入备份。下面的链接将对你们有用,因为他们将这些方法解释为一步一步的过程


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

在完成以下步骤之前,BAK文件还原在我的笔记本SQL实例上失败(备份来自SQL2016,与我的SQL2014不兼容)。我当时正在进行培训,并从培训中下载了这两个文件:
AdventureWorks2016CTP3.bak
AdventureWorksDW2016CTP3.bak

BAK to AzureDB
  • 用户:Joseph Idziorek |回答:在虚拟机中使用SQL Server,这将启用.bak文件的还原
  • 我根据这两个视频(托管在YouTube上)创建了
    Azure虚拟机
    SQL实例
    ,用于MCA培训。9:00分钟的视频向您展示了如何配置相关的Azure资源。该视频还演示了如何获取Azure SQL数据库的连接字符串,该字符串将在下一步中使用

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

  • 用户:razon |回答:右键单击(数据库名称)>任务>将数据库部署到SQL Azure
  • 从Azure VM远程会话连接到SSMS SQL实例,我运行了向导“将数据库部署到SQL Azure”。连接成功后,部署需要几分钟才能完成。注意:您必须使用“SQL Server身份验证”,因为Azure数据库不支持“Windows”。Azure SQL Server身份验证已在本答案前面提供的视频链接中演示

    部署环境

    @@服务器名@@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                                                             |
    +------------------------------------------------------------------------------------------------------+
    
    (Microsoft.SqlServer.Dac)

    按钮:

    截图:

    删除不兼容对象后,Azure DB部署成功。(注意:我不得不这样做了几次。我尝试了Redgate SQLSearch for
    MEMORY\u OPTIMIZED
    ,但它一直说“没有搜索结果”,即使表定义中包含了关键字。)

    试试“数据迁移助手”;

    DMA下载:

    请从这里获得帮助。这可能会对您有所帮助。谢谢,它工作正常。我只需要在数据库服务器的防火墙上添加我的IP设置。如果为了将数据库及其数据导入azure而尝试还原.bak,使用此方法部署肯定要容易得多注意,如果使用
    activedirectory-Universal with MFA-support
    身份验证连接到Azure SQL数据库,则导出将失败,并显示非常模糊的错误消息。使用
    SQL Server身份验证
    而不是为将来的读者准备:我坚信,将备份还原到本地数据库并执行此操作比手动使用BACPAC文件迁移(这将创建BACPAC文件)更容易。数据库是否需要存在?还是它自己创造的?现在也是这样吗???我必须使用Powershell将.bak文件恢复到Azure SQL。。这是可以做到的还是死路一条?@fjch1997 zainzul并没有说他已经实现了从.bak文件恢复,而是说他必须实现这一点。他在问是否可能。最好使用DMA,它会在DB中产生可能的变化。它还将生成用于迁移信息的查询。不需要上传bak文件。也许,这是可能的。但是,我建议您使用DMA程序。它更干净,会显示本地Sql实例和云上版本之间的错误。链接都断开了。
    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);