Oracle 18c,傳說中全球第一款自動駕駛資料庫,正式到來。18c不僅僅是資料庫,更是一種雲服務,包括著Oracle資料庫18c,Oracle雲基礎架構和Oracle雲工具,機器學習,能夠實現自治駕駛,自治安全,自治修復。資料庫自治是否意味著DBA會失業的問題一直困擾著廣大的Oracle DBA們,今天我們來詳細揭曉一下Oracle 18c中的核心特性,去真實地感知我們即將面臨的處境。
首先我們從Oracle資料庫的生命週期表中可以看出,18c並不意味著跟以前我們所熟知的11g 12c有天壤之別。事實上,18c在Oracle的產品體系中的真實身份是 Oracle12.2.0.2.

接下來我們詳細講解Oracle18c中的核心新特性,知己知彼,才能從容地擁抱變化。
part 1:多租戶新特性詳解:
新特性1:可重新整理的PDB切換
在12.2中,可以通過熱克隆的方式,將一個CDB中的PDB複製到另一個CDB中,以線上的方式複製檔案實現零當機。
而18c中,增加了重新整理 refresh的功能,當其中一個PDB出現故障或其他原因,需要與另一個PDB保持一致時,只需要通過refresh命令,一鍵實現同步。並可以設定頻率保持實時更新。

CDB 1:create pluggable database Red;
CDB2:create pluggable database Red from Red@CDB1_Link
create pluggable database Gold;
複製程式碼
CDB1:create pluggable database Brown;
CDB2: create pluggable database Grey;
CDB1:refresh mode every 2 minutes;
此特性可以用於計劃內的switchover。使用如下命令:
alter pluggable databaseGrey
refresh mode every 2 minutes
fromGrey@dblink switchover;
也可用於計劃外的failover。命令如下(在正常的PDB執行):
alter pluggable database Grey refresh;
alter pluggable database Grey refresh mode none;
alter pluggable database Grey open read write;
新特性2:快照轉盤
這個功能有點類似虛擬機器中的快照。當為PDB啟用快照功能後,您可以建立最多8個快照,類似一個旋轉的轉盤一樣,當多餘8個後,最老的快照會被刪除。通過快照轉盤可以方便地實現基於時間點的恢復。

alter pluggable database Hot_Clone open;
在整個快照盤中,所有快照會以時間為軸進行輪播,當達到snapshot limit時,會自動覆蓋最早的snapshot。 如下:

在18c中,如果CDB中的PDB需要複製(clone),RMAN可以複製CDB中未加密的PDB或表空間,以便在目標CDB中加密它們。 使用DUPLICATE命令的AS ENCRYPTED子句執行復制。同樣,使用DUPLICATE命令的AS DECRYPTED子句將加密的PDB複製到目標CDB而不使用加密。
如下圖,CDB2加密,CDB3不加密。但可以暢通實現PDB在二者之間的複製。

CDB fleet 是不同CDB的集合,可以作為一個邏輯CDB進行管理。
統一管理帶來的好處是:
1、為大量可擴充套件性和許多CDB的集中管理提供底層基礎架構
2、為應用程式提供超過最大數量的PDB
3、管理PDB的適當伺服器資源,例如CPU,記憶體,I / O速率和儲存系統。
在CDB fleet中,有一個作為leader的CDB,負責整體資源的協調和管理,並可以通過該CDB直接在其他CDBzhong 直接執行操作。這個CDB叫做 CDB Lead。而其他在fleet中的 CDB則為普通的CDB Member。
其操作關係如下:

1、從主要CDB監控和收集CDB的診斷資訊
2、在CDB機群的不同PDB中查詢Oracle提供的物件,例如DBA檢視
3、作為一箇中心位置,可以在其中檢視有關多個CDB的所有PDB的資訊和狀態
新特性5:Container Map
Container Map可以基於儲存在CDB表列中的值定義基於PDB的分割槽策略。通過該功能將CDB的表結構和管理機制可以繼承到對應的PDB當中。 選擇常用且永不更新的列。
當在CDB的 application root中建立了Container map後,PDB中會有對應的 Map-tab。當Container Map的內容發生更新時,會自動同步到map-tab當中。
