概述
在容器資料庫CDB裡面如何創建PDB,官方文檔給出了一張創建PDB技術選項圖,圖片如下:
以下基於Oracle19c演示如何從種子創建PDB。
概述
使用種子(PDB$SEED)創建新的PDB,過程是把PDB$SEED中的數據文件複製到 CREATE PLUGGABLE DATABASE 語句中定義的目標目錄中。如下圖:
整體過程:
1)從 PDB$SEED 中複製數據文件
2)創建 SYSTEM 和 SYSAUX 表空間
3)創建新目標目錄,並在根容器中記錄元數據進行關聯
4)創建臨時表空間 TEMP
5)創建公共用戶 SYS 和 SYSTEM
6)創建默認服務
使用位置子句創建(推薦)
所謂使用位置子句的意思就是:在創建的語句中直接指定目標目錄。
1、FILE_NAME_CONVERT
使用 FILE_NAME_CONVERT 參數指定目標目錄
create pluggable database pdb2 admin user hwb identified by hwb roles=(connect) file_name_convert=('/oracle/oradata/SRM/pdbseed','/oracle/oradata/SRM/pdb2');
注意:語句中的 roles=(connect)是直接授予了該用戶的 create session 系統權限,就是允許連接登陸(connect是角色權限包,裡面包含 create session 系統權限)
2、CREATE_FILE_DEST
使用 CREATE_FILE_DEST 參數指定
!mkdir /oracle/oradata/SRM/pdb3create pluggable database pdb3 admin user hwb identified by hwb roles=(connect) create_file_dest='/oracle/oradata/SRM/pdb3';
注意:仔細觀察上面兩個參數的使用。一個參數指定兩個路徑(種子路徑,新路徑),一個參數指定一個路徑(新路徑)。
補充
如果想要在創建PDB時不指定路徑,也可以提前定義好參數DB_CREATE_FILE_DEST或者PDB_FILE_NAME_CONVERT,但是每次都得設置這個參數,所以我還是不推薦這個方式,直接自己定義路徑就可以了,不用搞那麼多亂七八糟的。
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~