小伙伴们是不是在文件选择上还默认给建文件4G/个么,在oracle每个版本上系统默认属性是什么,选择困难症了没,一起一次性文件存储和默认属性看透。
基于Oracle历代在存储架构的技术演进分析,结合版本升级和23ai新特性,一起梳理Smallfile/Bigfile、BasicFiles/SecureFiles的技术差异与应用场景,用脚本验证。
一、表空间技术:Smallfile vs Bigfile的版本演进
1. 技术特点对比
版本 | Smallfile特性 | Bigfile特性 | 关键升级点 |
10g | • 最多1022个文件/表空间 • 单文件最大32GB (8K块) | • 单文件表空间 • 最大32TB (8K块) | 引入Bigfile, 扩展单文件容量上限 |
11g | • 保持传统架构 • 支持ASM条带化分散I/O | • 优化ROWID寻址(32位块号) • 简化ASM管理 | 性能优化, 强化与ASM集成 |
19c | • 仍为默认类型 • 支持在线迁移至Bigfile | • 支持OMF自动管理文件 • 提升RAC扩展性 | 管理自动化增强 |
23ai | • 仅PDB的USERS表空间默认Smallfile | 默认启用:SYSTEM/SYSAUX/ UNDO表空间均Bigfile化 | Bigfile成为新标准 |
2. 使用场景选择
- Bigfile适用场景:
- 数据仓库:单表超1TB时避免文件数量爆炸(如23ai中的AI向量库)
- ASM环境:依赖条带化分散I/O压力(11g+最佳实践)
- 归档系统:简化历史数据维护(19c+推荐)
- Smallfile保留场景
- OLTP高并发:多文件分布提升I/O并行度(如高频交易库)
- 兼容性需求:迁移旧系统且存储设备异构(如10g遗留环境)
二、LOB存储革命:BasicFiles vs SecureFiles
1. 架构演进关键版本
版本 | BasicFiles特性 | SecureFiles特性 | 技术特点 |
10g | • 默认LOB存储 • 手动管理CHUNK/PCTVERSION | 未支持 | - |
11g | • 仍可创建 • 易碎片化 | • 引入压缩/加密/去重 • 写性能提升 | 重构LOB架构,支持高级功能 |
19c | • 兼容模式保留 • 官方建议迁移 | • ASSM表空间默认启用 • 支持TDE列加密 | 全面替代BasicFiles |
23ai | • 仅用于兼容旧数据 | • 深度集成AI向量搜索 • 支持JSON二元存储 | LOB与AI模型直接交互 |
2. 功能与性能对比
--ASSM表空间在上一期建好了
-- SecureFiles核心优势(11g+)
CREATE TABLE contracts1 (id NUMBER,doc CLOB
) LOB(doc) STORE AS SECUREFILE (COMPRESS HIGH -- 智能压缩DEDUPLICATE -- 跨分区去重ENCRYPT USING 'AES192' -- 透明加密--不要在SYS管理员用户建
) TABLESPACE ASSM_TS;
三、Oracle 23ai存储新特性:AI向量类型与存储融合
1. 核心创新方向
- Bigfile默认化除TEMP外所有系统表空间默认Bigfile,新表空间自动启用:
-- 23ai默认表空间类型验证
SELECT tablespace_name, bigfile FROM dba_tablespaces;
-- 输出:SYSAUX=YES, SYSTEM=YES, UNDOTBS1=YES
TABLESPACE_NAME BIGFILE
__________________ __________
SYSTEM YES
SYSAUX YES
UNDOTBS1 YES
TEMP NO
USERS YES
HR_DATA YES
HR_TEMP YES
OE_DATA YES
SH_DATA YES
CO_DATA YES
OE_TEMP YES
SH_TEMP YES
PM_TEMP YES
CO_TEMP YES
SHRINK_TS YES
SECURE_LOB_TS YES
ASSM_TS YES17 rows selected.Elapsed: 00:00:00.043
- SecureFiles AI化
- 向量存储集成:LOB字段直接映射为AI向量
CREATE TABLE research_papers (id NUMBER PRIMARY KEY,content CLOB, -- 不在此处指定SecureFileembedding VECTOR(1024) -- 1024维向量列
) TABLESPACE assm_ts LOB(content) STORE AS SECUREFILE ( -- 正确语法位置COMPRESS HIGH -- 可选高级功能
);
--Table RESEARCH_PAPERS created.
Elapsed: 00:00:00.098
2. 自然语言查询:
-- 手动输入向量值(需提前通过AI模型生成)
SELECT content
FROM research_papers
ORDER BY VECTOR_DISTANCE(embedding, TO_VECTOR('[0.1,0.5,0.8]', 1024, FLOAT32) -- 实际数组3
)
FETCH FIRST 5 ROWS ONLY;
--
no rows selected
Elapsed: 00:00:00.018
- 自治存储优化
- 自动压缩冷数据SecureFiles
- Bigfile空间预警与ASM自动扩容
3. 发展趋势
- BasicFiles:23ai仅兼容保留,无功能更新
- Smallfile:非核心表空间使用,新项目不建议
四、实操脚本:19c ~ 23ai
1. 表空间与LOB配置(19c)
-- 1. 创建Smallfile+SecureFiles表空间(19c)
CREATE TABLESPACE sf_secure DATAFILE '/u01/app/oracle/oradata/TEST19/pdbrs6/sf1.dbf' SIZE 1G;
CREATE TABLESPACE sf_secure DATAFILE '/u01/app/oracle/oradata/TEST19/pdbrs6/sf2.dbf' SIZE 1G;
--Tablespace 已创建
-- 2. 迁移BasicFiles到SecureFiles
CREATE TABLE legacy_data (id NUMBER PRIMARY KEY, -- 修正:INT 改为 NUMBER,并添加主键约束document CLOB -- 修正:明确 LOB 类型为 CLOB/BLOB
)
LOB(document) STORE AS BASICFILE ( -- 显式指定存储类型(19c 默认可能为 SecureFile)TABLESPACE users -- 指定 LOB 存储表空间(需提前存在)DISABLE STORAGE IN ROW -- 禁用行内存储(优化大文本性能)CHUNK 8192 -- 设置 LOB 块大小(需与表空间块大小匹配)
);ALTER TABLE legacy_data MOVE LOB(document) STORE AS SECUREFILE (TABLESPACE sf_secure COMPRESS LOW);
--Table已变更。
-- 3. 验证SecureFiles启用
SELECT table_name, securefile FROM dba_lobs WHERE table_name = 'LEGACY_DATA';
-- 应返回YES
--
SYS@CDB$ROOT> SELECT table_name, securefile FROM dba_lobs WHERE table_name = 'LEGACY_DATA';TABLE_NAME SEC
------------------------------
LEGACY_DATA YES
3. 跨版本兼容性脚本
-- 同时兼容19c/23ai的SecureFiles创建
DECLAREv_securefile VARCHAR2(20);
BEGINSELECT VALUE INTO v_securefile FROM v$parameter WHERE name = 'db_securefile';IF v_securefile = 'FORCE' THENEXECUTE IMMEDIATE 'CREATE TABLE t_uni (doc CLOB) LOB(doc) STORE AS SECUREFILE';ELSEEXECUTE IMMEDIATE 'CREATE TABLE t_uni (doc CLOB)';END IF;
END;-- 之前已经新建名为ASSM_TS的ASSM表空间
DECLAREv_securefile VARCHAR2(20);
BEGIN-- 获取db_securefile参数值SELECT VALUE INTO v_securefile FROM v$parameter WHERE name = 'db_securefile';IF v_securefile = 'FORCE' THEN-- 必须在ASSM表空间中创建SecureFile LOBEXECUTE IMMEDIATE 'CREATE TABLE t_uni (doc CLOB)TABLESPACE ASSM_TS -- 显式指定ASSM表空间LOB(doc) STORE AS SECUREFILE (COMPRESS HIGH -- 可选:启用高级压缩DEDUPLICATE -- 可选:启用重复数据删除)';ELSE-- 非SecureFile模式,但仍需指定表空间EXECUTE IMMEDIATE 'CREATE TABLE t_uni (doc CLOB)TABLESPACE ASSM_TS -- 显式指定表空间';END IF;
END;
/
---
PL/SQL procedure successfully completed.Elapsed: 00:00:00.054
五、技术选型与未来趋势
-
版本对比决策
需求 | 10g/11g | 19c | 23ai | |
超大规模数据存储 | Bigfile+BasicFile | Bigfile+SecureFile | Bigfile+SecureFile+AI | |
高频事务处理 | Smallfile | Smallfile | Smallfile(仅PDB) | |
非结构化数据高级管理 | 不可行 | SecureFile | SecureFile+向量化 |
-
核心趋势
- 存储智能化:Bigfile成为基础设施,SecureFiles支持AI原生交互
- 架构融合:LOB数据可直接参与向量计算,消除ETL链路
- 自治运维:AI驱动存储压缩、扩容、故障预测(23ai OCI增强特性)
新建系统建议:
- 新项目统一采用 Bigfile + SecureFiles
- 旧系统迁移参考脚本优先保障兼容性
- 23ai项目重点验证向量搜索与JSON二元存储性能