EMP*_*EMP 8 postgresql migration sql-server
我在 PostgreSQL 8.3.1 中有一个数据库,我想将其迁移到 MS SQL Server 2005(或 2008),包括表架构和数据。数据库大小约为 50GB,大约有 400,000,000 行,所以我认为简单的 INSERT 语句是不可能的。有人可以推荐执行此迁移的最佳工具吗?显然它需要可靠,因此目标数据库中的数据与源数据库中的数据完全相同,并且需要能够在合理的时间内复制这一数量的数据。
小智 6
如果您在 SQL 2005 机器上安装了适当的 Postgres 支持驱动程序(或希望通过 ODBC 使用 Postgres,或希望将 Postgres 中的数据转储到文件并从中导入),您可以在 SQL Server 中使用导入/导出向导为了复制数据。这将询问您各种问题,然后使用适当的批量插入操作将导入作为 SQL Server Integration Services (SSIS) 包作业执行。
但是,如果该向导不是一个选项,那么值得考虑的是,尽管您有大量行,但各行的平均大小小于 135 字节,并且提供了足够的事务日志空间以允许 50 GB 的事务发生 '简单的插入语句本身并不是不可能的。
我最终没有使用任何第三方工具来处理数据,因为我尝试过的工具都不适用于大表。甚至 SSIS 也失败了。不过,我确实为模式使用了商业工具。所以我的转换过程如下:
转换步骤处理了 pg_dump 和 bcp 使用的格式的一些差异,例如:
我还发现一些在 Postgres 中很好的独特约束在 MSSQL 中被违反了,所以我不得不放弃它们。这是因为 NULL=NULL 在 MSSQL 中(即 NULL 被视为唯一值),而不是在 Postgres 中。
归档时间: |
|
查看次数: |
34046 次 |
最近记录: |