自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle 兼容性面面觀

數(shù)據(jù)庫(kù) Oracle
最高的境界是不做兼容式產(chǎn)品,大家都遵循一種標(biāo)準(zhǔn)。這樣當(dāng)用戶替換產(chǎn)品時(shí),是不需要考慮改造問(wèn)題的。這點(diǎn)是比較理想化的,但作為用戶在前期選擇產(chǎn)品時(shí),可將標(biāo)準(zhǔn)開(kāi)放性作為一個(gè)要素去考慮,同時(shí)對(duì)數(shù)據(jù)庫(kù)的使用上也盡量使用標(biāo)準(zhǔn)化功能,而非個(gè)性功能。

1. 漫談兼容性問(wèn)題

數(shù)據(jù)庫(kù)產(chǎn)品,是否被大規(guī)模使用?一方面是產(chǎn)品自身功能,另一方面是產(chǎn)品生態(tài)問(wèn)題。如果產(chǎn)品有著繁榮生態(tài),無(wú)疑對(duì)使用者來(lái)講會(huì)大大降低使用成本和風(fēng)險(xiǎn)。在這其中,Oracle 無(wú)疑是數(shù)據(jù)庫(kù)領(lǐng)域的領(lǐng)導(dǎo)者。在過(guò)去數(shù)十年時(shí)間里,Oracle 公司產(chǎn)品取得了巨大的成功,在國(guó)內(nèi)有著海量的用戶。當(dāng)面臨上面談到的遷移工作時(shí),兼容 Oracle 無(wú)疑對(duì)用戶來(lái)講好處多多。確實(shí),我們也看到國(guó)內(nèi)很多數(shù)據(jù)庫(kù)廠商將兼容 Oracle 作為產(chǎn)品的核心能力之一。下文將對(duì)這一能力做對(duì)比說(shuō)。在這之前,我們先談?wù)劶嫒菪缘膸讉€(gè)問(wèn)題。

不存在完美兼容

產(chǎn)品間是必然存在差異的,不存在完全兼容的兩個(gè)產(chǎn)品。也就是說(shuō),不要追求完美兼容,它只是降低使用新產(chǎn)品的一種手段,可能也不是最優(yōu)的方案。這點(diǎn)要有清醒的認(rèn)識(shí)。百分百兼容是不可能的事情,務(wù)實(shí)的態(tài)度是實(shí)現(xiàn)核心功能的兼容。

聚焦核心兼容能力

Oracle 的產(chǎn)品功能非常龐大,大量的功能意味著兼容工作量的巨大。同時(shí),前者還在不斷演進(jìn)發(fā)展中,作為模仿者的兼容壓力也會(huì)與日俱增。這里要強(qiáng)調(diào)盡量收斂兼容范圍,將其主流的、使用最多的功能作為重點(diǎn)兼容目標(biāo),而不是追大求全。

兼容在形,也在神

所謂形似神似,兼容不僅僅是功能表面的使用方式一致,更重要的是結(jié)果的一致。小到一個(gè)計(jì)算精度、排序方式、錯(cuò)誤碼提示,大到隔離級(jí)、SQL 支持、存儲(chǔ)過(guò)程等。往往形式的遷移通過(guò)工具轉(zhuǎn)換、人工改寫很容易完成,而后者需對(duì)比執(zhí)行結(jié)果,相對(duì)困難很多。

兼容有層次,等價(jià)亦可行

能做到完全兼容,代碼完全不改固然是好的;但是很多情況是只能提供等價(jià)實(shí)現(xiàn),這也是一種選擇。雖然需要修改代碼才能適配,但只要明確改寫方式并提供輔助工具完成,也不失為一種方法。后文在兼容能力對(duì)比上,也區(qū)分為兼容支持和等價(jià)改寫支持。

前瞻設(shè)計(jì),兼容標(biāo)準(zhǔn)而非產(chǎn)品

最高的境界是不做兼容式產(chǎn)品,大家都遵循一種標(biāo)準(zhǔn)。這樣當(dāng)用戶替換產(chǎn)品時(shí),是不需要考慮改造問(wèn)題的。這點(diǎn)是比較理想化的,但作為用戶在前期選擇產(chǎn)品時(shí),可將標(biāo)準(zhǔn)開(kāi)放性作為一個(gè)要素去考慮,同時(shí)對(duì)數(shù)據(jù)庫(kù)的使用上也盡量使用標(biāo)準(zhǔn)化功能,而非個(gè)性功能。

2. 國(guó)內(nèi)主流產(chǎn)品兼容度

隨著近些年來(lái)數(shù)據(jù)庫(kù)替換趨勢(shì)愈演愈烈,國(guó)內(nèi)很多數(shù)據(jù)庫(kù)廠商將Oracle兼容度作為產(chǎn)品核心能力之一。下文收集了國(guó)內(nèi)部分廠商的兼容情況,從替換中的核心功能點(diǎn)加以對(duì)比說(shuō)明。以下內(nèi)容是根據(jù)各家產(chǎn)品對(duì)外的官方文檔內(nèi)容整理而得,因文檔化差異及收集范圍有限,可能存在較大偏差,僅供參考。其中:色塊多少代表支持程度(1~5),綠色代表兼容支持,紅色代表等價(jià)支持;缺失部分為未查詢到明確信息(不代表不支持)。

1).產(chǎn)品介紹

OceanBase

OceanBase 企業(yè)版是一款完全自研的企業(yè)級(jí)原生分布式數(shù)據(jù)庫(kù),在普通硬件上實(shí)現(xiàn)金融級(jí)高可用,首創(chuàng)“三地五中心”城市級(jí)故障自動(dòng)無(wú)損容災(zāi)新標(biāo)準(zhǔn),刷新 TPC-C 標(biāo)準(zhǔn)測(cè)試,單集群規(guī)模超過(guò) 1500 節(jié)點(diǎn),具有云原生、強(qiáng)一致性、高度兼容 Oracle/MySQL 等特性。

PolarDB-O

云原生關(guān)系型數(shù)據(jù)庫(kù) PolarDB O 引擎(兼容Oracle語(yǔ)法)是由阿里巴巴自主研發(fā)的,高度兼容 Oracle 的高性能企業(yè)級(jí)數(shù)據(jù)庫(kù)?;谠圃鎯?chǔ)計(jì)算分離架構(gòu)實(shí)現(xiàn)高容量存儲(chǔ)及分鐘級(jí)彈性擴(kuò)縮容能力。專注解決企業(yè)數(shù)字化轉(zhuǎn)型中數(shù)據(jù)庫(kù)系統(tǒng)的平滑遷移、安全合規(guī)和成本優(yōu)化等問(wèn)題。

KingbaseES

KingbaseES 是一款面向大規(guī)模并發(fā)交易處理的企業(yè)級(jí)關(guān)系型數(shù)據(jù)庫(kù)。該產(chǎn)品支持嚴(yán)格的ACID特性、結(jié)合多核架構(gòu)的極致性能、行業(yè)最高的安全標(biāo)準(zhǔn),以及完備的高可用方案,并提供可覆蓋遷移、開(kāi)發(fā)及運(yùn)維管理全使用周期的智能便捷工具。產(chǎn)品融合了人大金倉(cāng)在數(shù)據(jù)庫(kù)領(lǐng)域幾十年的產(chǎn)品研發(fā)和企業(yè)級(jí)應(yīng)用經(jīng)驗(yàn),可滿足各行業(yè)用戶多種場(chǎng)景的數(shù)據(jù)處理需求。

DM

DM8 是達(dá)夢(mèng)公司在總結(jié) DM 系列產(chǎn)品研發(fā)與應(yīng)用經(jīng)驗(yàn)的基礎(chǔ)上,堅(jiān)持開(kāi)放創(chuàng)新、簡(jiǎn)潔實(shí)用的理念,推出的新一代自研數(shù)據(jù)庫(kù)。DM8 吸收借鑒當(dāng)前先進(jìn)新技術(shù)思想與主流數(shù)據(jù)庫(kù)產(chǎn)品的優(yōu)點(diǎn),融合了分布式、彈性計(jì)算與云計(jì)算的優(yōu)勢(shì),對(duì)靈活性、易用性、可靠性、高安全性等方面進(jìn)行了大規(guī)模改進(jìn),多樣化架構(gòu)充分滿足不同場(chǎng)景需求,支持超大規(guī)模并發(fā)事務(wù)處理和事務(wù)-分析混合型業(yè)務(wù)處理,動(dòng)態(tài)分配計(jì)算資源,實(shí)現(xiàn)更精細(xì)化的資源利用、更低成本的投入。

2).兼容列表

圖片

用戶角色

用戶及角色部分,是使用數(shù)據(jù)庫(kù)第一步。這部分功能相對(duì)簡(jiǎn)單,各家基本也都完成等價(jià)實(shí)現(xiàn)。針對(duì)數(shù)據(jù)庫(kù)替換場(chǎng)景,這部分的工作量相對(duì)不大。

數(shù)據(jù)類型

數(shù)據(jù)類型部分,情況則相對(duì)復(fù)雜。Oracle 支持的數(shù)據(jù)類型范圍較廣,國(guó)內(nèi)產(chǎn)品大部分實(shí)現(xiàn)兼容或等價(jià)支持,基本可滿足替換要求。不支持的部分主要是部分使用場(chǎng)景較少或Oracle即將廢棄的數(shù)據(jù)類型。但這里需要注意的是,雖然國(guó)內(nèi)產(chǎn)品支持大部分?jǐn)?shù)據(jù)類型,但在處理精度、存儲(chǔ)空間等方面與Oracle還是有所區(qū)別。很多情況下,不能簡(jiǎn)單照搬原有的數(shù)據(jù)結(jié)構(gòu)定義,還需要有所甄別調(diào)整。很多廠商也提供了遷移工具,方便完成數(shù)據(jù)類型的對(duì)應(yīng)轉(zhuǎn)換。

字符集及排序

字符集方面,常見(jiàn)的中文字符集(gbk、gb18030)及utf8系列字符集是支持重點(diǎn)。各廠商產(chǎn)品基本支持這些字符集,可滿足需要。針對(duì)字符集排序方面,各家支持力度不同,有的提供多樣的排序方式,有的則支持較少。

數(shù)據(jù)庫(kù)對(duì)象

在數(shù)據(jù)庫(kù)對(duì)象方面,Oracle 支持非常豐富的對(duì)象類型,包括但不限于表、索引、分區(qū)、視圖、序列、同義詞、觸發(fā)器、DB Link等等。針對(duì)上述類型對(duì)象,國(guó)內(nèi)產(chǎn)品都做了一定程度的兼容。但需要指出的是,Oracle 在這些對(duì)象上的功能是比較強(qiáng)大的,國(guó)內(nèi)產(chǎn)品在支持上通常也只完成其基本功能的兼容,其大量復(fù)雜功能仍然是不具備的。不能說(shuō)遷移完成即可,還需分析其原有使用的功能范圍,畢竟遷移后功能無(wú)法完全覆蓋。很多廠商提供的遷移工具,可方便完成數(shù)據(jù)庫(kù)對(duì)象的遷移工作。

函數(shù)

函數(shù)部分,Oracle支持?jǐn)?shù)百種函數(shù),可以說(shuō)極大豐富了數(shù)據(jù)庫(kù)處理數(shù)據(jù)的能力。各廠商產(chǎn)品也都做了大量函數(shù)部分的工作。針對(duì)主要的函數(shù),基本都可實(shí)現(xiàn)兼容或等價(jià)實(shí)現(xiàn)。這里需要注意的是,因?yàn)楹瘮?shù)在大量應(yīng)用邏輯中使用,因而采用兼容模式會(huì)大幅降低代碼改造的工作量,當(dāng)然有些公司提供的遷移工具中可實(shí)現(xiàn)代碼邏輯的函數(shù)轉(zhuǎn)換工作。

SQL語(yǔ)法

SQL 語(yǔ)法部分,是 Oracle 頗為復(fù)雜的部分,很多基于 Oracle 開(kāi)發(fā)的系統(tǒng)大量使用了 Oracle 的復(fù)雜 SQL。這些也成為后續(xù)改造遷移工作的重點(diǎn)和難點(diǎn)。各廠商都完成了大量 SQL 語(yǔ)法方面的兼容支持工作。但這部分的覆蓋范圍非常廣,目前各廠商對(duì)外文檔中對(duì)這些的能力描述還都較少。也有部分廠商提供遷移工具,可實(shí)現(xiàn) SQL 語(yǔ)法的轉(zhuǎn)換能力,可以減少遷移改造工作量。此外,這部分還需要關(guān)注一點(diǎn)是兼容 SQL 語(yǔ)法不僅是語(yǔ)句可執(zhí)行,其語(yǔ)義也應(yīng)是等價(jià)的,即執(zhí)行結(jié)果是完全一致的。這方面還需要大量用戶改造后的比對(duì)驗(yàn)證工作,也希望各廠商能提供此功能方便用戶做好遷移工作。

過(guò)程化語(yǔ)言

過(guò)程化語(yǔ)言,是指在數(shù)據(jù)庫(kù)端處理數(shù)據(jù)的一種語(yǔ)言。作為近存儲(chǔ)端處理數(shù)據(jù)的一種手段,其處理是比較高效的。當(dāng)然這種方式會(huì)依賴于數(shù)據(jù)庫(kù)實(shí)現(xiàn),且從代碼管理角度看不是很好維護(hù)。Oracle 支持非常豐富的過(guò)程化語(yǔ)言支持,各廠商都在一定程度做了支持,但相對(duì)而言還有限。部分廠商提供的遷移工具,也支持將過(guò)程化語(yǔ)言轉(zhuǎn)化為外部程序處理方式來(lái)解決。從長(zhǎng)期角度來(lái)講,過(guò)程化語(yǔ)言還是建議逐步減少使用,盡量減少依賴于數(shù)據(jù)庫(kù)實(shí)現(xiàn)。此外,在分布式架構(gòu)下,過(guò)程化語(yǔ)言的支持更為困難,不同產(chǎn)品差異更大;很多分布式數(shù)據(jù)庫(kù)產(chǎn)品都不支持過(guò)程化語(yǔ)言。

數(shù)據(jù)字典/系統(tǒng)視圖

數(shù)據(jù)字典,是元數(shù)據(jù)的存儲(chǔ)。系統(tǒng)視圖,是反映系統(tǒng)運(yùn)行狀態(tài)的一個(gè)窗口。通過(guò)它們可以快速了解系統(tǒng)的多方面情況。Oracle 數(shù)據(jù)庫(kù)提供了非常多的數(shù)據(jù)字典和系統(tǒng)視圖。很多用戶也會(huì)基于這些字典和視圖,去構(gòu)建自己的監(jiān)控、DEVOPS系統(tǒng)等。因此,兼容原數(shù)據(jù)庫(kù)的字典和視圖對(duì)用戶來(lái)說(shuō)很有意義。目前各廠商都在一定程度上做了支持,但差異還比較明顯。

SQL引擎

SQL 引擎部分,是 Oracle 內(nèi)核最為強(qiáng)大的組件,提供如查詢改寫、預(yù)編譯、CBO、執(zhí)行計(jì)劃(展示、緩存、綁定、管理)、自適應(yīng)游標(biāo)、提示等非常豐富的能力,可對(duì) SQL 語(yǔ)句及執(zhí)行做到全方位的管理。這方面國(guó)產(chǎn)數(shù)據(jù)庫(kù)的差距還比較明顯,經(jīng)常能聽(tīng)到這樣的聲音"在 Oracle 數(shù)據(jù)庫(kù)跑的很好的SQL,在國(guó)產(chǎn)庫(kù)上執(zhí)行很慢",這大多都是 SQL 引擎差異造成的。

安全特性

在安全能力上,Oracle 提供了權(quán)限、鑒權(quán)、加密、審計(jì)、標(biāo)簽、SSL、防火墻、VPD、Wallet 等諸多安全功能。這方面國(guó)內(nèi)廠商產(chǎn)品較 Oracle 還有不小的差距。一方面各家還在持續(xù)增強(qiáng)安全能力,一方面通過(guò)數(shù)據(jù)庫(kù)與生態(tài)產(chǎn)品合作,解決企業(yè)安全問(wèn)題。

備份恢復(fù)

備份恢復(fù),是保障數(shù)據(jù)安全的底線。Oracle 提供了完善的備份恢復(fù)能力,這方面國(guó)內(nèi)廠商產(chǎn)品也基本覆蓋了常規(guī)的備份恢復(fù)需求。但針對(duì)更高的需求,如備份集壓縮、檢驗(yàn)、租戶備份等,還是有一定差距。

高可用

在高可用方面,Oracle 提供了RAC、ADG等多種架構(gòu)選擇;同時(shí)還支持例如閃回等能力。通過(guò)多種方式保證系統(tǒng)可用性。國(guó)內(nèi)廠商產(chǎn)品有的在架構(gòu)層面仿照 Oracle 做了實(shí)現(xiàn),提供多種架構(gòu)方案;有的則通過(guò)分布式架構(gòu)下的多副本機(jī)制,提供較 Oracle 更為靈活及保障性更高的實(shí)現(xiàn)。

訪問(wèn)接口

Oracle 可通過(guò)很多的數(shù)據(jù)訪問(wèn)接口,如常見(jiàn)的JDBC、OLE DB、ODBC、.NET、Python、Go、PHP、OCI、Pro*C等等,幾乎面對(duì)不同訪問(wèn)語(yǔ)言都有對(duì)應(yīng)的訪問(wèn)接口可用。特別是很多傳統(tǒng)應(yīng)用基于C、COBOL、ADA等開(kāi)發(fā),也提供了對(duì)應(yīng)接口。這方面,國(guó)內(nèi)廠商產(chǎn)品大多完成對(duì)主流訪問(wèn)接口的支持,部分小眾化的語(yǔ)言還不支持。

生態(tài)兼容

Oracle 具備龐大的生態(tài),上下游有大量的生態(tài)企業(yè)支持,組成了龐大的生態(tài)圈。但因其私有通信協(xié)議及較為封閉的環(huán)境,在生態(tài)兼容上國(guó)內(nèi)廠商很難去共享其已有生態(tài)。這點(diǎn)與 MySQL 等開(kāi)源產(chǎn)品不同,后者的開(kāi)放性保證其生態(tài)繁榮發(fā)展。

異構(gòu)遷移

最后談到的就是在 Oracle 向國(guó)產(chǎn)數(shù)據(jù)庫(kù)遷移中,能提供的相關(guān)能力。這里主要包括結(jié)構(gòu)、數(shù)據(jù)、過(guò)程遷移能力以及研發(fā)測(cè)試階段能提供的相關(guān)輔助能力(如回放等)。這方面各廠商都提供外部工具輔助用戶完成遷移動(dòng)作。

責(zé)任編輯:武曉燕 來(lái)源: 韓鋒頻道
相關(guān)推薦

2013-03-25 13:52:39

SDN軟件定義網(wǎng)絡(luò)Hybird

2020-04-08 09:57:53

漏洞安全漏洞漏洞管理

2019-09-11 17:16:34

DockerGitHubWindows

2009-12-30 15:10:44

摩卡

2009-02-16 09:47:00

IPTV技術(shù)多媒體運(yùn)營(yíng)

2011-05-30 17:31:26

自動(dòng)化測(cè)試

2013-07-22 17:49:52

Ubuntu虛擬機(jī)

2009-07-21 13:01:07

ASP.NET上傳文件

2010-09-01 17:13:56

無(wú)線局域網(wǎng)WLAN

2009-10-28 11:35:25

Linux服務(wù)器優(yōu)化

2009-07-14 10:56:21

MyEclipse快捷插件

2010-07-08 10:03:39

動(dòng)態(tài)語(yǔ)言PythonRuby

2015-07-22 09:54:48

互聯(lián)網(wǎng)+發(fā)達(dá)國(guó)家

2022-02-22 06:11:46

數(shù)字化轉(zhuǎn)型企業(yè)云數(shù)據(jù)庫(kù)

2010-02-26 17:47:15

2010-11-23 09:29:49

Lync微軟

2010-01-13 10:34:23

VB.NET局部靜態(tài)變

2011-07-22 10:58:44

Linux社區(qū)Ubuntu

2011-08-24 10:44:53

Fedora社區(qū)Linux

2011-07-28 09:49:43

Linux社區(qū)Debian
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)