在不同类型的数据库之间迁移数据并非易事。在本文中,我们将比较几种从 SQL Server 转换到 PostgreSQL 的方法。Microsoft SQL Server 是一个很棒的数据库引擎,但在某些情况下它有缺点。免费的 Microsoft SQL Server Express 可以成功用于小型数据库。
SQL Server Express 的限制:
- 数据库引擎使用的最大内存为 1GB。
- 10GB 最大数据库大小。
- 1MB 最大缓冲区缓存。
- CPU 使用一 (1) 个插槽或四 (4) 个内核中的较小者(SQL 用户连接数不受限制)。
对于大型数据库,您可能需要从标准版许可证开始获取 MSSQL Server 的付费版本。SQL Server 的成本取决于用户数量和数据库的大小。
如果您甚至买不起标准的 SQL Server 许可证,PostgreSQL 是一个替代方案。
PostgreSQL 是完全免费的,因此许可证成本是 PostgreSQL 相对于 Microsoft SQL Server 的主要优势。
SQL Server 和 PostgreSQL 之间数据库迁移的开源工具
手动数据迁移很麻烦。一个好的数据库迁移工具应该提示用户选择要迁移的对象,例如表、索引、主键和外键约束。
幸运的是,有一些工具可以自动化枯燥的手工工作。
1、pgloader 是 一个著名的开源工具,它使用COPY命令将SQL Server中的数据导入PostgreSQL,加载数据、索引和外键,并按预期将数据转换为PostgreSQL。
- pgloader 将来自 MS SQL、SQLite、MySQL、CSV 等各种来源的数据加载到 PostgreSQL 中。
- 它在 PostgreSQL 许可下获得许可,可以免费使用。
- pgloader 是一个跨平台的软件。
- Docker 镜像可用。
2. Sqlserver2pgsql是用Perl 编写的。这是另一个开源迁移工具,用于自动将 Microsoft SQL Server 数据库转换为 PostgreSQL 数据库。
- 它将 SQL Server 模式转换为 PostgreSQL 模式
- 如果需要,它可以创建一个 Pentaho Data Integrator (Kettle) 控制台来将所有数据从 SQL Server 迁移到 PostgreSQL。
部分开源工具的缺点
- 上面提到的工具是命令行实用程序,因此它们没有图形界面。对于那些被终端吓倒的人来说,它们并不好用。
- 这些工具仅限于可以将 PostgreSQL 配置为目的地的单向迁移
DBConvert 数据库迁移软件
适用于 SQL Server 和 PostgreSQL 的 DBConvert 和 DBSync 是流行的软件工具,可最大限度地减少 SQL Server 和 PostgreSQL 数据库之间的数据库转换和同步挑战。
用于 SQL Server 和 PostgreSQL 的 DBConvert/DBSync 优点:
- DBConvert 工具是高度可定制的,允许您使用全面的图形界面快速轻松地将数据从 Microsoft SQL Server 导出到 Postgres。DBConvert Applications 指导您完成几个步骤,从连接到源和目标数据库、配置迁移参数以及安排后续运行。
- 在 DBConvert 产品中,目标数据库以树的形式呈现,这大大简化了设置的配置。DBConvert 软件经过验证的优势在于,非专业用户也可以有效地使用它。
- 自动验证系统会在迁移前仔细检查源数据库的结构和关系,确保不会丢失或损坏您的任何数据,并保证无风险和无错误的数据传输。
- 将源数据库复制到目标数据库后,使数据库与更新、插入和删除同步功能保持同步。
- DBSync 应用程序在 SQL Server 和 PostgreSQL 之间执行双向复制(其中两个不同的数据库同时相互复制更改)。
- 在任何组合中, 使用 SQL Server 到 PostgreSQL 转换器/同步工具,以下数据库之间的数据迁移是可能的:
- 微软 SQL 服务器,
- Windows Azure SQL 数据库/ Azure SQL 数据仓库,
- 适用于 SQL Server 的 Google Cloud SQL,
- 用于 PostgreSQL 的 Google Cloud SQL,
- AWS RDS/极光,
- Heroku Postgres。
结论:
在本文中,我们介绍了将数据从 SQL Server 迁移到 PostgreSQL 的几种方法。
Pgloader和Sqlserver2pgsql是 Linux 用户和那些在终端中感觉舒适的优秀解决方案。它在从许多数据库迁移到 PostgreSQL 时发挥作用。但只能在一个方向上进行转换。
DBConvert 工具支持 SQL Server 和PostgreSQL 数据库类型之间的双向迁移和同步。支持更多本地和云数据库转换。DBSync 是在初始迁移后持续保持数据库同步的完美解决方案。