如何将数据从SQL Server迁移到PostgreSQL?

如何将数据从SQL Server迁移到PostgreSQL?

在不同类型的数据库之间迁移数据不是一项简单的事。在本文中,下面主要介绍几种从SQL Server转换到PostgreSQL的方法。

Microsoft SQL Server虽然在某些特定的情况下也存在一些缺陷,但是整体来说它还是一个很不错的数据库引擎。一般免费的Microsoft SQL Server Express多用于小型数据库

首先我们先来了解一下SQL Server Express的局限性:

  • 数据库引擎使用的最大内存为1GB。
  • 最大数据库大小为10GB。
  • 1MB最大缓冲区高速缓存。
  • CPU 1(1)个socket或4(4)个core (SQL用户连接数不限)较小。

对于大型数据库,从标准版许可证开始,您可能需要获取MSSQL Server的付费版本。SQL Server的成本取决于用户数量和数据库的大小。

如果负担不起标准的SQL Server许可证,就可以使PostgreSQL。

PostgreSQL是完全免费的,与Microsoft SQL Server相比,许可证成本是PostgreSQL的主要优势。

SQL Server和PostgreSQL之间进行数据库迁移的开源工具

手动数据迁移很麻烦。数据库迁移需要用户选择要迁移的对象,例如表,索引,主键和外键约束。当然一些不错的迁移工具可以自动化执行,减少手动。

1. pgloader

著名的开源工具,它使用COPY命令将数据从SQL Server导入PostgreSQL,加载数据,索引和外键,然后按预期将数据转换为PostgreSQL。

  1. pgloader将来自MS SQL,SQLite,MySQL,CSV等各种来源的数据加载到PostgreSQL中。
  2. 已获得PostgreSQL许可证的许可,可以免费使用。
  3. pgloader是一个跨平台软件。
  4. Docker映像可用。

2. Sqlserver2pgsql

可以自动将Microsoft SQL Server数据库转换为PostgreSQL数据库,用Perl编写。

  1. 将SQL Server架构转换为PostgreSQL架构
  2. 可以创建Pentaho数据集成器(Kettle)控制台,将所有数据从SQL Server迁移到PostgreSQL。

开源工具的缺点:

  • 上面提到的工具是命令行程序,所以它们没有图形界面。对于这方面基础较弱的人来说,使用起来相对比较困难。
  • 这些工具仅限于可以将PostgreSQL配置为目标的单向迁移。

数据库迁移软件

用于SQL Server和PostgreSQL的DBConvert&DBSync是应用较多的迁移软件,可最大程度地减少数据库转换以及SQL Server和PostgreSQL数据库之间同步的问题。

  1. DBConvert工具具有高度可定制性,可使用全面的图形界面将Microsoft SQL Server中的数据快速轻松地导出到Postgres。按指导完成DBConvert应用程序的几个步骤,从连接到源数据库和目标数据库,配置迁移参数以及安排后续运行。
  2. DBConvert软件的公认优势是非专业用户可以有效地使用它。在DBConvert产品中,目标数据库以树形显示,大大简化了设置的配置。
  3. 自动化验证系统会在迁移之前仔细检查源数据库的结构和关系,以确保没有任何数据丢失或损坏,并确保无风险和无错误的数据传输。
  4. 将源数据库复制到目标数据库后,使数据库与更新,插入和删除同步功能保持同步。
  5. DBSync应用程序在SQL Server和PostgreSQL之间执行双向复制(其中两个不同的数据库同时复制彼此的更改)。
  6. 通过任何组合,使用SQL Server到PostgreSQL的转换器/同步工具,可以在以下数据库之间进行数据迁移:
    1. Microsoft SQL Server,
    2. Windows Azure SQL数据库/ Azure SQL数据仓库,
    3. 适用于SQL Server的Google Cloud SQL,
    4. 适用于PostgreSQL的Google Cloud SQL,
    5. AWS RDS / Aurora,
    6. Heroku Postgres。

发表评论

您的电子邮箱地址不会被公开。