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

相关推荐
Full Stack Developme1 小时前
Spring Boot 事务管理完整教程
java·数据库·spring boot
m0_702036533 小时前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
jvm·数据库·python
qxwlcsdn3 小时前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
phltxy3 小时前
Redis 主从复制
java·数据库·redis
2301_809244533 小时前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
知识汲取者3 小时前
巨量引擎营销 API 完整文档
开发语言·数据库·python
j7~4 小时前
【MYSQL】在Centos7和ubuntu22.04环境下安装
数据库·c++·mysql·ubuntu·centos
环流_4 小时前
redis:持久化rdb
java·数据库·redis
Donk_675 小时前
MariaDB 数据库管理手册
数据库·mariadb
阿洛学长5 小时前
PostgreSQL 超详细安装与使用教程:从入门到实战
数据库·postgresql