Oracle

了解 oracle 可插拔數據庫

  • April 2, 2022

我正在學習一點關於 Oracle 數據庫的知識。我認為:

  • 在以前的 Oracle DB 版本(版本 <= 11ng)中,每個 DB 都應該安裝在單獨的伺服器中。

    1. 這個說法是真的嗎?我們不能在每個 Oracle 安裝實例中創建多個數據庫嗎?或者我在這裡遺漏了一些東西。
  • 為了解決這個問題,oracle 更新了其架構並引入了可插拔數據庫。

    1. 為什麼不直接使用與其他 DBMS 系統(如 MySQL)相同的體系結構,您可以在單個 DBMS 安裝中擁有N個數據庫?

我猜我沒有完全理解第一句話,因為我從來沒有使用過 Oracle 數據庫。

這裡發生了兩件事:

首先,Oracle 對“數據庫”的定義與 MySQL 等其他“數據庫”不同。當 Oracle 談到數據庫時,它們指的是在伺服器上執行的軟體、數據文件和程序的物理實例。每個數據庫實例可能包含成百上千個單獨的使用者/模式,每個使用者/模式都有自己的表和其他對象。可以在單個伺服器上執行多個數據庫實例——甚至同時使用不同版本的軟體。實際上,在單個伺服器上操作多個實例/數據庫(通常但不總是具有相同版本)是很常見的。

大多數其他數據庫引擎將“數據庫”等同於對象的單一模式,並且通常僅支持在單個伺服器上安裝軟體,儘管它們可能容納數百或數千個使用者/模式。

其次,Oracle 的可插拔數據庫(在 Oracle 12c 中引入)是數據庫實例(正在執行的程序、數據文件等)的虛擬化,允許它們共享一些通用的系統級資源。容器數據庫 (CDB) 管理這些系統級資源,並且可以託管許多可插拔數據庫 (PDB)。單個伺服器可以託管多個不同軟體版本的容器數據庫,每個容器數據庫都有自己的可插拔數據庫。每個可插拔數據庫可能包含成百上千的使用者/模式。可插拔數據庫架構允許整合計算和儲存資源:一種更高密度的架構,可以更有效地利用本地和雲硬體。

引用自:https://dba.stackexchange.com/questions/310450