oracle的塊 db_block_size
其實在unix類作業系統中,檔案塊和oracle塊的關係非常緊密(建議相等),這樣才能保證資料庫的執行效率。在windows下可能就不這麼講究了。建議使用8k以上的塊,我做過測試,同樣的配置,8k的塊比4k快大約40%,比2k快3倍以上(從hit_ratio來看)。
一般麼人都是8k,通過
sql語句:select value from v$parameter where name='db_block_size' 檢視具體大小
非sql語句(在命令視窗中執行):show parameter block;
假設你的事物將對磁碟單元寫入32KB的資料,DB_BLOCK_SIZE引數就設為8KB。在這個例子中,Oracle必須執行四個I/O工作單元(32KB/8KB=4)來完成這一操作。
==============================================================
很不幸,你遇到了一個很難碰到的問題。很不幸,你現在一定心急火燎。能遇到這種錯誤的人絕不是一般人。那麼你一定不是一個凡人,you are special。
呵呵,不和你開玩笑了。現在就分析這個問題的原因。
oracle支援的檔案大小和他的db_block_size和db_block的數量決定的。在oracle 9i以前,oracle 的db_block的數量最大隻能為2的22次方個,而我們通過oracle預設的模板建的資料庫例項的db_block_size是8K。所以oracle 9i以前支援的單個檔案的預設大小是32GB。雖然在oracle 11g沒有這個限制,但是它預設的能力也是這麼多。所以我在前面講如果你遇到這個問題,說明你不是一般人,你在建立一個單個檔案超過32GB的表空間。
那麼怎麼解決這個問題呢,我這裡提供三個參考方案,你使用選擇其中對你合適的,呵呵:
一)不要建立單個檔案超過32GB的表空間
如果你建立的表空間超過32GB,請把這個表空間儲存為多個資料檔案,每個檔案不大於32GB。這樣,就可以成功的建立表空間。
二)擴大db_block_size
根據oracle的演算法,我們很容易想到這個解決方法。數目衡定,但是db_block_size可以更改(db_block_size的最大大小為32KB)。如果把db_block_size擴大到32KB(32位系統好像是16KB,我在Red Hat 企業版的作業系統建立32KB的block_size失敗。),那麼我們的系統就可以支援單個資料檔案最大128GB。
這個方案聽起來好像很迷人,但是實際上並不是那麼回事。因為要修改db_block_size並不是很容易的事。因為這個db_block_size在建立例項的時候就要指定。而且不能通過簡單修改引數來指定db_block_size。建立更大的db_block_size的資料庫例項我會在以後講。
三)建立bigfile表空間
在oracle11g中引進了bigfile表空間,他充分利用了64位CPU的定址能力,使oracle可以管理的資料檔案總量達到8EB。單個資料檔案的大小達到128TB,即使預設8K的db_block_size也達到了32TB。
建立bigfile的表空間使用的sql語句也很簡單。
create bigfile tablespace...
後面的語句和普通的語句完全一樣。
需要注意的是使用bigfile表空間,他只能支援一個資料檔案。也就是說這個檔案的最大大小就是表空間最大大小,你不可能通過增加資料檔案來擴大該表空間的大小。所以oracle說,如果你的這個檔案沒有剩餘空間的話,你還是不要使用bigfile表空間了,這個表空間你沒有擴充套件的餘地了,呵呵。
oracle也同樣告訴你了,建議你使用lvm或者別的軟體管理磁碟,以使你的空間可以動態擴大。呵呵,先講到這裡,如果還有不明白的,請告訴我。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23577591/viewspace-691316/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2.6.5.1 DB_BLOCK_SIZE 初始化引數BloC
- oracle壞塊(二)Oracle
- Oracle壞塊處理Oracle
- Oracle資料塊格式Oracle
- Oracle Block Cleanouts 塊清除OracleBloC
- Oracle PL/SQL塊簡介OracleSQL
- 【BLOCK】Oracle 塊管理常用SQLBloCOracleSQL
- ORACLE 資料塊格式深入解析Oracle
- 【DATAGUARD】Oracle Dataguard nologging 塊修復Oracle
- 例項演示oracle資料塊狀態檢視v$bh的用法一 獲取oracle物件所佔用的資料塊Oracle物件
- Oracle日常問題-壞塊修復Oracle
- truncate操作消除ORACLE SEG壞塊解析Oracle
- Oracle OCP(46):表空間、段、區、塊Oracle
- Oracle 21C區塊連結串列Oracle
- Oracle索引塊分裂split資訊彙總Oracle索引
- Oracle資料庫壞塊典型案例分析Oracle資料庫
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- oracle asm 資料塊重構恢復OracleASM
- 【TUNE_ORACLE】檢視錶的總塊數SQL參考OracleSQL
- Oracle資料庫壞塊典型案例擴充Oracle資料庫
- 檢視Oracle各組成部份(如資料塊頭)的大小Oracle
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- Oracle 20c 新特性:原生的區塊鏈支援 Native Blockchain tablesOracle區塊鏈Blockchain
- [20190311]關於oracle物理與邏輯壞塊.txtOracle
- oracle 普通表空間資料檔案壞塊Oracle
- 12_深入解析Oracle FLM段頭塊結構Oracle
- 什麼是區塊鏈預言機(BlockChain Oracle)區塊鏈BlockchainOracle
- 【TUNE_ORACLE】檢視Oracle的壞塊在空閒空間中還是在已用空間中的SQL參考OracleSQL
- 一次ORACLE資料庫undo壞塊處理Oracle資料庫
- Oracle資料庫出現ORA-19566 LOB壞塊的處理記錄Oracle資料庫
- Oracle資料庫處理壞塊問題常用命令Oracle資料庫
- 1_深入解析Oracle ASSM 段頭塊(PAGETABLE SEGMENT HEADER)結構OracleSSMHeader
- oracle的比率:Oracle
- oracle的索引Oracle索引
- oracle的表Oracle
- oracle的鎖Oracle
- 全球第二大軟體公司Oracle將提供區塊鏈產品Oracle區塊鏈
- java中的程式碼塊(初始化塊)Java
- 【RECO_ORACLE】Oracle閃回PDB的方法Oracle