Sql-Server

從 SQL Server 到 PostgreSQL 的數據遷移

  • March 25, 2020

我需要將數據庫從 SQL Server 遷移到 PostgreSQL。兩個數據庫位於不同的伺服器上。我有大約 20 個表和數百萬行。

有什麼方法可以做到這一點?我有任何開源工具嗎?我可以使用一些腳本來做到這一點嗎?

我可以訪問執行 PostgreSQL 數據庫的伺服器,並且我有到 SQL Server 的連接參數。執行 PostgreSQL 的伺服器上的作業系統是 ubuntu。

SQL Server 仍然存在,並將繼續存在。時間不是問題。我沒聽懂你,對不起。這兩個數據庫都沒有投入生產,所以我想只要需要它們就可以不可用。

沒有“靈丹妙藥”來完成此遷移。您將需要在目標中設置數據庫模式,然後執行 ETL 過程以將數據從 SQL Server 中提取出來並將其插入 Postgres。架構(和數據的轉換)需要進行更改,因為兩個平台之間沒有數據類型的 1:1 映射。

但這只是移動數據。

然後,您必須遷移數據庫中嵌入的儲存過程、觸發器和其他程式碼。同樣,沒有“在這裡,執行這個腳本”來神奇地轉換一切。這些將需要比原始數據更多的努力來轉換。

如果此系統正在進行開發,您需要將這些更改從 SQL Server 移植到 Postgres。如果您想要“實時”遷移並且數據仍在被修改(插入、更新、刪除,任何改變數據狀態的東西),您需要將這些更改複製到 Postgres。當您的轉換日期到來時,您必須停止 SQL Server,確保最後的數據和其他更新已遷移,然後關閉 SQL Server 並更新您的應用程序以指向 Postgres。

並且不要忘記在進行最終切換之前進行測試!

引用自:https://dba.stackexchange.com/questions/262596