共計 2635 個字符,預(yù)計需要花費 7 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Oracle 12c 如何使用 SQL*Plus 來創(chuàng)建與刪除應(yīng)用程序容器,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
可以使用不同方式來創(chuàng)建應(yīng)用程序容器,比如使用 CDB seed,克隆現(xiàn)有的 PDB 或 Non-CDB,插入一個被拔出的 PDB,也可以從 CDB 中刪除應(yīng)用程序容器。
創(chuàng)建應(yīng)用程序容器
可以使用 create pluggable database 語句來在 CDB 中創(chuàng)建應(yīng)用程序容器。當執(zhí)行 create pluggable database 語句時指定 as application container 子句可以創(chuàng)建一個新的應(yīng)用程序容器。應(yīng)用程序容器由應(yīng)用程序 root 與用來存儲一個或多個應(yīng)用程序數(shù)據(jù)的一組應(yīng)用程序 PDB 組成。應(yīng)用程序 PDB 可以被附加到應(yīng)用程序 root 中,并且可以選擇快速地創(chuàng)建應(yīng)用程序 seed 與簡單地創(chuàng)建新的應(yīng)用程序 PDB。應(yīng)用程序 PDB 與應(yīng)用程序 root 可以共享應(yīng)用程序公共對象。
有三種類型的應(yīng)用程序公共對象:
. 元數(shù)據(jù)鏈接應(yīng)用程序公共對象存儲特定對象的元數(shù)據(jù),比如表。因此容器可以共享有相同結(jié)構(gòu)沒有相同數(shù)據(jù)的應(yīng)用程序公共對象。
. 數(shù)據(jù)鏈接應(yīng)用程序公共對象只在應(yīng)用程序 root 中定義一次并且在應(yīng)用程序 PDB 的上下文中共享只讀對象。
. 擴展數(shù)據(jù)鏈接應(yīng)用程序公共對象在應(yīng)用程序 root 中存儲共享數(shù)據(jù)但也允許應(yīng)用程序 PDB 來將數(shù)據(jù)添加到對象中。添加的數(shù)據(jù)是本地數(shù)據(jù)它對于每個應(yīng)用程序 PDB 來說是唯一的。
通過執(zhí)行 creatae pluggable database as application container 子句可以創(chuàng)建應(yīng)用程序容器。也可以使用以下技術(shù)來創(chuàng)建應(yīng)用程序容器:
. 使用 CDB seed
. 克隆現(xiàn)有的 PDB 或 Non-CDB
. 遷移 PDB
. 插入被拔出的 PDB
當當前容器是 CDB 的 root 并且在執(zhí)行 create pluggable database 語句時指定了 as application container 子句時,將創(chuàng)建應(yīng)用程序容器。
遷移現(xiàn)有的應(yīng)用程序為應(yīng)用程序容器
可以通過使用現(xiàn)有的 PDB 來創(chuàng)建應(yīng)用程序容器。當遷移現(xiàn)有應(yīng)用程序為一個應(yīng)用程序容器時必須完成額外的任務(wù)。要附加的 PDB 必須包含應(yīng)用程序數(shù)據(jù)庫對象,包含它們的數(shù)據(jù),并且對于應(yīng)用程序所訪問的相關(guān)數(shù)據(jù)庫對象必須執(zhí)行 dbms_pdb 中的過程。當應(yīng)用程序公共用戶,角色或 profiles 存放在應(yīng)用程序 root 中,對與應(yīng)用程序相關(guān)的數(shù)據(jù)庫對象必須執(zhí)行 dbms_pdb 包。在應(yīng)用程序遷移為應(yīng)用程序容器后,可以在應(yīng)用程序容器中創(chuàng)建應(yīng)用程序 PDB,并且可以使用現(xiàn)有的 PDB 來創(chuàng)建應(yīng)用程序 PDB。
創(chuàng)建應(yīng)用程序容器的準備
在創(chuàng)建應(yīng)用程序容器之前必須完達到以下條件:
.CDB 必須存在
.CDB 必須處于讀寫模式
. 當前容器如果是 CDB 的 root,那么當前用戶必須是一個公共用戶
. 當前用戶必須有 create pluggable database 系統(tǒng)權(quán)限
. 對于每個應(yīng)用程序容器必須要決定一個唯一的應(yīng)用程序容器名字。每個應(yīng)用程序容器名字必須對于單個 CDB 中的所有容器來說是唯一的,并且每個應(yīng)用程序容器名字必須在特定監(jiān)聽所監(jiān)聽的所有 CDB 范圍內(nèi)是唯一的。應(yīng)用程序容器名字用來區(qū)分 CDB 中的應(yīng)用程序容器。應(yīng)用程序容器名字遵守與服務(wù)名一樣的規(guī)則,它是大小寫敏感的。
. 如果在使用物理備庫的 Data Guard 配置中創(chuàng)建應(yīng)用程序容器,那么在創(chuàng)建應(yīng)用程序容器之前必須完成額外的任務(wù)。
. 如果使用 PDB 將現(xiàn)有的應(yīng)用程序遷移成應(yīng)用程序容器,那么它必須能夠通過克隆 PDB 來創(chuàng)建應(yīng)用程序 root,遷移 PDB 到應(yīng)用程序 root 中,或者將 PDB 插入到應(yīng)用程序 root 中。
創(chuàng)建應(yīng)用程序容器
可以執(zhí)行 create pluggable database … as application container 語句來創(chuàng)建應(yīng)用程序容器。創(chuàng)建應(yīng)用程序容器的操作如下:
1. 在 SQL*Plus 中,確保當前容器為 CDB 的 root。
2. 執(zhí)行 create pluggable database … as application container 語句。如果需要還可以指定其它子句。在創(chuàng)建應(yīng)用程序容器后,它處于 mounted 模式,并且它的狀態(tài)為 NEW。可以查詢 v$pdbs 視圖的 open_mode 列來查看應(yīng)用程序容器的打開模式。可以通過查詢 cdb_pdbs 或 dba_pdbs 視圖來查看應(yīng)用程序狀態(tài)。并且會對應(yīng)用程序容器創(chuàng)建一個新的缺省服務(wù)。這個服務(wù)與應(yīng)用程序容器有相同的名字,并且可以被用來訪問應(yīng)用程序容器。
3. 以讀寫模式來打開新的應(yīng)用程序容器。為了將新應(yīng)用程序容器集成到 CDB 中必須以讀寫模式來打開新的應(yīng)用程序容器。如果你試圖以只讀模式來打開應(yīng)用程序容器將會返回錯誤住處。在應(yīng)用程序容器以讀寫模式打開后,它的狀態(tài)將會變?yōu)?NORMAL。
4. 備份應(yīng)用程序容器
使用 CDB Seed 來創(chuàng)建應(yīng)用程序容器
這個例子假設(shè)滿足以下條件:
. 對應(yīng)用程序容器沒有使用存儲限制。因此不指定 storage 子句。
. 應(yīng)用程序容器不創(chuàng)建缺省表空間
. 不指定 path_prefix 子句
. 不指定 file_name_convert 與 create_file_dest 子句。可以啟用 OMF 或設(shè)置 pdb_file_name_convert 參數(shù)。與 CDB Seed 相關(guān)的文件基于 OMF 配置或參數(shù)設(shè)置將會被復(fù)制到新目錄中。
. 在目標目錄中如果沒有與新 temp 文件同名的文件存儲,將會創(chuàng)建新 temp 文件,因此不指定 tempfile reuse 子句。
. 沒有預(yù)先定義的 Oracle 角色需要被授予給 PDB_DBA 角色。
SQL create pluggable database salesact as application container admin user salesadm identified by xxzx
Pluggable database created.
NAME OPEN_MODE
-------------------------------------------------------------------------------------------------------------------------------- ----------
PDB$SEED READ ONLY
JYPDB READ WRITE
ORCLPDB READ WRITE
SALESACT MOUNTED