久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle 12c R2版本 Application Containers的特性是什么

138次閱讀
沒有評論

共計 3904 個字符,預計需要花費 10 分鐘才能閱讀完成。

本篇文章給大家分享的是有關 Oracle 12c R2 版本 Application Containers 的特性是什么,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

在 Oracle Database 12c R2 版本中,Oracle 帶來新的 Application Containers 特性,該特性對原有的多租戶功能進行了增強,在 CDB root 容器中可以創建一個叫做 Application root 的容器,類似于 CDB root,可在其內創建多個依賴于 Application root 的 Application PDBs。

“Application”

在 Application Container 特性下還有另一個概念,被命名為“Application”,我們可以把“Application”理解為一個區域,“Application”只能創建在 Application root 中,其內可以創建表、視圖、函數等公共對象,然后可在 Application PDBs 中使用 sync 同步命令,來實現“Application”內的公共對象共享到 Application PDBs 中。

本篇文章中,通過 Application Root/PDBs 與 Application 的創建開始帶你認識 Application Container 特性,在第二篇中將帶你了解“Application”內的公共對象(Application Common Objects), 并通過實驗讓你對其有一個更加直觀的認識。

Application root 的創建

Application root 與普通的 PDB 創建語句相似,在創建語句中需要指定“as application container”子句。

首先我們先設置 db_create_file_dest

創建一個名 qdatacon1 的 Application root

這樣一個名為 qdatacon1 的 Application root 就已經成功創建  ,可以通過視圖 dba_pdbs.application_root 字段查看是否是 Application rootdba_pdbs.application_root 字段為 YES

將 QDatacon1 打開

注意,當在使用 Application Containers 特性時需要使用數據文件的 OMF 的管理方式,雖然在不使用 OMF 管理時依然可以成功創建 Application root 以及 Application PDBs,但當“Application”內包含表空間后,在 Application PDBs 中進行同步“Application”時會報 ORA-01537 錯誤,無法將“Application”內的表空間同步到 Application PDBs 中。

Application root 的基本管理與普通的 PDB 基本上沒有區別, 包括 Application root 的 cloning/unplug/plugin 等。但需要注意 as application container 的使用

當然,如果你想將 Application root 拔出后,以普通 PDB 的方式插入 CDB 中,那么去掉

as application container 子句即可。

Application PDBs 的創建

Application PDB 在創建時必須連接到相應 Application root 中,而不是 CDB root,當連接到 Application root 中時,只需按照創建普通 PDB 的方式創建即可,無需額外子句指定,創建完成的 PDB 既是相應 Application root 中的 Application PDB。

切換到 Application root 中創建 Application PDB:qdcpdb1,切換到 CDB 中

在 CDB$root 中通過 show pdbs 顯示時,可以看到的 Application PDB 與普通的 PDB 并沒有什么區別。

可以通過 cdb_pdbs 視圖,來查看 Application PDB 屬于哪個 Application root

當 Applicatoin PDB 創建成功,可以使用 sync 命令將它與 Application root 中定義的 Application 進行同步。

alter pluggable database application all sync;

Applications

文章的開篇提到,可以把“Application”做為一個區域來理解,而“Application”只能在 Application root 中創建及管理

在“Application”的維護命令中可能最常用的就是 install、patch、upgrade 以及 uninstall,下面對三個命令做簡單描述。

Install an Application

當使用 alter pluggable database 帶有 begin install 子句時,即開始一個“Application”的安裝,這里可以理解為一個區域的開始,當安裝完成后在 Application PDB 中使用 sync 命令同步相應的“Application”將會被自動安裝在本 PDB 內。

這樣我們開始了一個 qdcon1_reg1 的“Application”,使用 end install 命令封閉 qdcon1_reg1,

可以通過 dba_applications 視圖查看,已經安裝的 Application

Application 安裝完成后,可以在該 Application root 下的 Application PDB 中使用 sync 命令來進行同步,如下:

查看 dba_applications 視圖,確認 qdcon1_reg1 是否已經安裝

可以看到 qdcon1_reg1 已經安裝完成,安裝完成后 qdcon1_reg1 中的公共對象會以特定的方式被共享到相應的 Application PDB 中,

表 tdata 已經被共享到 qdcpdb1 中。

在 Application root 中可以通過 dba_app_pdb_status 視圖,查看 Application 被安裝到哪些 Application PDB 中

Patch an Application

在上面的小結中,當我們使用 end install 子句將“Application”封閉后,如果想再次在“Application”中創建對象 (table/view/packages/sequence 等),以及對“Application”內已經存在的對象進行 alter 操作時,我們可以使用 patch 子句對現有的“Application”進行修補操作。

如下示例,開始一個 patch,并且在 application 內創添加表以及更改現存表的表結構:

刪除 Application 內的表

刪除失敗

結束 patch

查看 patch 信息

在 qdcpdb1 中同步 qdcon1_reg1

tdata 的表結構與 texte 表均同步完成

Upgrade an Application

對“Application”我們可以使用 patch 來對其進行修補操作,但修補操作只限添加 / 更改等,無法對已經存在“Application”中的公共對象進行刪除操作,如果我們想對公共對象進行刪除操作,可以使用 UPGRADE 子句對現有的“Application”進行升級,在升級的過程中,Oracle 會首先自動創建 Application root 的 Clone 版本,Clone 版本創建完成后,Application PDBs 將指向 Clone 版本的 Application root,“Application”將繼續執行升級操作,升級完成之后,Application root 的 Clone 版本將繼續被保留,并且為不同步“Application”的 Application PDB 提供服務,同步“Application”后的 Application PDB 將指向升級后的 Application root。

升級現有的 qdcon1_reg1:F1956732192_4_1 即為 qdatacon1 的 clone 版本

刪除 tdata 表,并且創建新表 tmeta:

結束升級,并查看版本信息

在 qdcpdb1 中同步 qdcon1_reg1

tdata 被刪除 /tmeata 的創建已同步到 qdcpdb1 中。

Uninstall an Application

“Application”的卸載后并不會從數據字典中將該“Application”刪除,它會被標記為 UNINSTALL,以便“Application”不可以進行 upgrade/patch/uninstall 等操作,當 uninstall 命令發出后,需要將該“Application”中包含的對象全部刪除。

uninstall 同樣會產生 clone 版本的 Application root

刪除對象且結束 uninstall

因為對象并沒有全部刪除,導致 end uninstall 失敗,下面繼續 drop 用戶和表空間:

查看被 uninstall 的 qdcon1_reg1 狀態

在 qdcpdb1 中查看公共對象情況

表 texte 是 extended data-linked 方式,數據存儲在 Application root 的 qdata_tbs 中,因為 qdata_tbs 已經被刪除,所以在 qdcpdb1 中查詢時報錯,而 tmeta 為 metadata-linked 方式,數據存儲在本地,所以可以在未做同步時可以查詢。

同步 qdcon1_reg1

同步完成。

以上就是 Oracle 12c R2 版本 Application Containers 的特性是什么,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計3904字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 玛沁县| 河源市| 辽阳县| 调兵山市| 班玛县| 临清市| 嘉黎县| 屏东市| 阿尔山市| 海门市| 永新县| 绿春县| 普安县| 安化县| 闵行区| 丰台区| 龙陵县| 乐昌市| 诸暨市| 高清| 武功县| 泰和县| 白水县| 海伦市| 宜兰市| 青州市| 孟州市| 卢氏县| 大竹县| 伊金霍洛旗| 资中县| 高州市| 沐川县| 雷山县| 谢通门县| 黄平县| 中方县| 成武县| 长兴县| 安平县| 南木林县|