Red Hat Training
A Red Hat training course is available for Red Hat Satellite
D.9. Oracle 8i、9i、10g 以及 11g
本節的偵測可用於符合可支援 Oracle 資料庫版本的執行個體。要讓這些 Oracle 偵測運作正常,請使用以下指令,設定資料庫與關聯:
$ORACLE_HOME/rdbms/admin/catalog.sql
除此之外,要讓這些偵測順利運作,這偵測中設定好的 Oracle 使用者最少應該要有 CONNECT 與 SELECT_CATALOG_ROLE 的權限。
有些 Oracle 偵測是特別用來微調裝置,以提高長期效能;而不是避免服務中斷。因此,Red Hat 建議您排程這些動作時,不要太頻繁,設在每小時到每兩天之間。跟更短的時間比起來,這會提供更佳的統計數據,也可以不過度強調短期的異常事件。這適用於以下偵測:Buffer Cache(緩衝區快取)、Data Dictionary Cache(資料字典快取)、Disk Sort Ratio(磁碟排序比)、Library Cache(函式庫快取)、以及 Redo Log(重新動作紀錄)。
對於依靠時間來運作的 CRITICAL(極限值)與 WARNING(警告值)門檻,這些值不能超過所分配的 timeout 值。否則的畫,超過延遲時間都會傳回 UNKNOWN(未知)狀態,讓這些門檻值失效。因此 Red Hat 強烈建議您確定 timeout 值超過所有與時間有關的門檻值。在本節中,這特別指得是 TNS Ping 偵測。
最後,將這些 Oracle 偵測用在多執行續伺服器(MTS,multi-threaded server)的 Oracle 資料庫之用戶,請連絡 Red Hat 的客戶支援,好將一些資料加入 RHN 伺服器的
/etc/hosts
檔案,以確定 DNS 名稱能正確地解析出來。
D.9.1. Oracle::Active Sessions
Oracle::Active Sessions 偵測會監控 Oracle 的 instance,並蒐集以下資料:
- 運作中的 session — 根據
V$PARAMETER.PROCESSES
而來的數據,顯示目前運作中的 session 數。 - 可用的 session — 根據
V$PARAMETER.PROCESSES
而來的運作中 session 百分比。
表格 D.48. Oracle::Active Sessions 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
最大運作中 session 的極限值 | |
最大運作中 session 的警告值 | |
最大已用的可用 session 之極限值 | |
最大已用的可用 session 之警告值 |
D.9.2. Oracle::Availability
Oracle::Availability 偵測會決定 RHN Satellite 資料庫的可用性。
表格 D.49. Oracle::Availability 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
D.9.3. Oracle::Blocking Sessions
Oracle::Blocking Sessions 偵測會監控 Oracle 的 instance,並蒐集以下資料:
- 阻絕 session — 阻止其它 session 改變 Oracle 資料庫的行程數目,這會由您在必填的阻絕時間欄位中填入的值來決定。只有被這時間(以秒為單位)所阻絕的 session,才會被算為被阻絕的 session。
表格 D.50. Oracle::Blocking Sessions 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
阻絕時間(秒)* | 20 |
Timeout* | 30 |
最大阻絕 session 的極限值 | |
最大阻絕 session 的警告值 |
D.9.4. Oracle::Buffer Cache
Oracle::Buffer Cache 偵測會計算緩衝區快取的擊中率(hit rate),好對系統全域資料庫(SGA)資料庫緩衝快取的大小作最佳化。它會蒐集以下資料:
- 資料庫磁區 get — 透過單磁區 get 存取的區塊數目(而非透過一致性的 get 機制)。
- 一致性 get — 在一致性模式中存取磁區緩衝區的數目。
- 實際讀取 — 從磁碟中讀取磁區的累積數目。
- 緩衝區快取擊中率 — 資料庫從快取(而非硬碟)取得資料的比率。低比率表示系統需要更多的記憶體。
表格 D.51. Oracle::Buffer Cache 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠 | 1521 |
Timeout* | 30 |
最小緩衝區快取擊中率的警告值 | |
最小緩衝區快取擊中率的極限值 |
D.9.5. Oracle::Client Connectivity
Oracle::Client Connectivity 偵測會決定資料庫是否已經啟用上線,並能接受自受監控系統而來的連線。這偵測會向系統開啟
rhnmd
連線,並在受偵測的系統上發出 sqlplus connect
指令。
「Expected DB name」參數是
V$DATABASE.NAME
的期望值。這個值有大小寫的分別。若找不到這個值,則會傳回 CRITICAL 狀態。
需求 — 要執行本偵測,受監控的系統上必須執行 Red Hat Network Monitoring Daemon(
rhnmd
)。要執行這項偵測,您必須賦予 nocpulse
使用者讀取紀錄檔的權限。
表格 D.52. Oracle::Client Connectivity 設定
欄位 | 值 |
---|---|
Oracle 主機名稱或 IP 位址* | |
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
ORACLE_HOME* | /opt/oracle |
預期資料庫名稱* | |
Timeout* | 30 |
D.9.6. Oracle::Data Dictionary Cache
Oracle::Data Dictionary Cache 偵測會計算資料字典快取的擊中率,好將
init.ora
中的 SHARED_POOL_SIZE 最佳化。它會蒐集以下資料:
- 資料字典擊中率 — 從資料字典快取中取得資料的比率。換句話說,這是從資料字典取得資料,而不是從硬碟中取得資料的比率。低比率表示系統需要更多記憶體。
- get — 透過單磁區 get(而非一致性 get 機制)所取得的磁區數量。
- 快取未擊中率 — 用一致性模式,從磁區快取取得資料的數量。
表格 D.53. Oracle::Data Dictionary Cache 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
最小資料字典擊中率的警告值 | |
最小資料字典擊中率的極限值 |
D.9.7. Oracle::Disk Sort Ratio
Oracle::Disk Sort Ratio 偵測會監控 Oracle 資料庫的執行個體,並蒐集以下資料:
- 磁碟排序率 — Oracle 進行排序,但因為太大而無法完成,必須用暫存區段進行的比率。
表格 D.54. Oracle::Disk Sort Ratio 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
最大磁碟排序比率的極限值 | |
最大磁碟排序比率的警告值 |
D.9.8. Oracle::Idle Sessions
Oracle::Idle Sessions 偵測會監控 Oracle 的執行個體,並蒐集以下資料:
- 閒置 session — Oracle session 的閒置數量;這個值與您所設定的「閒置時間」有關。只有超過這閒置時間(以秒為單位)的 session,才會被視為是閒置 session。
表格 D.55. Oracle::Idle Sessions 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
閒置時間(秒)* | 20 |
Timeout* | 30 |
最大閒置 session 的極限值 | |
最大閒置 session 的警告值 |
D.9.9. Oracle::Index Extents
Oracle::Index Extents 偵測會監控 Oracle 的執行個體,並蒐集以下資料:
- 已分配的 extent — 為任何索引所分配的 extent 數量。
- 可用的 extent — 任何索引可用的 extent 百分比。
必備的「索引名稱」欄位包含了預設值
%
,用於所有索引名稱。
表格 D.56. Oracle::Index Extents 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
索引擁有者* | % |
索引名稱* | % |
Timeout* | 30 |
最大可分配 extent 的極限值 | |
最大可分配 extent 的警告值 | |
最大可用 extent 的極限值 | |
最大可用 extent 的警告值 |
D.9.10. Oracle::Library Cache
Oracle::Library Cache 偵測會計算函式庫快取的非擊中率,好為
init.ora
的 SHARED_POOL_SIZE 最佳化。它會蒐集以下資料:
- 函式庫快取失誤率 — 函式庫快取的失誤比率。當 session 執行一項敘述,而這敘述已經被解析過,但卻不再共享空間中。
- 執行 — 這命名空間的物件所需 pin 的數量。
- 快取未擊中率 — 之前物件處理時產生的物件 pin,現在得由磁碟存取物件的數量。
表格 D.57. Oracle::Library Cache 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
最大函式庫快取未擊中率的極限值 | |
最大函式庫快取未擊中率的警告值 |
D.9.11. Oracle::Locks
Oracle::Locks 偵測會監控 Oracle 資料庫的執行個體,並蒐集以下資料:
- 啟用中的鎖 — 目前啟用中的鎖之數目,這個值會由 v$locks 表格中的值來決定。資料庫管理者應該注意,在資料庫執行個體中,這個數字極高。
鎖的作用在於當多名使用者或多個行程在更新資料庫中的同樣資料時,不會有衝突情形發生。這偵測能警告管理者,某個執行個體是不是有極高數量的鎖。
表格 D.58. Oracle::Locks 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
最大啟用中的鎖之極限值 | |
最大啟用中的鎖之警告值 |
D.9.12. Oracle::Redo Log
Oracle::Redo Log 偵測會監控 Oracle 資料庫的執行個體,並蒐集以下資料:
- 重做紀錄空間需求率 — 自伺服器啟動後,每分鐘重做紀錄空間的平均需求數。
- 重做緩衝區分配重試率 — 自伺服器啟動後,每分鐘緩衝區分配重試的平均數目。
這些傳回的資料與資料所衡量的門檻數字,都代表每分鐘發生變化的比率。您應該監控這些資料的改變率,因為高成長意味著問題,需要進一步分析調查。
表格 D.59. Oracle::Redo Log 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
Timeout* | 30 |
最大重做紀錄空間需求率的極限值 | |
最大重做紀錄空間需求率的警告值 | |
最大重做緩衝區分配重試率的極限值 | |
最大重做緩衝區分配重試率的警告值 |
D.9.13. Oracle::Table Extents
Oracle::Table Extents 偵測會監控 Oracle 資料庫的執行個體,並傳回以下資料:
- 分配的 extent - 任何表格 — 任何表格的 extent 總數。
- 可用的 extent - 任何表格 — 任何表格的可用 extent 總數之百分比。
在 Oracle 中,表格 extent 是表格成長的方法。當表格滿了的時候,它會以表格建立時設定的空間延伸出去。extent 是以單表格為基礎來設定,包括 extent 的大小,以及 extent 的最大數量。
舉例來說,一開始空間設定為 10 MB 的表格,其 extent 大小為 1 MB,上限為 10 個。這空間最多可以成長到 20 MB(每次成長 1 MB,最多十次)。您可以設定這偵測,以提出警告:(1) 分配的 extent 數量(例如「當表格延伸了五次以上,進入 CRITICAL 狀態」)或 (2) 表格延伸超過了最大 extent 的某個百分比(例如「當表格延伸超過最大 extent 的 80% 以上)。
「表格擁有者」與「表格名稱」欄位是必填的,其中包含的預設值
%
表示符合任何表格使用者或名稱。
表格 D.60. Oracle::Table Extents 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
表格擁有者* | % |
表格名稱* | % |
Timeout* | 30 |
最大已分配 extent 的極限值 | |
最大已分配 extent 的警告值 | |
最大可用 extent 的極限值 | |
最大可用 extent 的警告值 |
D.9.14. Oracle::Tablespace Usage
Oracle::Tablespace Usage 偵測會監控 Oracle 資料庫的執行個體,並蒐集以下資料:
- 可用空間使用率 — 每個表格空間可用空間的已使用率。
表格空間是一個共享的空間,其中包含了許多組表格。當可用空間的總數落在門檻值以下時,這偵測會警告使用者。表空間的單位是位元組,因此 extent 並不直接算入(雖然每次延伸都會從共享空間中移除可用空間)。
「表格空間名稱」是必填的欄位,大小寫有別,其中包含的預設值
%
符合任何表格空間。
表格 D.61. Oracle::Tablespace Usage 設定
欄位 | 值 |
---|---|
Oracle SID* | |
Oracle 使用者名稱* | |
Oracle 密碼* | |
Oracle 連接埠* | 1521 |
表格空間名稱* | % |
Timeout* | 30 |
最大可用空間使用率之極限值 | |
最大可用空間使用率之警告值 |