在不同類型的數據庫之間遷移數據並非易事。在本文中,我們將比較幾種從 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 是在初始遷移后持續保持數據庫同步的完美解決方案。