小伙伴們是不是在文件選擇上還默認給建文件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二元存儲性能