Oracle AI db 26ai中借助dbca创建pdb的过程

Oracle AI db 26ai中借助dbca创建pdb的过程

Oracle AI db 26aiLinux X86-64平台本地部署版本发布后,笔者进行单机版安装,并进行建库等,本文梳理中通过dbca创建pdb的过程。

笔者文章集合详见:

  • MyBologs:https://www.myhfxf.com
  • CSDN:https://blog.csdn.net/xfhuangfu
  • ITPUB:https://blog.itpub.net/28373936
  • 公众号:xfhuangfu

概念描述

在Oracle AI database 26ai中基于alert日志梳理pdb创建的过程。

测试验证

1、创建 pdb命令


...

2026-01-29T02:16:46.895316-05:00
CREATE  PLUGGABLE  DATABASE  "xfpdb"  ADMIN  USER pdbadmin  identified  by *  ROLES=( CONNECT)   PARALLEL   file_name_convert=( '/u01/app/oracle/oradata/CDBXF/pdbseed/undotbs01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/undotbs01.dbf',
'/u01/app/oracle/oradata/CDBXF/pdbseed/sysaux01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/sysaux01.dbf',
'/u01/app/oracle/oradata/CDBXF/pdbseed/system01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/system01.dbf',
'/u01/app/oracle/oradata/CDBXF/pdbseed/temp01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/temp01.dbf')   STORAGE INHERIT
2026 -01 -29T02: 16: 47.157285 -05: 00
PDB$ SEED( 2): AUDSYS.AUD$UNIFIED (SQL_TEXT) -  CLOB populated
...

pdb创建仍然像19c,12c版本一样使用的 CREATE PLUGGABLE DATABASE XXX ADMIN ...   file_name_convert=...子句。

2、修改基表 file$


Completed: 
CREATE 
PLUGGABLE 
DATABASE 
"xfpdb" 
ADMIN 
USER pdbadmin 
identified 
by * 
ROLES=(
CONNECT)  
PARALLEL  
file_name_convert=(
'/u01/app/oracle/oradata/CDBXF/pdbseed/undotbs01.dbf',
'/u01/app/oracle/oradata/CDBXF/xfpdb/undotbs01.dbf',

'/u01/app/oracle/oradata/CDBXF/pdbseed/sysaux01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/sysaux01.dbf',
'/u01/app/oracle/oradata/CDBXF/pdbseed/system01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/system01.dbf',
'/u01/app/oracle/oradata/CDBXF/pdbseed/temp01.dbf', '/u01/app/oracle/oradata/CDBXF/xfpdb/temp01.dbf')   STORAGE INHERIT
alter  pluggable  database  "XFPDB"  open
XFPDB( 3):Autotune  of  undo  retention  is turned on.
XFPDB( 3):Deleting  old  file #2 from file$
XFPDB( 3):Deleting  old  file #4 from file$
XFPDB( 3):Deleting  old  file #6 from file$
XFPDB( 3):Deleting  old  file #8 from file$
XFPDB( 3):Deleting  old  file #9 from file$
XFPDB( 3):Adding  new  file #12 to file$(old file#2).             fopr-1, newblks-44800, oldblks-19200
XFPDB( 3):Adding  new  file #13 to file$(old file#4).             fopr-1, newblks-51200, oldblks-15360
XFPDB( 3):Adding  new  file #14 to file$(old file#9).             fopr-1, newblks-12800, oldblks-12800
XFPDB( 3):Bug  38433601Check  for  update service  name
XFPDB( 3):Bug  38433601Call ksws_update_pdb_attr
2026 -01 -29T02: 16: 50.180579 -05: 00

pdb创建完成后对 file$ 基表进行了修改 delete了2,4,6,8,9 add file#12,13,14

pdb中查询 file$


SQL> 
alter 
session 
set 
container=xfpdb;


Session altered.

SQL>  select  FILE # ,CRSCNWRP,SPARE4 from file$;

      FILE #   CRSCNWRP SPARE4
---------- ---------- ---------
         13           0
         15           0
         12           0
         14           0

file$sys用户下的数据字典基表,他对应的是 cdb_data_filesdba_data_files


SQL> 
select owner,OBJECT_NAME,con_id 
from cdb_objects 
where OBJECT_NAME=
'FILE$';


OWNER      OBJECT_NAM     CON_ID
---------- ---------- ----------
SYS        FILE$               3

SQL>
SQL>  EXPLAIN PLAN  FOR  select file_name,FILE_ID,TABLESPACE_NAME  from cdb_data_files;

Explained.

SQL>  SELECT plan_table_output  FROM  TABLE(DBMS_XPLAN.DISPLAY( 'PLAN_TABLE'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1403926647

------------------------------------------------------------------------------------------------------
| Id  | Operation                         | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------
|   0 |  SELECT  STATEMENT                  |                  |      2 |    576 |      4   ( 0)|  00: 00: 01 |
|    1 |   VIEW                             | DBA_DATA_FILES   |      2 |    576 |      4   ( 0)|  00: 00: 01 |
|    2 |    UNION- ALL                       |                  |      2 |    774 |      4   ( 0)|  00: 00: 01 |
|    3 |     NESTED LOOPS                   |                  |      1 |    369 |      2   ( 0)|  00: 00: 01 |
|    4 |      NESTED LOOPS                  |                  |      1 |    359 |      1   ( 0)|  00: 00: 01 |
|    5 |       NESTED LOOPS                 |                  |      1 |    333 |      1   ( 0)|  00: 00: 01 |
|*   6 |        FIXED  TABLE  FULL            | X$KCCFN          |      1 |    323 |      0   ( 0)|  00: 00: 01 |
|*   7 |        TABLE  ACCESS  BY  INDEX  ROWID |  FILE$            |      1 |     10 |      1   ( 0)|  00: 00: 01 |
|*   8 |         INDEX  UNIQUE  SCAN          | I_FILE1          |      1 |       |      0   ( 0)|  00: 00: 01 |
|*   9 |       FIXED  TABLE  FIXED  INDEX      | X$KCCFE (ind: 1)  |      1 |     26 |      0   ( 0)|  00: 00: 01 |
|   10 |      TABLE  ACCESS CLUSTER          | TS$              |      1 |     10 |      1   ( 0)|  00: 00: 01 |
|*  11 |       INDEX  UNIQUE  SCAN            | I_TS #            |     1 |       |     0   (0)| 00:00:01 |
|   12 |     NESTED LOOPS                   |                  |      1 |    405 |      2   ( 0)|  00: 00: 01 |
|   13 |      NESTED LOOPS                  |                  |      1 |    395 |      1   ( 0)|  00: 00: 01 |
|   14 |       NESTED LOOPS                 |                  |      1 |    369 |      1   ( 0)|  00: 00: 01 |
|   15 |        NESTED LOOPS                |                  |      1 |    330 |      1   ( 0)|  00: 00: 01 |
|*  16 |         FIXED  TABLE  FULL           | X$KCCFN          |      1 |    323 |      0   ( 0)|  00: 00: 01 |
|*  17 |         TABLE  ACCESS  BY  INDEX  ROWIDFILE$            |      1 |      7 |      1   ( 0)|  00: 00: 01 |
|*  18 |          INDEX  UNIQUE  SCAN         | I_FILE1          |      1 |       |      0   ( 0)|  00: 00: 01 |
|*  19 |        FIXED  TABLE  FIXED  INDEX     | X$KTFBHC (ind: 1) |      1 |     39 |      0   ( 0)|  00: 00: 01 |
|*  20 |       FIXED  TABLE  FIXED  INDEX      | X$KCCFE (ind: 1)  |      1 |     26 |      0   ( 0)|  00: 00: 01 |
|   21 |      TABLE  ACCESS CLUSTER          | TS$              |      1 |     10 |      1   ( 0)|  00: 00: 01 |
|*  22 |       INDEX  UNIQUE  SCAN            | I_TS #            |     1 |       |     0   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------

Predicate Information ( identified  by operation  id):
---------------------------------------------------

    6 - filter( "FNNAM"  IS  NOT  NULL  AND ( "CON_ID"= 0  OR  "CON_ID"= 3AND  "FNTYP"= 4  AND
               "INST_ID"=USERENV( 'INSTANCE'AND BITAND( "FNFLG", 4)<> 4)
    7 - filter( "F". "SPARE1"  IS  NULL)
    8 -  access( "FNFNO"= "F". "FILE#")
    9 - filter(( "CON_ID"= 0  OR  "CON_ID"= 3AND  "CON_ID"=TO_NUMBER(SYS_CONTEXT( 'USERENV', 'CON_ID'
              ))  AND  "FENUM"= "F". "FILE#")
   11 -  access( "F". "TS#"= "TS". "TS#")
   16 - filter( "FNNAM"  IS  NOT  NULL  AND ( "CON_ID"= 0  OR  "CON_ID"= 3AND  "FNTYP"= 4  AND
               "INST_ID"=USERENV( 'INSTANCE'AND BITAND( "FNFLG", 4)<> 4)
   17 - filter( "F". "SPARE1"  IS  NOT  NULL)
   18 -  access( "FNFNO"= "F". "FILE#")
   19 - filter(( "CON_ID"= 0  OR  "CON_ID"= 3AND  "FNFNO"= "KTFBHCAFNO")
   20 - filter(( "CON_ID"= 0  OR  "CON_ID"= 3AND  "FENUM"= "F". "FILE#"  AND
               "CON_ID"=TO_NUMBER(SYS_CONTEXT( 'USERENV', 'CON_ID')))
   22 -  access( "KTFBHCTSN"= "TS". "TS#")

Note
-----
   - this  is an adaptive plan

52  rows selected.

3、重建 temp表空间


Completed: 
alter 
pluggable 
database 
"XFPDB" 
open

2026 -01 -29T02: 16: 55.557564 -05: 00
XFPDB( 3): CREATE  SMALLFILE  TEMPORARY  TABLESPACE TEMP_NON_ENC TEMPFILE  '/u01/app/oracle/oradata/CDBXF/xfpdb/temp01_NON_ENC.dbf'  SIZE  84REUSE  AUTOEXTEND  ON  NEXT   8192MAXSIZE  4095EXTENT  MANAGEMENT  LOCAL  UNIFORM  SIZE  1024K
XFPDB( 3): Tablespace created: TEMP_NON_ENC ts # 5
XFPDB( 3):Completed:  CREATE  SMALLFILE  TEMPORARY  TABLESPACE TEMP_NON_ENC TEMPFILE  '/u01/app/oracle/oradata/CDBXF/xfpdb/temp01_NON_ENC.dbf'  SIZE  84REUSE  AUTOEXTEND  ON  NEXT   8192MAXSIZE  4095EXTENT  MANAGEMENT  LOCAL  UNIFORM  SIZE  1024K
XFPDB( 3): ALTER  DATABASE  DEFAULT  TEMPORARY  TABLESPACE  "TEMP_NON_ENC"
XFPDB( 3):Completed:  ALTER  DATABASE  DEFAULT  TEMPORARY  TABLESPACE  "TEMP_NON_ENC"
ALTER  PLUGGABLE  DATABASE  "XFPDB"  CLOSE  IMMEDIATE
2026 -01 -29T02: 16: 55.667448 -05: 00
XFPDB( 3):JIT: pid  60281 requesting  stop
XFPDB( 3): TABLE SYS.ACTIVITY_TABLE$: ADDED  INTERVAL  PARTITION SYS_P503 ( 1VALUES  LESS  THAN ( 106)
XFPDB( 3):Buffer  Cache  flush started:  3
XFPDB( 3):Buffer  Cache  flush finished:  3
Completed:  Pluggable  database XFPDB closed services= None
Completed:  ALTER  PLUGGABLE  DATABASE  "XFPDB"  CLOSE  IMMEDIATE
alter  pluggable  database  "XFPDB"  open
XFPDB( 3):Autotune  of  undo  retention  is turned on.
2026 -01 -29T02: 16: 56.887292 -05: 00
XFPDB( 3):Opening pdb  with  no  Resource Manager plan active
Completed:  Pluggable  database XFPDB opened  read write
2026 -01 -29T02: 16: 57.602788 -05: 00
Completed:  alter  pluggable  database  "XFPDB"  open
XFPDB( 3): drop  tablespace TEMP  including  contents  and  datafiles
2026 -01 -29T02: 16: 57.978035 -05: 00
XFPDB( 3):Deleted  file /u01/app/ oracle/ oradata/CDBXF/xfpdb/temp01.dbf
XFPDB( 3): Tablespace dropped: TEMP ts # 3
XFPDB( 3):Completed:  drop  tablespace TEMP  including  contents  and  datafiles
XFPDB( 3): CREATE  SMALLFILE  TEMPORARY  TABLESPACE TEMP TEMPFILE  '/u01/app/oracle/oradata/CDBXF/xfpdb/temp01.dbf'  SIZE  84REUSE  AUTOEXTEND  ON  NEXT   8192MAXSIZE  4095EXTENT  MANAGEMENT  LOCAL  UNIFORM  SIZE  1024K
XFPDB( 3): Tablespace created: TEMP ts # 3
XFPDB( 3):Completed:  CREATE  SMALLFILE  TEMPORARY  TABLESPACE TEMP TEMPFILE  '/u01/app/oracle/oradata/CDBXF/xfpdb/temp01.dbf'  SIZE  84REUSE  AUTOEXTEND  ON  NEXT   8192MAXSIZE  4095EXTENT  MANAGEMENT  LOCAL  UNIFORM  SIZE  1024K
XFPDB( 3): ALTER  DATABASE  DEFAULT  TEMPORARY  TABLESPACE  "TEMP"
ALTER  PLUGGABLE  DATABASE  "XFPDB"  CLOSE  IMMEDIATE
XFPDB( 3):JIT: pid  60281 requesting  stop
XFPDB( 3):Buffer  Cache  flush started:  3
XFPDB( 3):Buffer  Cache  flush finished:  3
2026 -01 -29T02: 16: 58.646017 -05: 00
Completed:  Pluggable  database XFPDB closed services= None
Completed:  ALTER  PLUGGABLE  DATABASE  "XFPDB"  CLOSE  IMMEDIATE
alter  pluggable  database  "XFPDB"  open
XFPDB( 3):Autotune  of  undo  retention  is turned on.
2026 -01 -29T02: 16: 59.379553 -05: 00
XFPDB( 3):Opening pdb  with  no  Resource Manager plan active
2026 -01 -29T02: 16: 59.678638 -05: 00
Completed:  Pluggable  database XFPDB opened  read write
Completed:  alter  pluggable  database  "XFPDB"  open
XFPDB( 3): drop  tablespace TEMP_NON_ENC  including  contents  and  datafiles
XFPDB( 3):Deleted  file /u01/app/ oracle/ oradata/CDBXF/xfpdb/temp01_NON_ENC.dbf
XFPDB( 3): Tablespace dropped: TEMP_NON_ENC ts # 5
XFPDB( 3):Completed:  drop  tablespace TEMP_NON_ENC  including  contents  and  datafiles

创建 TEMP_NON_ENC临时表空间 , drop temp临时表空间并重建, drop TEMP_NON_ENC 临时表空间。将数据库的默认临时表空间修改为 temp表空间。 TEMP_NON_ENC从名称来看是非加密临时表空间。 从数据库日志看在创建 pdb过程中,有创建 tempdrop temp动作,根据官网描述应该是表空间转换。 About Encryption Conversion for Tablespaces and Databases

4、创建users表空间


XFPDB(3):
CREATE 
BIGFILE 
TABLESPACE 
"USERS" 
LOGGING  
DATAFILE  
'/u01/app/oracle/oradata/CDBXF/xfpdb/users01.dbf' 
SIZE 
7REUSE 
AUTOEXTEND 
ON 
NEXT  
1280MAXSIZE 
UNLIMITED  
EXTENT 
MANAGEMENT 
LOCAL  
SEGMENT 
SPACE 
MANAGEMENT  
AUTO

XFPDB( 3): Tablespace created:  USERS ts # 6
XFPDB( 3):Completed:  CREATE  BIGFILE  TABLESPACE  "USERS"  LOGGING   DATAFILE   '/u01/app/oracle/oradata/CDBXF/xfpdb/users01.dbf'  SIZE  7REUSE  AUTOEXTEND  ON  NEXT   1280MAXSIZE  UNLIMITED   EXTENT  MANAGEMENT  LOCAL   SEGMENT  SPACE  MANAGEMENT   AUTO
XFPDB( 3): ALTER  DATABASE  DEFAULT  TABLESPACE  "USERS"
XFPDB( 3):Completed:  ALTER  DATABASE  DEFAULT  TABLESPACE  "USERS"

创建 USERS表空间并设为数据库默认表空间, 26aiUSERS表空间是 bigfile类型。

5、查询pdb中的表空间


SQL> 
select con_id,TABLESPACE_NAME,
BIGFILE 
from cdb_tablespaces;


    CON_ID TABLESPACE_NAME                BIG
---------- ------------------------------ ---
         3 SYSTEM                         YES
         3 SYSAUX                         YES
         3 UNDOTBS1                       YES
         3 TEMP                           NO
         3 USERS                          YES

26ai中创建pdb时的系统默认表空间类型是bigfile。

知识总结

26ai中通过dbca方式创建pdb总体与之前版本一致,默认表空间类型发生了变化,默认表空间SYSTEM,SYSAUX,UNDOTBS,USERS为bigfie,表空间类型的变化对于日常日常运维中表空间扩容的方式也发生变化。

-the end-


请使用浏览器的分享功能分享到微信等