【问题标题】:Migrating SQL Server database from AWS to Azure将 SQL Server 数据库从 AWS 迁移到 Azure
【发布时间】:2013-05-11 15:39:55
【问题描述】:

我在 Windows Server 2008 R2 上运行 SQL Server 2008 的 AWS 实例中有一个大型数据库。

数据库不断变化和写入信息,其大小约为~100GB

我希望从我们的 Amazon 服务迁移到 Microsoft Azure。

但我无法承受超过 20-30 分钟的任何信息丢失

我不介意使用 Azure SQL 或在 Azure Cloud 中的 VM 下运行 SQL Server,但我必须保持数据库实时更新,很少有主表会不断向其中添加信息

最好的方法是什么?

【问题讨论】:

    标签: sql sql-server-2008 azure amazon-web-services azure-sql-database


    【解决方案1】:

    如果您使用的是 AWS 实例而不是 RDS,并且您将使用 Azure 实例而不是“Azure SQL 数据库”,您可以使用日志传送或类似的方法将停机时间缩短到几秒钟:http://msdn.microsoft.com/en-us/library/ms187103.aspx

    您需要采取的步骤:

    1. 在 AWS 上进行完整备份
    2. 在 Azure 上恢复完整备份而不恢复
    3. 在 AWS 上进行日志备份
    4. 在 Azure 上恢复日志备份而不恢复
    5. 重复 3 和 4 直到所需的时间足够短(您可能需要编写脚本)
    6. 使应用离线
    7. 在 AWS 上进行另一个日志备份
    8. 在 Azure 上通过恢复恢复该日志备份
    9. 将应用重新指向 Azure
    10. 让应用重新上线。

    3、4 和 5 是日志传送将自动执行的操作,但您也可以编写一个 powershell 脚本。

    【讨论】:

    • 嗯,这正是我遇到的情况(不使用 RDS 或 azure SQL)但是你能解释一下我究竟应该如何以最好的方式这样做吗?
    • 我们的想法是进行完整备份并将其还原到新服务器上。然后进行日志备份并恢复它。然后是下一个,以此类推。准备好切换后,进行最后一次备份,在新实例上恢复它,使数据库联机并重新指向应用程序。 Log-Shipping 是一个内置解决方案,可以自动执行此过程,但您也可以手动完成。
    • 如果我按此顺序执行 -> 备份数据库 -> 将其加载到新服务器中 -> 加载日志传送脚本 -> 将应用程序重新指向新服务器。我应该从哪里开始日志运输?如果我在将数据库部署到新服务器之前启动它,它以后会知道它需要执行什么,不知道什么?
    • @SebastianMeine 我们也有类似的问题,但是我们如何去“Azure SQL 数据库”呢?
    • @ChrisKooken 没有简单的方法可以做到这一点,因为 Azure SQL 数据库不允许日志传送。另一种选择是复制,但这也是不可能的。您可以编写自己的复制引擎,依靠更改数据捕获(或触发器)并使用外部应用程序将数据更改传输到 azure。
    猜你喜欢
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多