小伙伴们是不是在文件选择上还默认给建文件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 YES
17 rows selected.
Elapsed: 00:00:00.043
- SecureFiles AI化
- 向量存储集成:LOB字段直接映射为AI向量
CREATE TABLE research_papers (
id NUMBER PRIMARY KEY,
content CLOB, -- 不在此处指定SecureFile
embedding 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创建
DECLARE
v_securefile VARCHAR2(20);
BEGIN
SELECT VALUE INTO v_securefile FROM v$parameter
WHERE name = 'db_securefile';
IF v_securefile = 'FORCE' THEN
EXECUTE IMMEDIATE 'CREATE TABLE t_uni (doc CLOB) LOB(doc) STORE AS SECUREFILE';
ELSE
EXECUTE IMMEDIATE 'CREATE TABLE t_uni (doc CLOB)';
END IF;
END;
-- 之前已经新建名为ASSM_TS的ASSM表空间
DECLARE
v_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 LOB
EXECUTE 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二元存储性能