40-Oracle 23 ai Bigfile~Smallfile-Basicfile~Securefile矩阵对比

小伙伴们是不是在文件选择上还默认给建文件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适用场景
  1. 数据仓库:单表超1TB时避免文件数量爆炸(如23ai中的AI向量库)
  2. ASM环境:依赖条带化分散I/O压力(11g+最佳实践)
  3. 归档系统:简化历史数据维护(19c+推荐)
  • Smallfile保留场景
  1. OLTP高并发:多文件分布提升I/O并行度(如高频交易库)
  2. 兼容性需求:迁移旧系统且存储设备异构(如10g遗留环境)
    Bigfile风险​:23ai中单文件损坏影响扩大,需搭配ASM冗余策略

二、LOB存储革命:BasicFiles vs SecureFiles

​1. 架构演进关键版本

|--------|----------------------------------|---------------------------|----------------|
| ​版本​ | BasicFiles特性​ | ​SecureFiles特性​ | ​技术特点​ |
| ​10g​ | • 默认LOB存储 • 手动管理CHUNK/PCTVERSION | 未支持 | - |
| 11g | • 仍可创建 • 易碎片化 | • 引入压缩/加密/去重 • ​写性能提升 | 重构LOB架构,支持高级功能 |
| ​19c | • 兼容模式保留 • 官方建议迁移 | • ASSM表空间默认启用 • 支持TDE列加密 | 全面替代BasicFiles |
| ​23ai​ | • 仅用于兼容旧数据 | • 深度集成AI向量搜索 • 支持JSON二元存储 | LOB与AI模型直接交互 |

2. 功能与性能对比
bash 复制代码
--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,新表空间自动启用:
bash 复制代码
-- 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向量
bash 复制代码
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. 自然语言查询​:
bash 复制代码
-- 手动输入向量值(需提前通过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)​
bash 复制代码
-- 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. 跨版本兼容性脚本
bash 复制代码
-- 同时兼容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

验证19c需手动启用SecureFiles:ALTER SYSTEM SET db_securefile=FORCE;

五、技术选型与未来趋势

版本对比决策

|------------|-------------------|--------------------|------------------------|---|
| ​需求 | 10g/11g​ | ​19c​ | ​23ai​ |
| 超大规模数据存储 | Bigfile+BasicFile | Bigfile+SecureFile | ​Bigfile+SecureFile+AI |
| 高频事务处理 | Smallfile | Smallfile | Smallfile(仅PDB) | |
| 非结构化数据高级管理 | 不可行 | SecureFile | ​SecureFile+向量化​ |

核心趋势
  1. 存储智能化:Bigfile成为基础设施,SecureFiles支持AI原生交互
  2. 架构融合:LOB数据可直接参与向量计算,消除ETL链路
  3. 自治运维:AI驱动存储压缩、扩容、故障预测(23ai OCI增强特性)
​新建系统建议​:
  1. 新项目统一采用 Bigfile + SecureFiles
  2. 旧系统迁移参考脚本优先保障兼容性
  3. 23ai项目重点验证向量搜索与JSON二元存储性能
相关推荐
聚客AI2 小时前
🛫AI大模型训练到发布一条龙:Hugging Face终极工作流
人工智能·llm·掘金·日新计划
Tapdata3 小时前
全球 DaaS 市场研究报告上线,聚焦数据服务化趋势与行业演进路径
数据库
新智元4 小时前
刚刚,谷歌 AI 路线图曝光:竟要抛弃注意力机制?Transformer 有致命缺陷!
人工智能·openai
Maynor9964 小时前
我是如何使用Claude Code
人工智能
知舟不叙4 小时前
基于OpenCV的图像增强技术:直方图均衡化与自适应直方图均衡化
人工智能·opencv·计算机视觉·图像增强
speop4 小时前
【datawhale组队学习】共读AI新圣经
人工智能·学习
李少兄4 小时前
MySQL 默认连接数
数据库·mysql
Blossom.1184 小时前
基于深度学习的智能图像增强技术:原理、实现与应用
人工智能·python·深度学习·神经网络·机器学习·tensorflow·sklearn
刘一说4 小时前
资深Java工程师的面试题目(六)数据存储
java·开发语言·数据库·面试·性能优化
江沉晚呤时4 小时前
EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库
java·开发语言·数据库