Oracle20C多租戶_1.2數(shù)據(jù)庫(kù)與實(shí)例介紹-創(chuàng)新互聯(lián)

1.2  數(shù)據(jù)庫(kù)和實(shí)例

Oracle 數(shù)據(jù)庫(kù)服務(wù)器由一個(gè)數(shù)據(jù)庫(kù)和至少一個(gè)數(shù)據(jù)庫(kù)實(shí)例組成,通常簡(jiǎn)稱為一個(gè)實(shí)例。

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)豐臺(tái),10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

因?yàn)橐粋€(gè)實(shí)例和一個(gè)數(shù)據(jù)庫(kù)是如此緊密地聯(lián)系在一起,所以 Oracle 數(shù)據(jù)庫(kù)這個(gè)術(shù)語(yǔ)有時(shí)同時(shí)指實(shí)例和數(shù)據(jù)庫(kù)。 最嚴(yán)格地說(shuō),這些術(shù)語(yǔ)有下列含義 :

l   數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)是一組位于磁盤上的文件,用于存儲(chǔ)用戶數(shù)據(jù)。 這些數(shù)據(jù)文件可以獨(dú)立于數(shù)據(jù)庫(kù)實(shí)例而存在。 從 Oracle 數(shù)據(jù)庫(kù) 20c 開始, “ 數(shù)據(jù)庫(kù) ” 特指多租戶容器數(shù)據(jù)庫(kù) (CDB) 、可插拔數(shù)據(jù)庫(kù) (PDB) 或應(yīng)用程序容器的數(shù)據(jù)文件。

l   實(shí)例

實(shí)例是一組命名的內(nèi)存結(jié)構(gòu),用于管理數(shù)據(jù)庫(kù)文件。 數(shù)據(jù)庫(kù)實(shí)例由共享內(nèi)存區(qū)域 ( 稱為系統(tǒng)全局區(qū)域 (SGA)) 和一組后臺(tái)進(jìn)程組成。 實(shí)例可以獨(dú)立于數(shù)據(jù)庫(kù)文件而存在。

1.2.1  多租戶架構(gòu)

多租戶體系結(jié)構(gòu)使 Oracle 數(shù)據(jù)庫(kù)成為 CDB 。

每個(gè) Oracle 數(shù)據(jù)庫(kù)必須包含或能夠包含另一個(gè)數(shù)據(jù)庫(kù)。 例如, CDB 包含 pdb ,而應(yīng)用程序容器包含應(yīng)用程序 pdb 。 PDB 由 CDB 或應(yīng)用程序容器包含,而應(yīng)用程序容器由 CDB 包含。

從 Oracle Database 20c 開始,多租戶容器數(shù)據(jù)庫(kù)是唯一受支持的體系結(jié)構(gòu)。 在以前的版本中, Oracle 支持非容器數(shù)據(jù)庫(kù) (non-container databases, non-CDBs) 。

1.2.1.1  CDBs

一個(gè) CDB 包含一個(gè)或多個(gè)用戶創(chuàng)建的 pdb 和應(yīng)用程序容器。

在物理級(jí)別上, CDB 是一組文件 : 控制文件、在線重做日志文件和數(shù)據(jù)文件。 由數(shù)據(jù)庫(kù)實(shí)例管理以上文件稱為 CDB 。

下圖顯示了一個(gè) CDB 和一個(gè)相關(guān)的數(shù)據(jù)庫(kù)實(shí)例。

·          圖 1-1 數(shù)據(jù)庫(kù)實(shí)例與 CDB

  Oracle 20C 多租戶_1.2 數(shù)據(jù)庫(kù)與實(shí)例介紹

1.2.1.2  PDBs

PDB 是 schemas 、 schema 對(duì)象和 nonschema 對(duì)象的可移動(dòng)集合,在應(yīng)用程序中作為單獨(dú)的數(shù)據(jù)庫(kù)出現(xiàn)。

在物理級(jí)別,每個(gè) PDB 都有自己的一組數(shù)據(jù)文件,用于存儲(chǔ) PDB 的數(shù)據(jù)。 CDB 包括所有 pdb 數(shù)據(jù)文件,以及一組存儲(chǔ) CDB 本身元數(shù)據(jù)的系統(tǒng)數(shù)據(jù)文件。

要移動(dòng)或存檔 PDB ,可以拔掉它。 unplugged PDB 由 PDB 數(shù)據(jù)文件和元數(shù)據(jù)文件組成。 unplugged PDB 在插入到 CDB 之前是不可用的。

下圖顯示了一個(gè)名為 MYCDB 的 CDB 。

·          圖 1-2 CDB 中的 PDBs

Oracle 20C 多租戶_1.2 數(shù)據(jù)庫(kù)與實(shí)例介紹 

在物理上, MYCDB 是一個(gè) Oracle 數(shù)據(jù)庫(kù),即與一個(gè)實(shí)例關(guān)聯(lián)的一組數(shù)據(jù)文件。 盡管在 Oracle Real 應(yīng)用程序集群中可以有多個(gè)實(shí)例,但 MYCDB 只有一個(gè)數(shù)據(jù)庫(kù)實(shí)例和一組數(shù)據(jù)庫(kù)文件。

MYCDB 包含兩個(gè) pdb: hrpdb 和 salespdb 。 如圖 1-2 所示,這些 pdb 在各自的應(yīng)用程序中顯示為單獨(dú)的、獨(dú)立的數(shù)據(jù)庫(kù)。 應(yīng)用程序不知道它是連接到 CDB 還是 PDB 。

要管理 CDB 本身或其中的任何 PDB ,您可以連接到 CDB root 。 root 是所有 pdb 和應(yīng)用程序容器所屬的模式、模式對(duì)象和非模式對(duì)象的集合。

·          1.2.1.3 應(yīng)用程序容器

應(yīng)用程序容器是 CDB 中一個(gè)可選的、用戶創(chuàng)建的容器,用于存儲(chǔ)一個(gè)或多個(gè)應(yīng)用程序的數(shù)據(jù)和元數(shù)據(jù)。

application( 也稱為主應(yīng)用程序定義 ) 是存儲(chǔ)在 application root  中的一組已命名的、版本化的公共數(shù)據(jù)和元數(shù)據(jù)。 例如, application 可能包括表、視圖、用戶帳戶和 PL/SQL 包的定義,這些定義對(duì)于一組 pdb 是通用的。

在某些方面,應(yīng)用程序容器充當(dāng) CDB 中的特定于應(yīng)用程序的 CDB 。 與 CDB 本身一樣,一個(gè)應(yīng)用程序容器可以包含多個(gè)應(yīng)用程序 pdb ,并允許這些 pdb 共享元數(shù)據(jù)和數(shù)據(jù)。 在物理級(jí)別上,應(yīng)用程序容器 像 PDB 一樣 , 具 有自己的一組數(shù)據(jù)文件。

例如, SaaS 部署可以使用多個(gè)應(yīng)用程序 pdb ,每個(gè) pdb 用于一個(gè)單獨(dú)的客戶,該客戶共享應(yīng)用程序元數(shù)據(jù)和數(shù)據(jù)。 例如,在下面的圖中, sales_app 是應(yīng)用程序根目錄中的應(yīng)用程序模型。 名為 cust1_pdb 的應(yīng)用程序只包含客戶 1 的銷售數(shù)據(jù),而名為 cust2_pdb 的應(yīng)用程序只包含客戶 2 的銷售數(shù)據(jù)。 對(duì)于單個(gè)客戶 PDBs ,可以進(jìn)行插入、撥出、克隆和其他 pdb 級(jí)操作。

·          圖 1-3 SaaS 用例

  Oracle 20C 多租戶_1.2 數(shù)據(jù)庫(kù)與實(shí)例介紹

·          1.2.2 Sharding 架構(gòu)

Oracle Sharding 是一種基于跨多個(gè) pdb 的數(shù)據(jù)水平分區(qū)的數(shù)據(jù)庫(kù)擴(kuò)展技術(shù)。 應(yīng)用程序?qū)?PDBs 池視為單個(gè)邏輯數(shù)據(jù)庫(kù)。

sharding 對(duì)于 OLTP 應(yīng)用程序的主要好處包括線性可伸縮性、故障包容和地理數(shù)據(jù)分布。 sharding 非常適合在 Oracle 云中部署。 與實(shí)現(xiàn) sharding 的 NoSQL 數(shù)據(jù)存儲(chǔ)不同, Oracle sharding 提供了 sharding 的優(yōu)點(diǎn),同時(shí)又不犧牲企業(yè) RDBMS 的功能。

在 sharding 架構(gòu)中,每個(gè) CDB 都托管在一個(gè)專用服務(wù)器上,服務(wù)器上有自己的本地資源 :CPU 、內(nèi)存、 flash 或磁盤。 可以將 PDB 指定為 shard 。 來(lái)自不同 cdb 的 PDB  shard 組成一個(gè)邏輯數(shù)據(jù)庫(kù),稱為 sharded   數(shù)據(jù)庫(kù)。 同一個(gè) CDB 中的兩個(gè) shard 不能是同一個(gè) sharded 數(shù)據(jù)庫(kù)的成員。 但是,在同一個(gè) CDB 中,一個(gè) PDB 可以在一個(gè) sharded 數(shù)據(jù)庫(kù)中,另一個(gè) PDB 可以在一個(gè)單獨(dú)的 sharded 數(shù)據(jù)庫(kù)中。

水平分區(qū)將一個(gè)數(shù)據(jù)庫(kù)表拆分,每個(gè)分片包含具有相同列但不同行的子集。 以這種方式分割的表也稱為 sharded table 。 下圖顯示了一個(gè)經(jīng)過(guò)水平分割的 sharded table ,它橫跨三個(gè) shards ,每個(gè) shard 都是單獨(dú) CDB 中的 PDB 。

圖 1-4 水平分區(qū)的 sharded table

Oracle 20C 多租戶_1.2 數(shù)據(jù)庫(kù)與實(shí)例介紹

以下示例是跨多個(gè) CDBs 存儲(chǔ)客戶帳戶數(shù)據(jù)。 例如, ID 為 28459361 的客戶可以查詢他的記錄。 下圖顯示了一種可能的結(jié)構(gòu)。 客戶請(qǐng)求通過(guò)連接池路由,其中分片控制器 ( 網(wǎng)絡(luò)監(jiān)聽器 ) 將請(qǐng)求定向到適當(dāng)?shù)?PDB 分片,該分片包含所有客戶行。

Figure 1-5 Oracle Sharding Architecture

Oracle 20C 多租戶_1.2 數(shù)據(jù)庫(kù)與實(shí)例介紹

分享名稱:Oracle20C多租戶_1.2數(shù)據(jù)庫(kù)與實(shí)例介紹-創(chuàng)新互聯(lián)
本文地址:http://www.muchs.cn/article18/pccgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、微信公眾號(hào)、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司