首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 8 不安全因素深度剖析與系統調優建議

     編輯:Oracle 資料庫相關知識

前言

Oracle 8 作為物件關聯式資料庫傑出代表,在規模、多媒體支援、並行性、安全性上均優於 Sybase、Informix。8.0.4 更引入資料分區、物件關聯技術、索引組織表、連線管理器、進階佇列等新特性,被視為 PeopleSoft、SAP、Baan 等封裝應用的最佳引擎。但任何軟體都有缺陷,本文揭露大型系統中發現的隱患。

案例背景

  • 架構:主機-終端模式,4 台 HP-9000 小型機,1.5GB 記憶體
  • 初始參數:區塊 2K、交易數 32(採預設值),未分區建表
  • 症狀:大表頻繁被鎖、用戶無法進入、CPU 峰值 90%+、頻現 ORA-600 錯誤

排查過程

  1. 鎖監控 SQL:查 V$LOCKED_OBJECT 與 V$SESSION 定位鎖表會話,殺掉緩解但非根治。
  2. Rollback Segment 調整:設 MINEXTENTS=20、調大 OPTIMAL、指定大 rollback segment,ORA-600 依舊,鎖爭用更嚴重。
  3. 重啟資料庫:資源釋放、速度恢復,但隨後出現單筆資料無法 UPDATE(內部錯誤)、唯一索引表出現重複值、索引重建失敗、發現重複索引導致 Hang、日誌檔過小 (7MB) 導致 Checkpoint 頻繁、自動 Down 機、Rollback Segment online/offline 異常。

廠商回應與現狀

Oracle 技術工程師承認 8.0.4 版本問題,承諾提供 Patch,但打 Patch 需全庫 Export、重新編譯所有程式、耗時一週以上,風險極高,目前仍在等待更好方案。

系統設計六大建議

  1. 硬體特性匹配:HP 偏重 I/O,避免 CPU 過載;DEC 偏重 CPU,可增大 CPU 相關參數;Sun 需平衡配置。
  2. 日誌檔 ≥ 8MB:過小導致 Checkpoint 頻繁拖垮效能。
  3. Rollback Segment 合理配置:大 Segment 增加 MINEXTENTS、設定 OPTIMAL,減少動態擴展/回收。
  4. 提升 CPU 擊中率:適度增大 log_simultaneous_copies、db_block_latches、db_writers。
  5. 增加緩衝區:適度增大 db_block_buffers、shared_pool_size,提升 Buffer 與 SQL 命中率。
  6. 改用 Client/Server 架構:主機-終端模式導致主機負載過重,建議採用客戶端-伺服器模式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved