将SQL Server迁移到Azure DB - 仅限数据

时间:2016-06-13 12:37:11

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

我有一个庞大的数据库,在SQL Server中有很多表。我正在将其迁移到Azure数据库。

互联网上建议的迁移方法既漂亮又可爱,但由于Azure Db不支持某些内容(xml OPEN,sp_addextendedproperty等),我不得不重写大部分存储过程,以及我的许多表定义和视图。因此,我选择单独迁移模式和数据。架构已经在Azure中。

我对分开移动数据有很多疑问:

1。仅用于将数据从SQL Server迁移到Azure Db,是否有比bcp更好/更简单的方法?使用bcp,我必须逐个表。我有40张桌子。必须有更好的方法......不?

2。我应该在服务器上运行BCP还是在本地计算机上运行?后者感觉更安全。 db经常被许多用户使用,我不想低估它的性能。

3。不会bcp搞乱我的归类或数据类型?

我会用这样的东西:

bcp Table1 out C:\DbExport\Table1.txt -c -U sa -S 1.2.3.4\MyDatabase -P password

2 个答案:

答案 0 :(得分:2)

是的,有一种将数据从一个SQL Server移动到Azure的替代方法。您可以使用SSDT(SQL Server数据工具)。该工具集包含比较两个表的模式和比较数据的功能,这是您想要做的。然后,SSDT将使您的Azure表与源SQL Server表同步。您可以一次执行多个表。我经常使用它将数据从一个SQL Server表移动到我的Azure数据库。

SSDT是免费的,并附带Visual Studio。但是,如果您目前没有Visual Studio,则不需要安装Visual Studio。您可以安装Visual Studio shell,它安装足够的Visual Studio以允许您运行SSDT。

当然,还有第三方商业工具(如Red Gate)也会这样做。

答案 1 :(得分:2)

您也可以使用xSQL Data Compare Tools。使用此软件,您可以使用相同的模式比较两个数据库之间的数据,然后生成同步脚本。 我个人认为它在解决数据同步问题时非常有用。