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
此错误是因为用户名称不符合规范,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
原因是在CDB内创建用户分配表空间时,所分配的表空间必须在PDB和CDB中同时存在,否则会报错。如果是在PDB与CDB有相同表空间的情况下给CDB用户分配表空间,则会分配CDB的表空间,给用户PDB的表空间并不受影响。所以要在PDB内创建相同的表空间,然后再回CDB创建用户。
解决方法:
查询当前数据库名称show con_name
查询PDB数据库名称select name,open_mode from v$pdbs;
切换数据库alter session set container=ORCLPDB1;
在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;
已经可以正确创建用户了!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具