數(shù)據(jù)庫高可用架構(gòu)的盡頭是RAC嗎?
前陣子和幾個(gè)國產(chǎn)數(shù)據(jù)庫廠商的朋友談到高可用架構(gòu)的時(shí)候,有朋友說數(shù)據(jù)庫高可用架構(gòu)的盡頭是RAC,今后所有的國產(chǎn)集中式數(shù)據(jù)庫必須做RAC功能。我問說這話的朋友,你認(rèn)為的高可用盡頭的RAC,看中了哪方面的能力呢?他說某個(gè)節(jié)點(diǎn)故障,另外一個(gè)節(jié)點(diǎn)照樣跑,應(yīng)用可以快速通過TAF切換到活著的節(jié)點(diǎn),在業(yè)務(wù)完全不中斷、數(shù)據(jù)0丟失下實(shí)現(xiàn)高可用切換,基本上就能夠滿足用戶的需求了。
干了三十多年IT,親眼目睹了IT技術(shù)發(fā)展的滾滾洪流,我已經(jīng)對頂峰、盡頭之類的詞免疫了。未來如何,我是沒有能力去感知的,我只了解歷史和現(xiàn)狀。能夠把現(xiàn)狀搞明白七八成已經(jīng)是十分高的認(rèn)知程度了。如果RAC這個(gè)誕生于上世紀(jì)90年代的數(shù)據(jù)庫高可用架構(gòu)就已經(jīng)是數(shù)據(jù)庫高可用架構(gòu)的盡頭了,這三十年來,數(shù)據(jù)庫從業(yè)者都白活了。
事實(shí)上,那個(gè)朋友說的Oracle RAC的故障切換技術(shù)是快30年前的技術(shù)了,而這些年中,Oracle在高可用技術(shù)方面的技術(shù)進(jìn)步可能已經(jīng)完全超出了那位朋友的想象了。這些年Oracle 的業(yè)務(wù)連續(xù)性解決方案已經(jīng)從TAF發(fā)展到了FCF(快速連接故障切換),F(xiàn)CF把TAF的分鐘級故障切換縮短到亞秒級,這個(gè)技術(shù)是Oracle 10g開始支持的,至今已經(jīng)21年多了。十年前我在對某個(gè)行業(yè)的Oracle用戶調(diào)研的時(shí)候,幾乎100%的用戶還在使用TAF,壓根兒不知道還有FCF這個(gè)技術(shù)。這說明TAF對他們來說已經(jīng)夠用了,實(shí)際上他們的系統(tǒng)并無更高高可用的需求。
2013年的12C,Oracle又推出了GDS和應(yīng)用連續(xù)性解決方案AC。不僅把高可用切換擴(kuò)展到了Oracle RAC之外的GoldenGate和ADG環(huán)境,還提出了一個(gè)故障切換應(yīng)用不失敗的解決方案。在2018年的18C中,AC又升級到TAC,讓應(yīng)用連續(xù)性方案變得對應(yīng)用更加透明。在隨后的19C中,TAC方案擴(kuò)展到了ADG。
實(shí)際上信息化這幾十年來,人們對系統(tǒng)高可用的需求是不斷提升的。隨著數(shù)據(jù)存儲(chǔ)與數(shù)據(jù)處理越來越集中,系統(tǒng)故障所帶來的的負(fù)面影響就越來越大,于是關(guān)鍵業(yè)務(wù)系統(tǒng)對數(shù)據(jù)庫系統(tǒng)高可用的需求就越來越高了。實(shí)際上業(yè)務(wù)連續(xù)性的數(shù)據(jù)庫解決方案的發(fā)展目前還是沒有看到盡頭了。只是目前國產(chǎn)數(shù)據(jù)庫在這方面與最先進(jìn)的技術(shù)之間還存在好幾代的代差。
數(shù)據(jù)庫業(yè)務(wù)連續(xù)性解決方案的技術(shù)發(fā)展方向是對應(yīng)用越來越透明,對應(yīng)用影響越來越小。Oracle對業(yè)務(wù)連續(xù)性的解決方案已經(jīng)發(fā)展到了全局?jǐn)?shù)據(jù)服務(wù)GDS,RAC只是其中的一個(gè)環(huán)節(jié)了。不過大多數(shù)國產(chǎn)數(shù)據(jù)庫廠商還是沒有看到這個(gè)技術(shù)趨勢,還把實(shí)現(xiàn)RAC作為自己追求的終極目標(biāo),這個(gè)技術(shù)思路可能不一定是正確的。
共享存儲(chǔ)多讀多寫數(shù)據(jù)庫要想達(dá)到Oracle RAC水平相當(dāng)困難,這不僅僅是投入研發(fā)經(jīng)費(fèi)的問題,底層存儲(chǔ)架構(gòu)如果沒有優(yōu)化好,哪怕做出了類似RAC的功能,在性能、故障切換的FREEZE時(shí)間等技術(shù)參數(shù)上與Oracle都會(huì)有相當(dāng)大的差距,而且因?yàn)榇鎯?chǔ)引擎的缺陷,這個(gè)差距是無法縮小的,這一點(diǎn)我不知道有多少數(shù)據(jù)庫從業(yè)者認(rèn)可。我交流過的國產(chǎn)數(shù)據(jù)庫廠商中,好像只有一家和我持相同的觀點(diǎn)。
RAC只是實(shí)現(xiàn)較高的業(yè)務(wù)連續(xù)性的一種技術(shù)方案,并不是全部。GDS才是目前業(yè)務(wù)連續(xù)性解決方案中相對前沿的技術(shù)方案。我建議需要給用戶提供更高業(yè)務(wù)連續(xù)性解決方案的廠商去研究一下。對于國產(chǎn)數(shù)據(jù)庫廠商,我有一個(gè)十分不解的問題就是,似乎他們的產(chǎn)品經(jīng)理都不去研究Oracle這個(gè)目前數(shù)據(jù)庫中的遙遙領(lǐng)先者。周日和大學(xué)生朋友交流的時(shí)候,南科大的一位同學(xué)問我融合數(shù)據(jù)庫需要具備哪些能力。我說一兩句話說不清楚,你去下載一套Oracle 23ai研究一下,我覺得目前能力最強(qiáng)的融合數(shù)據(jù)庫就是這個(gè),這也代表了融合數(shù)據(jù)庫的技術(shù)發(fā)展方向。
回到應(yīng)用連續(xù)性和高可用的話題。數(shù)據(jù)庫的高可用技術(shù)是為應(yīng)用服務(wù)的,用戶對此的要求是越透明越好,對應(yīng)用影響越小越好,使用成本越低越好。技術(shù)上限會(huì)隨著軟硬件技術(shù)的發(fā)展而不斷進(jìn)步,我們目前離最高水平差距還相當(dāng)遠(yuǎn)。談哪個(gè)地方是盡頭還是早了點(diǎn)。