Oracle SecureFile的功能第3/4頁(yè)
COMMIT;
END;
/
EXEC DBMS_STATS.gather_table_stats(USER, 'nocompress_tab');
EXEC DBMS_STATS.gather_table_stats(USER, 'compress_tab');
COLUMN segment_name FORMAT A30
SELECT segment_name, bytes
FROM user_segments
WHERE segment_name IN ('COMPRESS_LOB', 'NOCOMPRESS_LOB');
SEGMENT_NAME BYTES
------------------------------ ----------
COMPRESS_LOB 131072
NOCOMPRESS_LOB 71565312
2 rows selected.
SQL>
我們可以看到壓縮的LOB段比沒有壓縮的LOB段明顯要小得多,空間節(jié)約的程度依賴于LOB段數(shù)據(jù)的存儲(chǔ)類型。
可以使用ALTER TABLE命令重新設(shè)置壓縮模式。
ALTER TABLE compress_tab MODIFY LOB(clob_data) ( NOCOMPRESS ); EXEC DBMS_STATS.gather_table_stats(USER, 'compress_tab'); COLUMN segment_name FORMAT A30 SELECT segment_name, bytes FROM user_segments WHERE segment_name IN ('COMPRESS_LOB', 'NOCOMPRESS_LOB'); SEGMENT_NAME BYTES ------------------------------ ---------- COMPRESS_LOB 76808192 NOCOMPRESS_LOB 71630848 2 rows selected. SQL> |
LOB加密
SecureFile LOB的加密功能依賴于錢夾或硬件安全模型(HSM)掌管加密密鑰,錢夾設(shè)置與透明數(shù)據(jù)加密(TDE)和表空間加密描述的一樣,因此在嘗試下面的例子前先完成那兩個(gè)實(shí)驗(yàn)。
SecureFile的ENCRYPT選項(xiàng)執(zhí)行塊級(jí)別的LOB內(nèi)容加密,一個(gè)可選的USING子句定義了使用哪種加密算法(3DES168, AES128, AES192, 或AES256),默認(rèn)使用AES192算法,NO SALT選項(xiàng)對(duì)于SecureFile加密不可用,加密是應(yīng)用在每一列上的,因此它會(huì)影響所有使用LOB的分區(qū),DECRPT選項(xiàng)用于明確地阻止加密,下面的例子顯示了使用加密的SecureFile LOB數(shù)據(jù)類型創(chuàng)建表。
CREATE TABLE encrypt_tab ( id NUMBER, clob_data CLOB ) LOB(clob_data) STORE AS SECUREFILE encrypt_lob( ENCRYPT USING 'AES256' ); |
ALTER TABLE命令可以用于加密或解密現(xiàn)有的列,要切換加密算法你必須使用REKEY選項(xiàng)。
ALTER TABLE encrypt_tab MODIFY ( clob_data CLOB DECRYPT ); ALTER TABLE encrypt_tab MODIFY ( clob_data CLOB ENCRYPT USING '3DES168' ); ALTER TABLE encrypt_tab REKEY USING 'AES192'; |
加密是不受原來的導(dǎo)入導(dǎo)出工具或表空間傳輸支持的,因此必須使用數(shù)據(jù)泵導(dǎo)入導(dǎo)出工具來傳輸數(shù)據(jù)。
LOB緩存和日志
BasicFile和SecureFile LOB共享了部分基礎(chǔ)的緩存和日志選項(xiàng),常見的緩存選項(xiàng)有:
◆CACHE - LOB數(shù)據(jù)被放在緩沖區(qū)中。
◆CACHE READES - 僅讀取LOB數(shù)據(jù)過程中它放在緩沖區(qū)中,寫操作時(shí)不放進(jìn)去。
◆NOCACHE - LOB數(shù)據(jù)不放在緩沖區(qū)中,這是BasicFile和SecureFile LOB的默認(rèn)值。
基本的日志選項(xiàng)有:
◆LOGGING - 創(chuàng)建和修改LOB時(shí)產(chǎn)生完全重做日志,這是默認(rèn)設(shè)置。
◆NOLOGGING - 操作不記錄在重做日志中,因此不能恢復(fù),在首次創(chuàng)建和巨大的載入過程中有用。
而且,SecureFile LOB還有一個(gè)日志選項(xiàng)FILESYSTEM_LIKE_LOGGING,只記錄元數(shù)據(jù),在出現(xiàn)故障后仍然允許段的恢復(fù)。
CACHE選項(xiàng)意味著LOGGING,因此你不能將CACHE與NOLOGGING或FILESYSTEM_LIKE_LOGGING合在一起使用。
下面的代碼顯示了一個(gè)在表創(chuàng)建過程中和創(chuàng)建后明確設(shè)置了緩存和日志選項(xiàng)的例子。
CREATE TABLE caching_and_logging_tab ( id NUMBER, clob_data CLOB ) LOB(clob_data) STORE AS SECUREFILE( NOCACHE FILESYSTEM_LIKE_LOGGING ); ALTER TABLE caching_and_logging_tab MODIFY LOB(clob_data) ( CACHE ); PL/SQL API |
相關(guān)文章
Oracle Translate 統(tǒng)計(jì)字符出現(xiàn)的次數(shù)示例代碼
這篇文章主要介紹了Oracle Translate 統(tǒng)計(jì)字符出現(xiàn)的次數(shù)示例代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03oracle中左填充(lpad)和右填充(rpad)的介紹與用法
這篇文章主要跟大家介紹了關(guān)于oracle中左填充(lpad)和右填充(rpad)的相關(guān)資料,通過填充我們可以固定字段的長(zhǎng)度,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-08-08Oracle的數(shù)據(jù)字典技術(shù)簡(jiǎn)析
Oracle的數(shù)據(jù)字典技術(shù)簡(jiǎn)析...2007-03-03Oracle怎么刪除數(shù)據(jù),Oracle數(shù)據(jù)刪除的三種方式
這篇文章主要介紹了Oracle中刪除數(shù)據(jù)的三種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Oracle數(shù)據(jù)庫(kù)優(yōu)化策略總結(jié)篇
本文介紹了一些很實(shí)用但卻不是很常見的Oracle數(shù)據(jù)庫(kù)的優(yōu)化策略,包括批量FETCH、SQL預(yù)解析等,需要的朋友可以參考下2015-08-08