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

相关推荐
刃神太酷啦17 小时前
MySQL 库表操作 +数据类型+ 基础概念全梳理----《Hello MySQL!》(2)
java·c语言·数据库·c++·vscode·mysql·adb
GIS数据转换器18 小时前
无人机车载巡检系统
大数据·数据库·人工智能·数据挖掘·数据分析·无人机
AOwhisky1 天前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
小红卒1 天前
mysql之udf提权
数据库·mysql·网络安全
Trouvaille ~1 天前
【Redis篇】Redis 哨兵(Sentinel):高可用自动故障转移
数据库·redis·缓存·中间件·sentinel·高可用·哨兵
qfljg1 天前
oracle 迁移到postgres
数据库·oracle
六月雨滴1 天前
Oracle SGA 优化
oracle·dba
giaz14n9X1 天前
Redis 分布式锁进阶第五十七篇
数据库·redis·分布式
剑神一笑1 天前
Linux ls 命令深度解析:从目录遍历到颜色输出的实现原理
linux·服务器·数据库
Maynor9961 天前
Codex API 网关迁移与流量优化实战
数据库·oracle