PostgreSQL可以替換微軟SQL Server嗎?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
許多人對于 PostgreSQL 生態(tài)已經發(fā)展到什么階段并沒有一個直觀的印象 —— 除了吞噬數據庫世界,囊括萬物的擴展生態(tài)之外,PostgreSQL 還可以直接從內核層面,替換掉 Oracle,SQL Server 與 MongoDB,當然 MySQL 就更不在話下了。 當然要說主流數據庫中,暴露風險最高的是誰,那毫無疑問是微軟的 SQL Server 了。MSSQL 被替代的是最徹底的 —— 直接在 WireProtocol 層面被替代了。而主導這件事的是 AWS,亞馬遜云服務。 Babelfish雖然一直吐槽云廠商白嫖開源,但我承認這種策略是極為有效的 —— AWS 拿著開源的 PostgreSQL 和 MySQL 內核,一路殺穿數據庫市場,拳打 Oracle ,腳踢微軟,成為數據庫市場份額毫無爭議的一哥。而這兩年 AWS 更是玩了一招釜底抽薪,開發(fā)整合了一個 BabelfishPG 的擴展插件,提供“線纜協(xié)議”級別的兼容性。 所謂線纜協(xié)議兼容,就是指客戶端什么都不用改,依然訪問 SQL Server 1433 端口,使用 MSSQL 的驅動與命令行工具(sqlcmd)訪問加裝 BabelfishPG 的集群就可以了。而且更神奇的是,你依然可以使用 PostgreSQL 的協(xié)議語言語法,從原來的 5432 端口訪問,和 SQL Server 的客戶端并存 —— 這就給遷移帶來了極大的便利條件。 WiltonDB當然 Babelfish 并不是一個單純的 PG 擴展插件,它對 PostgreSQL 內核進行了少量修改與適配。并通過四個擴展插件分別提供了 TSQL 語法支持,TDS 線纜協(xié)議支持,數據類型以及其他函數支持。 在不同的平臺上編譯打包這樣的內核與擴展并不是輕松容易的一件事,因此 WiltonDB —— 一個 Babelfish 的發(fā)行版就做了這件事,將 BabelfishPG 編譯打包為 EL 7/8/9 與 Ubuntu 系統(tǒng),甚至 Windows 下可用的 RPM / DEB / MSI 包。 Pigsty v3當然,只有 RPM / DEB 包,距離提供生產級的服務還依然差得太遠,而在最近發(fā)布的 Pigsty v3 中,我們提供了將原生 PostgreSQL 內核替換為 BabelfishPG 的能力。 創(chuàng)建這樣一套 MSSQL 集群,所需的不過是在集群定義中修改幾個參數。然后依然是一件傻瓜式拉起 —— 類似主從搭建, 擴展安裝,參數優(yōu)化,用戶配置,HBA規(guī)則設定,甚至是服務流量分發(fā),都會自動根據配置文件一鍵拉起。 在使用實踐上,你完全可以把 Babelfish 集群當作一套普通的 PostgreSQL 集群來使用與管理。唯一的區(qū)別就是客戶端在使用 5432 PGSQL 協(xié)議的基礎上,還可以選擇是否要使用 1433 端口上的 TSQL 協(xié)議支持。 例如,您可以輕松通過配置,將原本固定指向主庫連接池 6432 端口的 Primary 服務重定向到 1433 端口,從而實現故障切換下的無縫 TDS / TSQL 流量切換。 這意味著原本屬于 PostgreSQL RDS 的能力 —— 高可用,時間點恢復,監(jiān)控系統(tǒng),IaC管控,SOP預案,甚至無數的擴展插件都可以嫁接融合到 SQL Server 版本的內核之上。 怎么遷移過去?PostgreSQL 生態(tài)除了有Babelfish這樣給力的內核與擴展,還有著繁榮的工具生態(tài)。如果要想從 SQL Server 或 MySQL 遷移到 PostgreSQL ,我強烈推薦一款殺手級遷移工具:PGLOADER。 這款遷移工具傻瓜化到了離譜的程度,在理想的情況下,你只需要兩個數據庫的連接串,就可以完成遷移了。對,真的是一行多余的廢話都沒有。 有了 MSSQL 兼容內核擴展,又有了遷移工具,存量的 SQL Server 搬遷會變的非常容易。 除了 MSSQL,還有……除了 MSSQL,PostgreSQL 生態(tài)還有旨在替代 Oracle替代:PolarDB O 與 IvorySQL,旨在替代 MongoDB 的 FerretDB 與 PongoDB。以及三百多個提供各式各樣功能的擴展插件。 實際上,幾乎整個數據庫世界都在受到 PostgreSQL 的沖擊 —— 除了那些與 PostgreSQL 錯開生態(tài)位(SQLite,DuckDB,MinIO),或者干脆就是 PostgreSQL 套殼(Supabase,RDS,Aurora/Polar)的數據庫。 我們最近發(fā)布的開源 RDS PostgreSQL 方案 —— Pigsty 最近就支持了這些 PG 替換內核,允許用戶在一套 PostgreSQL 部署中提供 MSSQL,Oracle,MongoDB,Firebase,MongoDB 的兼容性替代能力。 該文章在 2024/9/4 17:41:07 編輯過 |
關鍵字查詢
相關文章
正在查詢... |