更新時間:2021-03-05 17:38:17 來源:動力節點 瀏覽1311次
兼容性(compatibility)是指硬件之間、軟件之間或是軟硬件組合系統之間的相互協調工作的程度。兼容的概念比較廣,相對于硬件來說,幾種不同的電腦部件,如CPU、主板、顯示卡等,如果在工作時能夠相互配合、穩定地工作,就說它們之間的兼容性比較好,反之就是兼容性不好。做數據庫產品諸如Oracle數據庫,有很多種可能的做法,但歸根結底還是要考慮到Oracle兼容性。
Oracle數據庫作為最流行的關系型數據庫之一,在Oracle數據庫的快速發展中,Oracle 將主要的幾個競爭對手遠遠甩在了身后,其本身的功能越來越豐富,生態越來越強大。從理性的角度看,任何一個后來者都不可能通過兼容的設計追趕上巨人的步伐了。然而,在各種機緣巧合下,還是有很多團隊選擇了做通用數據庫的道路,并因為其面對的市場需求而進一步選擇了Oracle兼容性的道路。這也是歷史選擇的必然,歷史的潮流很快就被 NoSQL、NewSQL、Spanner、Aurora 占據,但國際形勢波譎云詭,就連MariaDB都要搞搞Oracle兼容了。
Oracle 等高手在對決的時候,國內的小弟們還在蹣跚前行;而另一支重要的數據庫力量正在 蓬勃發展:以MySQL和PostgreSQL為代表的開源數據庫正從市場的低端開始進步。值得注意的是,這兩個產品在快速發展過程中并沒有明確宣傳要兼容Oracle。不過實際上,PostgreSQL出身名門正派,要比MySQL更類似 Oracle 一點。這也是為什么包括 EDB在內的一些公司選擇了它為基礎來做Oracle兼容。
我們必須要搞明白Oracle兼容要做些什么?
Oracle兼容的目標不是一個固定靶,而是一個移動靶。以Oracle 12為例,它的功能極為龐大,比早期的Oracle 5要復雜N多倍。例如它支持的主要功能包括Oracle documents:
1.符合 SQL:2011 核心級
2.多租戶
3.RAC
4.Data Guard
5.備份和恢復
6.在線對象重建
7.FLASHBACK
8.自動負載管理
9.結果集等緩存
10.內存引擎
11.安全、加密和審計
12.存儲過程(SQLJ、.NET)
13.各種工具(管理、調優、測試等)
14.分區表
15.OLAP
16.壓縮
17.并行處理
18.數據復制
19.全文索引
20.空間數據
21.XML等等
兼容,更大的挑戰還在于圍繞 Oracle 的生態。做到什么程度的兼容才能讓整個生態中的多數軟件可以不修改而很好的工作?例如各種 ERP、CRM、GIS 軟件?各種數據庫中間件、ETL? 更不用說各種五花八門的應用平臺了。為了認識清楚這個問題,有必要對兼容做一些定義。
顯然,Oracle兼容性達到100%是不可能的事情。務實的態度只能是實現核心的功能,并且盡量保持兼容;萬一應用用到了還沒有實現的功能,那就必須要改寫。萬一功能還有一些地方不兼容,應用也必須要修改。涉及到第三方獨立軟件供應商的地方,例如 GIS、ERP、報表之類的,實際 上也基本上宣告了無法兼容。
如果我們重點關注功能,而暫時忽略性能、可靠性、可維護性、服務、平臺兼容、合規等之外;除了前面列出的核心功能之外,也還有大量的細節需要決定是否兼容。比如說對象名的大小寫、表達式的計算、數據類型的值域等等,都需要我們為Oracle的兼容性做出相對的工作。
聊了這么多,其實不管是Oracle兼容性或是其他軟件的兼容性都不是一朝一夕的事情,需要做出大量的測試,才能對其兼容性做出調整。在本站的Oracle教程中,我們不難看出Oracle兼容性總體而言還是很高的,對許多的軟硬件都能夠兼容,這也保證了Oracle的發展。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習