1、通過seed方式創建
CREATE PLUGGABLE DATABASE salespdb
ADMIN USER salesadm IDENTIFIED BY password
ROLES = (dba)
DEFAULT TABLESPACE sales
DATAFILE '/home/oracle/scripts/ORCL/salespdb/sales01.dbf' SIZE 250M AUTOEXTEND ON
FILE_NAME_CONVERT = ('/home/oracle/scripts/ORCL/pdbseed/','/home/oracle/scripts/ORCL/salespdb/')
STORAGE (MAXSIZE 2G)
PATH_PREFIX = '/home/oracle/scripts/ORCL/salespdb/'
說明:/disk1/oracle/dbs/pdbseed/爲種子數據庫數據文件存放路徑,/disk1/oracle/dbs/salespdb/爲新的pdb數據庫文件存放路徑。
2、通過已有的pdb創建(pdb必須處於打開模式)
ORA-65036: 插接式數據庫 SALESPDB 未在所需模式下打開
CREATE PLUGGABLE DATABASE salespdb1 FROM salespdb
FILE_NAME_CONVERT = ('/home/oracle/scripts/ORCL/salespdb/', '/home/oracle/scripts/ORCL/salespdb1/')
PATH_PREFIX = '/home/oracle/scripts/ORCL/salespdb1';
3、手工創建pdb後錯誤(RESTRICTED值屬於yes)
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
4 SALESPDB READ WRITE YES
5 HQ_PDB READ WRITE YES
6 SALESPDB1 READ WRITE NO
select * from PDB_PLUG_IN_VIOLATIONS
原因
用種子PDB或插入或克隆方法創建PDB後,可以通過查詢 CDB_PDBS 視圖的STATUS 列查看新 PDB 的狀態。
如果在打開新 PDB 之前創建了公用用戶和角色,必須同步 PDB 才能從根檢索新的公用用戶和角色。
當 PDB 在讀/寫模式下打開時,會自動執行同步。如果在只讀模式下打開 PDB,則會返回錯誤。
可以通過查詢 PDB_PLUG_IN_VIOLATIONS 視圖查看違規說明。
3. 方案
因此,唯一能做的就是在 PDBPROD2 中創建該表空間,關閉數據庫,再次進行同步即可。
create tablespace sqlaudit_mon datafile '/home/oracle/scripts/ORCL/salespdb/sqlaudit_mon.dbf' size 10m;
create tablespace sqlaudit_mon datafile '/home/oracle/scripts/ORCL/salespdb1/sqlaudit_mon.dbf' size 10m;
在CDB下查詢受限的PDB:
select con_id, name,open_mode,restricted from v$pdbs;
在PDB中查詢相關受限的PDB:
select instance_name,logins,status from gv$instance (v$containers也可以查詢)
cdb下更換 pdb restricted 模式:
alter pluggable database pdb_name close immediate instance=all;(all except pdb1)
alter pluggable database pdb_name open read write instance=all;
pdb下更換 pdb restricted 模式:
alter session set container=pdb_name;
alter session set container=SALESPDB;
alter pluggable database close immediate;
alter pluggable database open;
在受限模式下,可以授予特定用戶 restricted session權限用於臨時登錄,記得revoke。