<ruby id="9ue20"></ruby>

  1. 
    

      国产午夜福利免费入口,国产日韩综合av在线,精品久久人人妻人人做精品,蜜臀av一区二区三区精品,亚洲欧美中文日韩在线v日本,人妻av中文字幕无码专区 ,亚洲精品国产av一区二区,久久精品国产清自在天天线
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      Oracle 兼容的 PG 真的有用嗎?

      0
      分享至

      很多國產(chǎn)數(shù)據(jù)庫都以 “兼容 Oracle” 作為賣點,說實話,老馮一直都對這件事不感冒。有時候我也會懷疑,PG 去兼容 Oracle 到底是不是一個偽需求—— 改改業(yè)務(wù)代碼能死嗎?但是最近我真的碰到了一個極端情況,讓我略微改了看法。

      一個沒有源碼的 JAR 包

      最近老馮接了個小活兒,挺有意思的。某 500 強車企,手里跑著一套 EDB —— 也就是 EnterpriseDB 出品的、帶 Oracle 兼容的 PostgreSQL。版本是 9.1

      9.1 是什么概念?2011 年 9 月發(fā)布的版本,到今天已經(jīng)整整 15 年 了。

      這套系統(tǒng)跑在某個云平臺上(美國信創(chuàng)云),出過好幾次大故障(500 IOPS 的乞丐云盤跑 22TB 的生產(chǎn)數(shù)據(jù)庫)。客戶終于忍不了了,找到我說:老馮,幫我們升一下級吧。升級本身不難,但從 9.1 到現(xiàn)在的 PG 18,中間差了十五個大版本,一年一個。這個跨度屬實有點大。

      不過真正要命的不是版本跨度,而是他們的應(yīng)用 —— 沒有源碼了

      對,你沒聽錯。就是一個 JAR 包,代碼全寫死在里面了,改不了。更麻煩的是,這個 JAR 包里的 SQL 用了 EDB 提供的 Oracle 兼容語法,比如 SYSDATE

      不過有一點還是非常讓人震撼的:除了這一點不兼容(也是因為當(dāng)年 Oracle 遷移 EDB PG 偷懶,留下了 Oracle 的尾巴)之外,其他的祖?zhèn)鳂I(yè)務(wù)代碼從 15 年前的老 PG 升級到最新的 PG 18,竟然沒有其他不兼容的地方。

      為什么 SYSDATE 這么棘手?

      SYSDATE 在 Oracle 里是一個內(nèi)置的關(guān)鍵字/變量,用來獲取當(dāng)前時間戳,類似于 PostgreSQL 里的 current_timestamp

      你可能會想:這有什么難的?建個函數(shù)不就完了嗎?

      CREATE FUNCTION sysdate() RETURNS timestamp(0) AS
      $$SELECT clock_timestamp()::timestamp(0) $$ LANGUAGE SQL;

      沒那么簡單。問題在于,應(yīng)用里寫的不是 sysdate() 這種函數(shù)調(diào)用語法,而是直接用 SYSDATE 這個光禿禿的標識符。在 PostgreSQL 的 Parser(解析器)看來,這個東西既不是函數(shù)調(diào)用,也不是已知的關(guān)鍵字。Parser 直接就不認識它,報語法錯誤。


      而且,你無法通過寫擴展來解決這個問題。PostgreSQL 的可擴展性覆蓋了絕大多數(shù)場景 —— 你可以自定義類型、操作符、索引方法、存儲引擎、執(zhí)行邏輯、甚至外部數(shù)據(jù)源。但唯獨語法,是不允許通過擴展來定制的。 這是 PostgreSQL 可定制性上唯一的遺憾。

      要讓 PostgreSQL 認識 SYSDATE 這個 token,你必須去改 Parser 的語法規(guī)則文件,也就是要動內(nèi)核源碼。


      如果應(yīng)用有源碼,這事兒根本不叫事兒 —— 現(xiàn)在用 AI 做個全局替換,把 SYSDATE 改成 clock_timestamp()::timestamp(0),分分鐘搞定。但源碼沒了,JAR 包寫死了,這條路堵死了。

      你讓我怎么辦?去反編譯 JAR 包然后改 SQL 字符串字面值?這聽著就不太靠譜。所以你看,臟活累活最后全跑到數(shù)據(jù)庫這兒來了。

      IvorySQL:開源的 Oracle 兼容內(nèi)核

      雖然需求很扯淡,但既然是客戶的活兒,還是要想辦法。

      我琢磨了一下,能在 PG 內(nèi)核層面提供 Oracle 語法兼容的,目前就那么幾家。做得最好的是 EDB,接著用 EDB 就沒這個問題。但 EDB 是商業(yè)產(chǎn)品,價格不菲,而且人家本來就準備換開源。

      國內(nèi)號稱兼容 Oracle 的數(shù)據(jù)庫倒是一堆,但人家客戶不吃信創(chuàng)這一套。所以 PolarDB-O 也不可能(而且也跟 EDB PG Oracle 兼容有說不清道不明的微妙聯(lián)系,據(jù)說有些其他國產(chǎn)數(shù)據(jù)庫也是 EDB 貼牌)。

      所以我想了一下,還真就只有 IvorySQL 能干這個事。IvorySQL 是瀚高做的一個開源項目,Apache 2.0 許可證,基于 PostgreSQL 內(nèi)核提供 Oracle 兼容性 —— 包括 PL/SQL、Oracle 語法、內(nèi)置函數(shù)、數(shù)據(jù)類型、系統(tǒng)視圖等等。最新的 IvorySQL 5.1 與 PostgreSQL 18.1 保持同步。

      這里要說明一下,IvorySQL 的 Oracle 兼容是 SQL 語法層面 的兼容,不是線纜協(xié)議兼容。也就是說,客戶端還是用 PostgreSQL 的驅(qū)動來連接,但連上之后可以跑 Oracle 風(fēng)格的 SQL。能理解這里的考慮 —— Oracle 的法務(wù)在業(yè)界可是臭名昭著的,搞客戶端協(xié)議兼容怕是要被告。

      而且關(guān)鍵的是:IvorySQL 只是一個內(nèi)核,Pigsty 能把它變成一個完整的 RDS。

      高可用、備份恢復(fù)、監(jiān)控、IaC —— 全都和 Pigsty 原生整合。拉起一套這樣生產(chǎn)級的 RDS 服務(wù),使用 IvorySQL 這個 Oracle 兼容的內(nèi)核,聽起來很復(fù)雜,但實際上簡單到令人發(fā)指,找臺 Linux 服務(wù)器執(zhí)行:

      curl -fsSL https://repo.pigsty.cc/get | bash; cd ~/pigsty
      ./configure -c ivory # 使用 IvorySQL 配置模板
      ./deploy.yml

      三條命令,一個 Oracle 兼容的 PG RDS 就拉起來了。你要想加從庫,也是一行命令的事情。備份,恢復(fù),高可用, 監(jiān)控系統(tǒng),全都預(yù)先弄好了!


      讓我們來看看,連接 5432 PG 默認端口,使用 Oracle 的 SYSDATE 查詢就報錯了,切換到 1521 Oracle 兼容端口,it works!


      總的來說,這套方案相當(dāng)完美地解決了歷史遺留的 Oracle 兼容應(yīng)用的問題。這也讓我發(fā)現(xiàn),雖然是一個很冷門的生態(tài)位,但確實有用戶有這個需求。反正對老馮來說,這就是很簡單的事情,順手做了也就做了。

      這活兒老馮收了 5 萬塊一年。相比 EnterpriseDB 的訂閱費,那簡直不知道要便宜到哪里去了。光買云服務(wù)跑這玩意的資源一年都要花幾十萬。當(dāng)然話又說回來了,老馮也不提供 IvorySQL 的質(zhì)保。如果 IvorySQL 炸了,你找瀚高去。我只管 Pigsty RDS 不出問題,不過老馮自己覺得呢,IvorySQL 沒有魔改太多,而是做的增量特性,這個還是相對可控的。我在實際安裝使用測試的時候,也還沒遇到過 crash 或者 dump 的情況。而且這年頭,內(nèi)核爆炸的情況確實已經(jīng)很罕見了。

      Pigsty:一個"元發(fā)行版"

      說完 IvorySQL 這個案例,順便聊聊 Pigsty 最近在內(nèi)核這塊干的幾件事。

      Babelfish 內(nèi)核重建。 這是 AWS 出品的 SQL Server 兼容內(nèi)核。之前老粉為了偷懶,用的是 WiltonDB 打包的版本,但那個包比較老,還停留在 PG15,而且只支持 EL8/EL9 和 Ubuntu 22.04/24.04,缺 Debian 和 EL10 的支持,用起來還要用它的專有倉庫,總感覺差點意思。

      所以這次我一不做二不休,讓 Codex 幫我把 Babelfish 的打包流程按 Pigsty 的標準重建了一遍。現(xiàn)在 Babelfish 不再依賴 WiltonDB 的倉庫,直接從 Pigsty 自己的倉庫安裝,全平臺通吃了,版本也升級到 PG 17,使用體驗也更好了。

      Cloudberry 數(shù)倉內(nèi)核。 既然做了 Babelfish,我也順手把 Apache Cloudberry(基于 Greenplum 7 的開源數(shù)倉)也打包了。之前 1.6 版本的時候起碼還提供 EL8/EL9 的 RPM 包,結(jié)果 2.0 到現(xiàn)在等了好幾個月,都沒有二進制產(chǎn)物,問了也是說暫時沒這個計劃。

      所以我也干脆自己上了,Codex 一把梭,把 EL 8-10,Debian 12/13 ,Ubuntu 22/24 x86_64/ARM64 總共 14 個 Linux 平臺上的 RPM/DEB 包都打好了。這其實是個挺復(fù)雜的大活兒,但 Codex 在那兒"糊"了半天,跑了各種集成測試和單元測試,還弄了幾個 Patch 才在 EL10/Debian13 上跑通,最后總算搞定了。


      除此之外,OrioleDB 更新到 Beta 14。Percona PGTDE 更新到 18.1。

      所以你看,這就是 Pigsty 好玩的地方 —— 它不僅僅是一個 PostgreSQL 發(fā)行版,它是一個 元發(fā)行版。你不僅可以在原生的 PG 上使用 450 多個擴展插件,而且就連 PG 這個內(nèi)核本身都是可以替換的。

      你可以根據(jù)需求,愛用什么內(nèi)核就用什么內(nèi)核:

      ?想要 Oracle 兼容 → IvorySQL 內(nèi)核,還有 Polar-O 內(nèi)核?想要 SQL Server 兼容 → Babelfish 內(nèi)核?想要 MongoDB 兼容 → DocumentDB 擴展 + FerretDB?想要 極致 OLTP 性能 → OrioleDB 內(nèi)核?想要 透明數(shù)據(jù)加密 → PGTDE 內(nèi)核?想要 分布式水平擴展 → Citus 內(nèi)核?想要 數(shù)據(jù)倉庫 → Cloudberry 內(nèi)核

      而無論你選哪個內(nèi)核,Pigsty 提供的監(jiān)控、高可用、備份恢復(fù)、IaC 能力都是一樣的。內(nèi)核可以換,平臺的能力不變。 這才是發(fā)行版該干的事。


      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關(guān)推薦
      熱點推薦
      官方通報“離奇消失”?南通住建局這波操作引發(fā)質(zhì)疑

      官方通報“離奇消失”?南通住建局這波操作引發(fā)質(zhì)疑

      好通網(wǎng)
      2026-05-15 10:15:10
      中美會晤結(jié)束,中方一錘定音,特朗普通告全世界,美媒:美國變了

      中美會晤結(jié)束,中方一錘定音,特朗普通告全世界,美媒:美國變了

      星夜?jié)i漪
      2026-05-15 03:29:27
      AI預(yù)測世界杯小組賽結(jié)果:英阿法德西葡荷均晉級,巴西、摩洛哥同分

      AI預(yù)測世界杯小組賽結(jié)果:英阿法德西葡荷均晉級,巴西、摩洛哥同分

      懂球帝
      2026-05-14 19:00:47
      美伊戰(zhàn)爭打醒了所有人,原來中國真正的“護城河”,竟然是山西?

      美伊戰(zhàn)爭打醒了所有人,原來中國真正的“護城河”,竟然是山西?

      蜉蝣說
      2026-05-14 18:32:25
      拉亞已完成18場零封,英超史上有6位門將曾解鎖單賽季20+零封

      拉亞已完成18場零封,英超史上有6位門將曾解鎖單賽季20+零封

      懂球帝
      2026-05-15 07:58:07
      “扶弟魔”姐姐十年買房又給錢,卻被弟弟一怒砍殺:錢給的不夠花

      “扶弟魔”姐姐十年買房又給錢,卻被弟弟一怒砍殺:錢給的不夠花

      莫地方
      2026-05-13 00:40:03
      米體:伊瓜因單季36球破紀錄,十年前成那不勒斯告別夜

      米體:伊瓜因單季36球破紀錄,十年前成那不勒斯告別夜

      懂球帝
      2026-05-14 22:55:13
      蔣萬安和江啟臣在向鄭麗文的兩岸和平路線上靠近

      蔣萬安和江啟臣在向鄭麗文的兩岸和平路線上靠近

      縱擁千千晚星
      2026-05-13 07:13:47
      絕色美人艾梅柏:曾經(jīng)迷倒德普和馬斯克,如今帶著3個娃“隱居”

      絕色美人艾梅柏:曾經(jīng)迷倒德普和馬斯克,如今帶著3個娃“隱居”

      小書生吃瓜
      2026-05-02 22:22:47
      首個國有大行信用卡APP下月關(guān)停

      首個國有大行信用卡APP下月關(guān)停

      21世紀經(jīng)濟報道
      2026-05-14 21:39:56
      劉松仁發(fā)文致歉米雪,半個世紀搭檔情誼引熱議

      劉松仁發(fā)文致歉米雪,半個世紀搭檔情誼引熱議

      北青網(wǎng)-北京青年報
      2026-05-15 11:16:07
      141:0全票通過!法國連夜通過重大草案,中國這次的回應(yīng)很不一般

      141:0全票通過!法國連夜通過重大草案,中國這次的回應(yīng)很不一般

      潮鹿逐夢
      2026-05-12 17:14:43
      100年前喪國辱權(quán)的協(xié)議卻成100年后的金鑰匙,國運來了擋都擋不住

      100年前喪國辱權(quán)的協(xié)議卻成100年后的金鑰匙,國運來了擋都擋不住

      富強巨靠譜
      2025-03-21 17:01:22
      移動8元保號+120元包年流量卡,熱點替代寬帶,一年200多夠用

      移動8元保號+120元包年流量卡,熱點替代寬帶,一年200多夠用

      粵語音樂噴泉
      2026-05-15 09:51:09
      WTA1000羅馬站:斯瓦泰克1-2不敵低排名選手,世界第3無緣決賽

      WTA1000羅馬站:斯瓦泰克1-2不敵低排名選手,世界第3無緣決賽

      側(cè)身凌空斬
      2026-05-15 06:34:06
      夫妻能夠相互喂飽,才是最好的婚姻!

      夫妻能夠相互喂飽,才是最好的婚姻!

      燈錦年
      2026-05-15 10:55:19
      “你的孩子,大概率是個普通人”,為啥我不能接納孩子的平凡?

      “你的孩子,大概率是個普通人”,為啥我不能接納孩子的平凡?

      枕邊聊育兒
      2026-05-15 09:21:06
      【日運】十二星座2026年5月16日運勢播報

      【日運】十二星座2026年5月16日運勢播報

      別人都叫我阿螫
      2026-05-15 10:38:19
      他套現(xiàn)百億,留下27萬股民和一張ST廢紙,聞泰科技給投資者上了一課

      他套現(xiàn)百億,留下27萬股民和一張ST廢紙,聞泰科技給投資者上了一課

      A活著
      2026-05-09 20:47:26
      全球獨一份?為何全世界,只有中國敢從殲7一步換到殲20

      全球獨一份?為何全世界,只有中國敢從殲7一步換到殲20

      聊歷史的阿稼
      2026-05-15 09:27:13
      2026-05-15 11:56:49
      老馮云數(shù) incentive-icons
      老馮云數(shù)
      數(shù)據(jù)庫老司機,云計算泥石流,PostgreSQL大法師
      179文章數(shù) 55關(guān)注度
      往期回顧 全部

      科技要聞

      兩年聯(lián)姻一地雞毛,傳蘋果OpenAI瀕臨決裂

      頭條要聞

      103歲和86歲老人認識3個月"閃婚":孤獨感消失了

      頭條要聞

      103歲和86歲老人認識3個月"閃婚":孤獨感消失了

      體育要聞

      德約科維奇買的球隊,從第6級聯(lián)賽升入法甲

      娛樂要聞

      方媛回應(yīng)住男生單人間:女孩的配得感

      財經(jīng)要聞

      特朗普的北京時刻

      汽車要聞

      雙零重力座椅/AI智能體/調(diào)光天幕 啟境GT7內(nèi)飾發(fā)布

      態(tài)度原創(chuàng)

      游戲
      教育
      旅游
      家居
      親子

      BLG見面會翻大車!黑粉噴子全過審 真愛粉氣炸了

      教育要聞

      初升高訪校高峰已到!這些門門道道要搞清楚

      旅游要聞

      今年的恭王府海棠依舊

      家居要聞

      精神奢享 對話塔尖需求

      親子要聞

      帶納糖一起去日本公園玩,兄妹倆年紀相差大,但是玩的很開心

      無障礙瀏覽 進入關(guān)懷版 主站蜘蛛池模板: 国产三级va| 秋霞电影网久久久精品| 精品超清无码视频在线观看 | 中文无码人妻有码人妻中文字幕| 国内自拍偷拍一区二区三区| 人妻蜜臀久久av不卡| 免费观看污视频网站| 永久免费看mv亚洲| 久久精品视频一二三四区| 一本精品中文字幕在线| 亚欧乱色视频网站大全| 久久天堂夜夜一本婷婷伊人 | 粉嫩国产一区二区三区在线| 激情图区| 亚洲丶国产丶欧美一区二区三区| 狠狠色噜噜狠狠狠777米奇| 2022Av天堂在线无码| 男人用嘴添女人下身免费视频| 日韩中文字幕一区二区不卡| 久久综合伊人77777| 亚洲精品中文字幕网| 亚洲变态另类天堂AV手机版| 中文字幕被公侵犯的漂亮人妻| 亚洲AV日韩AV永久无码网站| 国产精品中文字幕免费| 色爱综合激情五月激情| 香港经典a毛片免费观看播放| 亚洲最大AV在线观看| 久久久久无码精品国91| 在线免费成人亚洲av| 久久不见久久见免费视频观看| av午夜福利亚洲精品福利| 国产丝袜AV| 日本高清在线播放一区二区三区| 国内精品久久人妻无码妲| 国产女人看国产在线女人| 亚洲综合性| 亚洲精品无码日韩国产不卡av| 亚洲欧美中文字幕日韩一区二区| 5555国产在线观看精品| 久久99老妇伦国产熟女|