Oracle 19c RAC 默认表空间类型的管理及总结

Oracle 19c RAC 默认表空间类型

默认是 SMALLFILE 表空间(普通表空间),不是 BIGFILE。

这与单机 Oracle 完全一致,RAC 环境并不会改变这个默认行为。


验证方法

sql 复制代码
-- 查看数据库级默认表空间类型
SELECT PROPERTY_NAME, PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';

输出:

复制代码
PROPERTY_NAME           PROPERTY_VALUE
----------------------- ----------------
DEFAULT_TBS_TYPE        SMALLFILE

三种创建表空间的写法对比

sql 复制代码
-- 1. 不指定,使用数据库默认(SMALLFILE)
CREATE TABLESPACE TBS_TEST
DATAFILE '+DATA' SIZE 10G AUTOEXTEND ON;
-- 实际类型: SMALLFILE

-- 2. 显式指定 SMALLFILE
CREATE SMALLFILE TABLESPACE TBS_TEST
DATAFILE '+DATA' SIZE 10G AUTOEXTEND ON;

-- 3. 显式指定 BIGFILE
CREATE BIGFILE TABLESPACE TBS_TEST
DATAFILE '+DATA' SIZE 10G AUTOEXTEND ON;

修改数据库默认类型

如果希望以后所有新建表空间都默认为 BIGFILE:

sql 复制代码
-- 修改默认类型为 BIGFILE
ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;

-- 改回 SMALLFILE
ALTER DATABASE SET DEFAULT SMALLFILE TABLESPACE;

-- 验证
SELECT PROPERTY_NAME, PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';

⚠️ 此设置只影响新建表空间,已存在的表空间不受影响。


SMALLFILE vs BIGFILE 选型对比

特性 SMALLFILE(默认) BIGFILE
数据文件数量 一个表空间最多 1022 个数据文件 只能有 1 个数据文件
单文件最大 32GB(8K 块大小) 32TB(8K 块大小)
表空间最大 约 32TB 128TB
管理复杂度 多文件,扩容方便 单文件,管理简单
备份/恢复 文件级并行备份 块级并行(RMAN section size)
DBWR 性能 多文件写入分散 IO 单文件可能成瓶颈
RAC 兼容性 完全支持 完全支持(推荐配合 ASM)
OMF 支持 支持 支持
重命名/移动 单个文件级别 整个表空间级别

RAC 环境下的实战建议

✅ 推荐使用 BIGFILE 的场景

sql 复制代码
CREATE BIGFILE TABLESPACE TBS_DATA_LARGE
DATAFILE '+DATA' SIZE 100G
AUTOEXTEND ON NEXT 10G MAXSIZE 4T;

适用场景:

  • 数据仓库 / 大表归档库(单表空间需要 TB 级别)
  • 配合 ASM 使用(ASM 自动条带化,已避免 IO 集中)
  • OMF(Oracle Managed Files)环境,简化文件管理
  • 单一用途表空间(如 LOB 存储、历史分区数据)

✅ 推荐使用 SMALLFILE 的场景

sql 复制代码
CREATE TABLESPACE TBS_DATA
DATAFILE '+DATA' SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE 32G,
         '+DATA' SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE 32G;

适用场景:

  • OLTP 高并发系统(多文件分散 DBWR IO 压力)
  • 小型数据库(< 1TB)
  • 传统文件系统(非 ASM,文件大小受 OS 限制)
  • 需要精细化备份策略(按文件并行备份)

RAC 特别提醒

在 19c RAC 中创建表空间时:

sql 复制代码
-- ❌ 错误写法:指定本地路径
CREATE TABLESPACE TBS_TEST
DATAFILE '/u01/oradata/file01.dbf' SIZE 10G;
-- RAC 中各节点访问的路径不一致,会出错

-- ✅ 正确写法:使用 ASM 磁盘组
CREATE TABLESPACE TBS_TEST
DATAFILE '+DATA' SIZE 10G AUTOEXTEND ON;

-- ✅ 或使用 OMF(推荐)
ALTER SYSTEM SET DB_CREATE_FILE_DEST='+DATA';
CREATE TABLESPACE TBS_TEST;       -- 简洁,路径自动管理

一句话结论

Oracle 19c RAC 默认创建的是 SMALLFILE 表空间 。如果你需要 BIGFILE,必须显式写 CREATE BIGFILE TABLESPACE,或者通过 ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE 修改全局默认值。

相关推荐
这个DBA有点耶31 分钟前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户6279947182621 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹1 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿1 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪1 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库
不像程序员的程序媛1 小时前
导出mysql数据结构
数据库·mysql
GlobalTradercrb1 小时前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo
PingCAP2 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
花间相见3 小时前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin3 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库