Oracle 19c ORA-65096 公用用戶名或角色名無效


先來看看這個問題出現的前提

Oracle 12c 開始有了CDB和PDB

CDB與PDB是Oracle 12C引入的新特性,在ORACLE 12C數據庫引入的多租用戶環境(Multitenant Environment)中,允許一個數據庫容器(CDB)承載多個可插拔數據庫(PDB)。

CDB全稱為ContainerDatabase,中文翻譯為數據庫容器,PDB全稱為Pluggable Database,即可插拔數據庫。

在ORACLE 12C之前,實例與數據庫是一對一或多對一關系(RAC):即一個實例只能與一個數據庫相關聯,數據庫可以被多個實例所加載。

而實例與數據庫不可能是一對多的關系。當進入ORACLE 12C后,實例與數據庫可以是一對多的關系。

 

12c中,oracle 將CDB看成一個容器,用來存放數據庫。

  • 在CDB中可以有多個PDB,其中存在一個root根容器(PDB$ROOT)、一個種子容器(PDB$SEED)和多個PDBS。
  • 所有的PDB共用一個硬件系統資源、sga和pga、redo、臨時段、控制文件、參數文件、還原段(還可對每個PDB單獨指定)。

PDB$ROOT:根容器用來做所有容器的跟,用來對每個PDB進行統一管理

  • sqlplus / as  sysdba連接進來默認是連接的根容器,需要切換到其他的PDB容器才可以對單獨的PDB操作。
  • 其中有 system數據文件、sysaux數據文件、(undo數據文件、temp數據文件、redo、控制文件)。
  • 一般不存放生產數據文件

PDB$SEED:種子容器作為插入PDB的模板而存在

  • 每個CDB都有一個種子容器,且不可對其中對象進行修改。
  • 其中有 system數據文件、sysaux數據文件、其他數據文件。

PDB:新插入容器,該容器用來存放數據庫

  • 其中有 system數據文件、sysaux數據文件、其他數據文件。
  • 12c中可以插入多個容器進行統一管理,來減少DBA的工作量。
  • 其中的數據庫可以插入或拔出。

用戶:12c中PDB$ROOT中的普通目錄可以通過權限分配來訪問一個或多個指定的PDB容器,最大權限用戶是sysdba

  • 其中PDB也可單獨創建普通用戶來管理該容器的數據庫。
  • PDB資源管理:12c中將多個數據庫運行在一個硬件資源上,CDB性能上得到優化。
  • 在CDB中為每個PDB確定使用CPU最低份額,CDB會按照一個PDB份額/分配的總份額數*100%,來保證PDB最低份額數。

管理容器

使用sqlplus登陸(用plsql登陸無法使用show指令)

查詢容器是否CDB

select name,cdb,open_mode,con_id from v$database;

查看當前容器

show con_name;

查看已經創建的pdb

show pdbs;

在使用plsql連接Oracle 19c並創建新用戶的時候報錯, ORA-65096 公用用戶名或角色名無效

官方地址:https://docs.oracle.com/database/121/DBSEG/users.htm#GUID-4BF8A362-AD9B-4780-944E-CFB9B7D84B50

文檔里寫的很清楚,如果要創建公共用戶,需要加前綴c##


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM