You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c静默创建PDB后查询不到USERS表空间问题咨询

问题成因
  • 手动执行CREATE PLUGGABLE DATABASE语句创建PDB时,默认仅克隆种子容器PDB$SEED的内置表空间:SYSTEM、SYSAUX、UNDOTBS1、TEMP,PDB$SEED本身默认不包含USERS表空间。
  • 图形化DBCA创建PDB时,向导默认内置了「创建USERS表空间并设置为PDB默认表空间」的逻辑,而手动SQL创建、未指定额外参数时不会触发该逻辑。
  • 你当前使用的PDB创建语句未配置DEFAULT_TABLESPACE参数,也未显式声明USERS表空间的创建规则,因此最终生成的PDB没有USERS表空间。
    注:你当前语句中FILE_NAME_CONVERT的第二个路径'+DTA01 '末尾多了一个空格,虽不影响本次问题,但建议后续修正,避免出现路径异常问题。
解决方案

已创建的TESTPDB补充USERS表空间

  1. 切换到TESTPDB容器并确保PDB处于打开状态:
sqlplus / as sysdba
SQL> alter session set container=TESTPDB;
SQL> alter pluggable database open; -- 若PDB已经处于打开状态可跳过该语句
  1. 基于ASM+OMF配置直接创建USERS表空间:
SQL> create tablespace USERS datafile size 100M autoextend on next 100M maxsize unlimited;
  1. (可选)将USERS设置为PDB默认表空间,后续新建用户会默认分配到该表空间:
SQL> alter pluggable database default tablespace USERS;

执行完成后再次查询dba_tablespaces即可看到USERS表空间。

后续创建PDB时自动生成USERS表空间

方法1:SQL创建时新增默认表空间参数

CREATE PLUGGABLE DATABASE TESTPDB2 
ADMIN USER usradminapp IDENTIFIED BY Redhat123 
FILE_NAME_CONVERT = ('+DTA01', '+DTA01') -- 去掉路径末尾多余空格
DEFAULT TABLESPACE USERS 
DATAFILE SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

方法2:DBCA静默创建PDB时指定参数

dbca -silent -createPluggableDatabase \
-sourceDB TEST \
-pdbName TESTPDB3 \
-createPDBFrom DEFAULT \
-adminUserName usradminapp \
-adminPassword Redhat123 \
-defaultTablespace USERS \
-datafileDestination +DTA01

内容的提问来源于stack exchange,提问作者G16

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:06:04