首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle Redo/Archive Log 檔案佈局與 DBWR/ARCH 爭用消除策略

     編輯:Oracle 資料庫基礎

重做日誌、歸檔日誌、資料檔、程式碼檔的物理佈局決定 I/O 爭用程度。正確佈局是效能基石。

一、四大檔案類型分盤黃金法則

檔案類型特性佈局原則禁忌同盤對象
Online Redo Log循序寫入、高頻、低延遲要求專用磁碟/控制器;多重成員分不同磁碟System/RBS/Data/Index 表空間
Archive Log批次寫入、大量、間歇性獨立磁碟;空間不足會凍結資料庫System/RBS/Index、Online Redo Log
Data Files隨機讀寫、核心業務依表空間分盤;大表跨磁碟 Striping程式碼檔 (Oracle Home)、Redo/Archive
Oracle Binary/Code啟動/修補時讀取與資料檔分離;若必須同盤放最冷資料檔Data Files

二、非 Oracle 檔案 I/O 隔離

OS、備份軟體、其他應用的 I/O 勿與 Oracle 核心檔案共用磁碟/控制器。

三、DBWR 內部爭用與 ARCH 爭用雙重解決

  1. 多 DBWR:DB_WRITERS = N ~ 2N (N=磁碟數)。
  2. 非同步 I/O:OS 支援時啟用 DISK_ASYNCH_IO=TRUE,單 DBWR 即可平行 I/O。
  3. ARCH 進程:歸檔目標為磁帶時調整 LOG_ARCHIVE_BUFFERS/LOG_ARCHIVE_BUFFER_SIZE;磁碟目標通常無需調整。

四、大表資料分散儲存實作

CREATE TABLESPACE trip
DATAFILE 'disk1/trip01.dbf' SIZE 500M,
         'disk2/trip02.dbf' SIZE 500M,
         'disk3/trip03.dbf' SIZE 500M;

CREATE TABLE large_table (...) 
TABLESPACE trip 
STORAGE (INITIAL 100M NEXT 100M MINEXTENTS 5 PCTINCREASE 0);

五、列遷移與列鏈結:I/O 殺手

  • Row Migration (列遷移):UPDATE 導致行長超過塊剩餘空間,整行移至新塊,原塊留指標。PCTFREE 過低主因。
  • Row Chaining (列鏈結):單行大於塊大小 (LONG/LOB/巨大行),跨多塊儲存。查詢需多次 I/O。

偵測與修復:ANALYZE TABLE t LIST CHAINED ROWS → 建立中介表 → 刪除遷移/鏈結行 → 重插入 → 再次分析。若仍有鏈結行 → 增大 DB_BLOCK_SIZE (需重建資料庫) 或調整行結構。

六、清除其他磁碟 I/O 干擾

資料塊空間分配參數 (PCTFREE/PCTUSED) 直接影響遷移/鏈結發生率,務必依平均行長與塊大小科學設定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved