将 SQL 服务器迁移到 Azure 数据库 - 仅数据

Migrate SQL Server to Azure DB - data only

我有一个巨大的数据库,在 SQL 服务器中有许多 table。我正在将其迁移到 Azure 数据库。

网上推荐的迁移方法很好很可爱,但由于 Azure Db 不支持某些东西(xml OPEN、sp_addextendedproperty 等),我不得不重写我的大部分存储过程,以及我的许多 table 定义和视图。因此,我选择将架构和数据分开迁移。该架构已在 Azure 中。

我有很多关于单独移动数据的问题:

1. 仅将数据从 SQL 服务器迁移到 Azure Db,有没有比 bcp 更好/更简单的方法?使用 bcp,我必须 table-by-table。我有 40 tables。一定有更好的方法……不是吗?

2. 我应该 运行 BCP 在服务器上还是在我的本地机器上?后者感觉更安全。该数据库一直被许多用户使用,我不想降低它的性能。

3. 不会 bcp 弄乱我的排序规则或数据类型吗?

我会使用这样的东西:

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

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

SSDT 是免费的,并且随附 Visual Studio。但是,如果您当前没有 Visual Studio,则无需安装它。您可以安装 Visual Studio shell,它安装的 Visual Studio 足以让您 运行 SSDT。

当然,也有第三方商业工具(如Red Gate)也可以做到这一点。

您也可以使用xSQL Data Compare Tools。使用此软件,您可以比较具有相同架构的两个数据库之间的数据,然后生成同步脚本。 个人觉得对解决数据同步问题非常有用