大数跨境
0
0

Oracle 23ai 新变化:大文件表空间

Oracle 23ai 新变化:大文件表空间 DBA学习之路
2025-10-17
0

前言

在 Oracle 23ai/26ai 数据库版本中,针对大文件表空间有一些改动,主要是系统表空间默认创建为大文件表空寂以及大文件表空间收缩功能。

图片

记得点击 "DBA学习之路设为星标

后台回复【进群】,申请加入数据库学习交流群

大文件表空间

大文件表空间是指仅包含单个大型数据文件的表空间。相较之下,普通(小文件)表空间可包含多个数据文件,但每个文件的大小均受限制。

大文件表空间的优势

  • Oracle 数据库最多可拥有 64000 个数据文件,这限制了其总容量。通过允许表空间使用单个大型数据文件,可提升数据库总容量。采用 8K 和 32K 区块的大文件表空间,可分别容纳 32TB 和 128TB 的数据文件。
  • 使用更少的大型数据文件可降低 DB_FILES 和 MAXDATAFILES 参数值,从而节省 SGA 和控制文件空间。
  • ALTER TABLESPACE 语法已更新,支持在表空间层级而非数据文件层级执行操作。

通常大文件表空间必须采用本地管理模式并启用自动段空间管理。例外情况包括临时表空间、SYSTEM 表空间及本地管理的回滚表空间,这些均允许采用手动段空间管理。

默认大文件表空间

连接 Oracle 23ai 查看表空间默认类型:

-- CDB
SQL> select tablespace_name, bigfile
from dba_tablespaces
order by 1;

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

-- PDB
SQL> alter session set container=pdb01;

SQL> select tablespace_name, bigfile
from dba_tablespaces
order by 1;

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

CDB 下除 TEMP 表空间外,其他表空间均为大文件表空间;PDB 下则多了个 USERS 表空间不是大文件表空间。

大文件表空间收缩

从 Oracle 23ai/26ai 开始,可以使用 DBMS_SPACE 包来缩小大文件表空间以回收未使用的空间。值得一提的是,从 23.7 版本开始,小文件表空间也添加了类似功能。

首先需要分析大文件表空间:

SQL> set serveroutput on
execute dbms_space.shrink_tablespace('SYSAUX', shrink_mode => dbms_space.ts_mode_analyze);

收缩大文件表空间:

SQL> set serveroutput on
-- 默认 shrink_mode => dbms_space.ts_mode_shrink, target_size => dbms_space.ts_target_max_shrink
execute dbms_space.shrink_tablespace('SYSAUX');

检查收缩后的使用情况:

SQL> column file_name format a30

select substr(file_name, -28as file_name, blocks, bytes/1024/1024 as size_mb
from dba_data_files
where tablespace_name = 'SYSAUX';

需要注意的是:

  • 表空间需要开启自动扩展;
  • 对于表空间中具有 LONG 类型字段的表、cluster 表、有虚拟列的表,都不支持在线移动;
  • 可以缩小 SYSAUX 表空间;

总体来说,还是比较方便简单的。

写在最后

Oracle 23ai/26ai 开始默认使用大文件表空间,是 Oracle 为适应大数据量、简化管理、并面向 AI 等新技术发展的一次重要演进。






【声明】内容源于网络
0
0
DBA学习之路
Oracle ACE,墨天轮社区 MVP,CSDN 全站前50,活跃于各大技术社区论坛,全网粉丝 20w+,专注于各种数据库、Linux 等后端技术,分享各种干货实战文!目前运营两个公众号:Lucifer三思而后行、DBA学习之路
内容 200
粉丝 0
DBA学习之路 Oracle ACE,墨天轮社区 MVP,CSDN 全站前50,活跃于各大技术社区论坛,全网粉丝 20w+,专注于各种数据库、Linux 等后端技术,分享各种干货实战文!目前运营两个公众号:Lucifer三思而后行、DBA学习之路
总阅读162
粉丝0
内容200