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

相关推荐
qq_3660862211 分钟前
关于接口路径中中文值解码问题
java·开发语言·数据库
ClouGence19 分钟前
数据库为什么需要 SSL?一文了解 SSL 连接原理与配置
数据库·开源
一十九的酒21 分钟前
Oracle 密码恢复实战:使用 SPARE4 哈希值还原用户密码
数据库·oracle·密码丢失·密码恢复·账户锁定
冰暮流星21 分钟前
mysql之新建表及对表的查询
android·数据库·mysql
C语言Plus36 分钟前
C++ SqlBuilder一个简单、灵活且类型安全的 C++ SQL 构建器库
数据库·sql·安全·c++20
喝茶与编码39 分钟前
真实业务场景:高并发 Upsert 死锁频发?InnoDB 锁机制与重试机制深度解析
数据库·python
BreezeJiang1 小时前
做完 AI 日记本后,我终于理解了:向量数据库不是用来替代 MySQL 的
数据库
VALENIAN瓦伦尼安教学设备1 小时前
转子/行星/平行轴齿轮箱综合故障模拟实验台可复现常见机械问题
大数据·数据库·人工智能·嵌入式硬件·算法
不好听6131 小时前
向量数据库:Milvus 与 MySQL 的本质差异
数据库
用户094248568031 小时前
第18章:Mongo复制集运维——故障切换、节点扩容与数据重同步
数据库·mongodb