Oracle 12c可插拔資料庫深入理解
一、概述
1、Oracle 12c 可插拔資料庫體系結構
Oracle 12c 中引入了一個新功能就是Oracle Multitenant,這個功能可以在多租戶容器資料庫中,建立並維護許多個可插拔資料庫。Oracle Multitenant是Oracle企業版中需要額外付費的元件。然而,在所有Oracle版本中都可以在一個可插拔資料庫中免費使用它。
多租戶容器資料庫(CDB)是指能夠容納一個或者多個可插拔資料庫的資料庫。容器是指CDB中的資料檔案和元資料的集合。可插拔資料庫是指可以通過克隆另一個數據庫輕鬆建立的資料容器。如果有必要,也可將可插拔資料庫從一個CDB傳送到另一個CDB。
所有含有一組主資料檔案和元資料的CDB都是根容器。每個CDB也會含有種子容器,它是用於建立其它可插拔資料庫的模板。每個CDB都由一個根容器、一個種子容器和0個、1個或多個可插拔資料庫構成。
2、容器資料庫與可插拔資料庫
1、ORACLE MULTITEMENT CONTAINER DATABASE(CDB), 即多容器資料庫
是 ORACLE12c新引入的特性 , 這個特性允許CDB容器資料庫中建立並且維護多個數據庫,在CDB中建立的資料庫被稱為PDB , 每個PDB在CDB中是獨立的,在單獨使用PDB時與普通資料庫無差別。CDB根容器資料庫的主要作用就是容納所有相關的PDB元資料,以及在CDB中對雖有PDB進行管理。
2、多租戶環境組成
(1)ROOT: ROOT容器資料庫,是CDB環境中的根資料庫 ,在跟資料庫中含有主資料字典檢視,其中包含了與ROOT容器有關的元資料和CDB中包含的所有PDB資訊,在CDB環境中被標識為CDB$ROOT,每個CDB環境中只能有一個ROOT容器資料庫。
(2) PDB$SEED:PDB$SEED為PDB的種子,其中提供了資料檔案,在PDB環境中被標識為PDB$SEED,是建立PDB的模板 ,可以連線PDB$SEED但是不能執行任何事務,因為PDB$SEED是隻讀的,不可修改。
(3) PDBS:PDBS資料庫,在CDB環境中每個PDB都是獨立存在的, 與傳統ORACLE資料庫無差別,每個PDB擁有自己的資料檔案和OBJECTS,唯一的區別就是PDB可以插入到PDB中,以及從CDB中拔出。當用戶連線到PDB時不會感覺到根容器和其他PDB的存在。

二、實驗環境
主機 | 作業系統 | IP地址 | 資料庫版本 |
---|---|---|---|
Oracle | CentOS 7 | 192.168.100.135 | oracle 12c |
進入Oracle
[root@HOSTNAMEoracle ~]# su - oracle [oracle@HOSTNAMEoracle ~]$ sqlplus / as sysdba
三、CDB與PDB操作
檢視當前所在的容器
SQL> show con_name
-
查詢資料庫的所有容器
SQL> show pdbs;
-
更改為orclpdb,PDB容器
SQL> alter pluggable database orclpdb open;//修改可插拔庫orclpdb開啟狀態 SQL> alter session set container=orclpdb;//CDB下切換會話到PDB中 SQL> show con_name//檢視當前所在的容器
-
SQL> shutdown immediate//在PBD中關閉插拔資料庫 插接式資料庫已關閉。 SQL> startup//在PBD中關閉插拔資料庫 插接式資料庫已開啟。
-
更改回CDB容器
SQL> alter session set container=cdb$root;//切換模式到CDB SQL> show con_name//檢視
更多Oracle相關資訊見 Oracle 專題頁面 https://www.linuxidc.com/topicnews.aspx?tid=12
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2019-02/156932.htm