Oracle19c創建表空間和用戶(解決報錯ORA-65048: error encountered when processing the current DDL statement in pluggable database ORCLPDB1等問題)


前言

之前工作中使用Oracle11g數據庫較多,在使用Oracle19c數據庫遇到了一些坑,對創建表空間和用戶過程中遇到的一些問題進行記錄。


創建表空間和數據文件

CREATE TABLESPACE TEST_DATA LOGGING DATAFILE 'TEST_DATAF.dbf' SIZE 500M
AUTOEXTEND ON NEXT  10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

CREATE TEMPORARY TABLESPACE TEST_TEMP TEMPFILE 'TEST_TEMPF.dbf' SIZE 100M
AUTOEXTEND ON NEXT  5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL ;

CREATE TABLESPACE TEST_INDEX LOGGING DATAFILE 'TEST_INDEXF.dbf' SIZE 100M
AUTOEXTEND ON NEXT  5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

創建用戶

CREATE USER c##test  PROFILE DEFAULT IDENTIFIED BY 11111111 DEFAULT TABLESPACE TEST_DATA TEMPORARY TABLESPACE TEST_TEMP ACCOUNT UNLOCK;

ALTER USER c##test QUOTA UNLIMITED ON TEST_DATA;

ALTER USER c##test QUOTA UNLIMITED ON TEST_INDEX;

GRANT CONNECT, resource TO c##test;

問題一

ORA-65096: invalid common user or role name

image

此錯誤是因為用戶名稱不符合規范,Oracle12C開始引入了CDB與PDB的新特性。sqlplus / as sysdba命令默認登陸的是CDB數據庫,而CDB數據庫中要求所有新建用戶用戶名必須以c##開頭,否則就會報以上錯誤,在PDB內創建用戶則沒有此要求。

解決方法:將圖中用戶名zhra6修改為c##zhra6

問題二

ORA-65048: error encountered when processing the current DDL statement in pluggable database ORCLPDB1
ORA-00959: tablespace 'ZHRA6_DATA' does not exist

image

原因是在CDB內創建用戶分配表空間時,所分配的表空間必須在PDB和CDB中同時存在,否則會報錯。如果是在PDB與CDB有相同表空間的情況下給CDB用戶分配表空間,則會分配CDB的表空間,給用戶PDB的表空間並不受影響。所以要在PDB內創建相同的表空間,然后再回CDB創建用戶。

解決方法:

查詢當前數據庫名稱show con_name

image

查詢PDB數據庫名稱select name,open_mode from v$pdbs;

image

切換數據庫alter session set container=ORCLPDB1;

image

在PDB中創建表空間與數據文件(注意數據文件不能與之前的重名)

CREATE TABLESPACE TEST_DATA LOGGING DATAFILE 'TEST_DATAF_1.dbf' SIZE 500M
AUTOEXTEND ON NEXT  10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

CREATE TEMPORARY TABLESPACE TEST_TEMP TEMPFILE 'TEST_TEMPF_1.dbf' SIZE 100M
AUTOEXTEND ON NEXT  5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL ;

CREATE TABLESPACE TEST_INDEX LOGGING DATAFILE 'TEST_INDEXF_1.dbf' SIZE 100M
AUTOEXTEND ON NEXT  5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

切換回CDB數據庫alter session set container=CDB$ROOT;

image

已經可以正確創建用戶了!

image


免責聲明!

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



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