将本地SQL Server数据库迁移到Azure SQL数据库

时间:2018-09-30 15:54:11

标签: sql sql-server azure azure-sql-database database-migration

我们正在将服务器从本地服务器(Win2008R2)迁移到Azure PaaS。

要移动数据库,我们使用了Microsoft Data Migration Assistant (DMA)工具,该工具效果很好,并且可以通过SQL Server Management Studio连接到已迁移的Azure DB。

考虑:

  • 对迁移的Azure数据库(表,存储过程,索引)进行了许多更改,以与Azure中的应用程序一起使用
  • 通过DMA将本地服务器中的多个数据库组合到Azure中的一个数据库中,以节省成本
  • 在迁移过程中,通过插入和更新操作(多个表)不断修改本地数据库
  • 在Azure中完全切换托管时,我们需要确保所有数据都是最新的。此操作将在AM的早期完成,在此期间将停止内部IIS网站,以确保不进行任何数据库操作,这为我们提供了一个短窗口来迁移丢失的数据

问题:考虑到上述情况,迁移数据(所有数据还是丢失/更新数据)的最佳和最快方法是什么?

2 个答案:

答案 0 :(得分:1)

我建议您首先仅将本地数据库的架构迁移到Azure SQL数据库,然后让Azure SQL Data Sync将数据迁移到Azure并在Azure SQL数据库上保持更新。

我建议从Azure SQL数据库端的空模式开始,是因为当SQL数据同步在本地和Azure上找到数据时,它开始比较两个数据库,这会消耗大量资源。

在初始同步上,即使在Azure端具有空架构,SQL Data Sync可能会消耗本地数据库服务器上的大量资源,因为您可以使用SQL Server Resource Governor来限制由本地SQL Server中的数据同步会话,这样可以避免对性能产生重大影响,而这可能会影响数据库用户。

准备就绪后,可以将用户(如果SQL Data Sync处于双向模式,则逐渐或不逐渐)切换到Azure。迁移用户后,可以从SQL Data Sync配置中删除成员数据库(本地数据库)并停止SQL Data Sync操作。

答案 1 :(得分:0)

Visual Studio还有一个很棒的工具,可以比较不同服务器上两个数据库之间的架构和数据。
然后,它可以进行任何更改来更新目标数据库,之后您可以切换到使用Azure DB。

此方法将需要大约5-30分钟的停机时间,具体取决于数据量,但根据您的要求这可能是可以接受的。