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 修改全局默认值。

相关推荐
苏宸啊2 小时前
MySQL(一)
数据库·mysql
2603_969694852 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶3 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc
kobe_OKOK_4 小时前
mysql 开启 binlog 日志
数据库·mysql
鸽芷咕4 小时前
KingbaseES 调参先看执行计划,参数是答案不是起点
数据库
这个DBA有点耶5 小时前
MySQL 8.0直方图:统计信息升级了,执行计划为什么还是选错?
数据库·mysql·代码规范
老纪的技术唠嗑局7 小时前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库
ClouGence8 小时前
开源数据库管理工具 CloudDM 新版本发布,支持 OpenSearch、IoTDB 数据源
数据库·开源
徐小黑ACG8 小时前
Redis-基础
数据库·redis·缓存
火山引擎开发者社区8 小时前
案例实践 | 让 Agent 读懂业务口径:ContextSearch 在广告数据查询中的实践
数据库