在不同類型的數(shù)據(jù)庫之間遷移數(shù)據(jù)并非易事。在本文中,我們將比較幾種從 SQL Server 轉換到 PostgreSQL 的方法。Microsoft SQL Server 是一個很棒的數(shù)據(jù)庫引擎,但在某些情況下它有缺點。免費的 Microsoft SQL Server Express 可以成功用于小型數(shù)據(jù)庫。
SQL Server Express 的限制:
- 數(shù)據(jù)庫引擎使用的最大內存為 1GB。
- 10GB 最大數(shù)據(jù)庫大小。
- 1MB 最大緩沖區(qū)緩存。
- CPU 使用一 (1) 個插槽或四 (4) 個內核中的較小者(SQL 用戶連接數(shù)不受限制)。
對于大型數(shù)據(jù)庫,您可能需要從標準版許可證開始獲取 MSSQL Server 的付費版本。SQL Server 的成本取決于用戶數(shù)量和數(shù)據(jù)庫的大小。
如果您甚至買不起標準的 SQL Server 許可證,PostgreSQL 是一個替代方案。
PostgreSQL 是完全免費的,因此許可證成本是 PostgreSQL 相對于 Microsoft SQL Server 的主要優(yōu)勢。
SQL Server 和 PostgreSQL 之間數(shù)據(jù)庫遷移的開源工具
手動數(shù)據(jù)遷移很麻煩。一個好的數(shù)據(jù)庫遷移工具應該提示用戶選擇要遷移的對象,例如表、索引、主鍵和外鍵約束。
幸運的是,有一些工具可以自動化枯燥的手工工作。
1、pgloader 是 一個著名的開源工具,它使用COPY命令將SQL Server中的數(shù)據(jù)導入PostgreSQL,加載數(shù)據(jù)、索引和外鍵,并按預期將數(shù)據(jù)轉換為PostgreSQL。
- pgloader 將來自 MS SQL、SQLite、MySQL、CSV 等各種來源的數(shù)據(jù)加載到 PostgreSQL 中。
- 它在 PostgreSQL 許可下獲得許可,可以免費使用。
- pgloader 是一個跨平臺的軟件。
- Docker 鏡像可用。
2. Sqlserver2pgsql是用Perl 編寫的。這是另一個開源遷移工具,用于自動將 Microsoft SQL Server 數(shù)據(jù)庫轉換為 PostgreSQL 數(shù)據(jù)庫。
- 它將 SQL Server 模式轉換為 PostgreSQL 模式
- 如果需要,它可以創(chuàng)建一個 Pentaho Data Integrator (Kettle) 控制臺來將所有數(shù)據(jù)從 SQL Server 遷移到 PostgreSQL。
部分開源工具的缺點
- 上面提到的工具是命令行實用程序,因此它們沒有圖形界面。對于那些被終端嚇倒的人來說,它們并不好用。
- 這些工具僅限于可以將 PostgreSQL 配置為目的地的單向遷移
DBConvert 數(shù)據(jù)庫遷移軟件
適用于 SQL Server 和 PostgreSQL 的 DBConvert 和 DBSync 是流行的軟件工具,可最大限度地減少 SQL Server 和 PostgreSQL 數(shù)據(jù)庫之間的數(shù)據(jù)庫轉換和同步挑戰(zhàn)。
用于 SQL Server 和 PostgreSQL 的 DBConvert/DBSync 優(yōu)點:
- DBConvert 工具是高度可定制的,允許您使用全面的圖形界面快速輕松地將數(shù)據(jù)從 Microsoft SQL Server 導出到 Postgres。DBConvert Applications 指導您完成幾個步驟,從連接到源和目標數(shù)據(jù)庫、配置遷移參數(shù)以及安排后續(xù)運行。
- 在 DBConvert 產(chǎn)品中,目標數(shù)據(jù)庫以樹的形式呈現(xiàn),這大大簡化了設置的配置。DBConvert 軟件經(jīng)過驗證的優(yōu)勢在于,非專業(yè)用戶也可以有效地使用它。
- 自動驗證系統(tǒng)會在遷移前仔細檢查源數(shù)據(jù)庫的結構和關系,確保不會丟失或損壞您的任何數(shù)據(jù),并保證無風險和無錯誤的數(shù)據(jù)傳輸。
- 將源數(shù)據(jù)庫復制到目標數(shù)據(jù)庫后,使數(shù)據(jù)庫與更新、插入和刪除同步功能保持同步。
- DBSync 應用程序在 SQL Server 和 PostgreSQL 之間執(zhí)行雙向復制(其中兩個不同的數(shù)據(jù)庫同時相互復制更改)。
- 在任何組合中, 使用 SQL Server 到 PostgreSQL 轉換器/同步工具,以下數(shù)據(jù)庫之間的數(shù)據(jù)遷移是可能的:
- 微軟 SQL 服務器,
- Windows Azure SQL 數(shù)據(jù)庫/ Azure SQL 數(shù)據(jù)倉庫,
- 適用于 SQL Server 的 Google Cloud SQL,
- 用于 PostgreSQL 的 Google Cloud SQL,
- AWS RDS/極光,
- Heroku Postgres。
結論:
在本文中,我們介紹了將數(shù)據(jù)從 SQL Server 遷移到 PostgreSQL 的幾種方法。
Pgloader和Sqlserver2pgsql是 Linux 用戶和那些在終端中感覺舒適的優(yōu)秀解決方案。它在從許多數(shù)據(jù)庫遷移到 PostgreSQL 時發(fā)揮作用。但只能在一個方向上進行轉換。
DBConvert 工具支持 SQL Server 和PostgreSQL 數(shù)據(jù)庫類型之間的雙向遷移和同步。支持更多本地和云數(shù)據(jù)庫轉換。DBSync 是在初始遷移后持續(xù)保持數(shù)據(jù)庫同步的完美解決方案。