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

发布于:2025-06-16 ⋅ 阅读:(13) ⋅ 点赞:(0)

小伙伴们是不是在文件选择上还默认给建文件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. 功能与性能对比 

--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
验证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二元存储性能

网站公告

今日签到

点亮在社区的每一天
去签到