可以透過以下方式監視 HADB 的活動:
這些小節簡要說明 hadbm status、hadbm deviceinfo 和 hadbm resourceinfo 指令。如需有關解釋 HADB 資訊的資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Performance Tuning Guide」中的「Performance」。
使用 hadbm status 指令可顯示資料庫或其節點的狀態。指令語法為:
hadbm status [--nodes] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 運算元指定資料庫名稱。預設為 hadb。
--nodes 選項 (短形式 -n) 顯示資料庫中每個節點上的資訊。如需更多資訊,請參閱節點狀態。請參閱一般選項,以取得其他指令選項說明。
如需更多資訊,請參閱 hadbm-status(1)。
例如︰
hadbm status --nodes
資料庫的狀態概括其目前情況。下表說明可能的資料庫狀態。
表 3–14 HADB 狀態
資料庫狀態 |
說明 |
---|---|
高可用性錯誤容錯 (HAFaultTolerant) |
資料庫是錯誤容錯的,並且在每個 DRU 上至少有一個備援節點。 |
錯誤容錯 |
所有鏡像的節點對均啟動並在執行。 |
可作業 |
每個鏡像的節點對中至少一個節點在執行。 |
不可作業 |
一個或多個鏡像的節點對均遺失兩個節點。 如果資料庫不可作業,請按照清除資料庫中的說明清除資料庫。 |
已停止 |
資料庫中沒有節點在執行。 |
不明的 |
無法確定資料庫的狀態。 |
使用 --nodes 選項 hadbm status 指令可顯示資料庫中每個節點的以下資訊:
可以按照以下小節中的說明變更節點的角色和狀態:
在建立節點期間為其指定角色,角色可以是以下任意一個:
使用中:儲存資料並允許用戶端存取。使用中的節點在鏡像對中。
備援:允許用戶端存取,但不儲存資料。初始化資料裝置後,監視其他資料節點以在其他節點不可用時啟動修復程序。
離線:不提供任何服務,除非角色變更。置回線上時,其角色會變更回先前的角色。
關閉:使用中和離線之間的中間步驟,等待備援節點接管其功能。備援節點接管後,節點即離線。
節點可處於以下任意一種狀態:
正在啟動:節點正在啟動。
等待中:節點無法確定其啟動層級,處於離線狀態。如果某個節點處於此狀態超過兩分鐘,請停止該節點並在 repair 層級啟動節點。請參閱停止節點、啟動節點和清除資料庫。
正在執行:節點正在提供適合其角色的所有服務。
正在停止:節點正在執行停止程序。
已停止:節點為非使用中。禁止修復已停止的節點。
正在回復:節點正在回復。節點出現故障時,鏡像節點會接管出現故障的節點的功能。出現故障的節點嘗試使用主記憶體中或磁碟上的資料和記錄回復。出現故障的節點使用鏡像節點中的記錄擷取在其當機時執行的作業事件。如果回復成功,節點即變為使用中。如果回復失敗,節點狀態變為正在修復。
正在修復:正在修復節點。此作業重新初始化節點並從鏡像節點中複製資料和記錄。修復比回復更為耗時。
監視 HADB 資料 (磁碟儲存) 裝置中的自由空間:
常規檢查磁碟空間的使用趨勢。
做為預防性維護的一部分:如果使用者載入增加,且您要重新調整資料庫配置大小或比例。
做為調整資料庫比例的一部分:執行 hadbm addnodes 新增節點至系統之前,請檢查是否有足夠的裝置空間。請記住,您在現有節點上需要大約 40-50% 的自由空間才能增加節點。
在歷史檔案和 server.log 檔案中看到諸如:
No free blocks on data devices
No unreserved blocks on data devices 之類的訊息時。
使用 hadbm deviceinfo 指令取得有關資料裝置中自由空間的資訊。此指令可顯示資料庫每個節點的以下資訊:
配置的總裝置大小,以 MB 表示 (Totalsize)。
自由空間,以 MB 表示 (Freesize)。
目前裝置使用百分比 (Usage)
指令語法為:
hadbm deviceinfo [--details] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 運算元指定資料庫名稱。預設為 hadb。
--details 選項可顯示以下附加資訊:
裝置讀取作業的次數。
裝置寫入作業的次數。
裝置名稱。
請參閱一般選項,以取得其他指令選項說明。
如需更多資訊,請參閱 hadbm-deviceinfo(1)。
若要確定可用於使用者資料的可用空間,請用總裝置大小減去為 HADB 保留的空間:4 x LogBufferSize + 1% x 裝置大小。如果不知道記錄緩衝區的大小,請使用指令 hadbm get logbufferSize。例如,如果總裝置大小為 128 MB,LogBufferSize 為 24 MB,則可用於使用者資料的空間為 128 – (4 x 24) = 32 MB。在 32 MB 中,一半用於重複的資料,大約百分之一用於索引,僅 25% 可真正用於使用者資料。
使用者資料可用的空間為總大小和保留大小之間的差。如果將來重新分段資料,自由空間大小必須大約等於使用者資料可用空間的 50%。如果重新分段組無關緊要,則資料裝置可達至其最大值。系統裝置空間不足時,資源使用量警告會寫入歷史檔案。
如需有關調校 HADB 的更多資訊,請參閱Sun Java System Application Server Performance Tuning Guide。
以下指令:
hadbm deviceinfo --details
顯示以下範例結果:
NodeNO Totalsize Freesize Usage NReads NWrites DeviceName 0 128 120 6% 10000 5000 C:\Sun\SUNWhadb\hadb.data.0 1 128 124 3% 10000 5000 C:\Sun\SUNWhadb\hadb.data.1 2 128 126 2% 9500 4500 C:\Sun\SUNWhadb\hadb.data.2 3 128 126 2% 9500 4500 C:\Sun\SUNWhadb\hadb.data.3
hadbm resourceinfo 指令可顯示 HADB 執行階段資源資訊。可以使用此資訊協助識別資源內容,並減少效能瓶頸。如需詳細資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 Performance Tuning Guide」中的「Tuning HADB」。
指令語法為:
hadbm resourceinfo [--databuf] [--locks] [--logbuf] [--nilogbuf] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 運算元指定資料庫名稱。預設為 hadb。
下表說明 hadbm resourceinfo 特殊指令選項。請參閱一般選項,以取得其他指令選項說明。
如需更多資訊,請參閱 hadbm-resourceinfo(1)。
表 3–15 hadbm resourceinfo 指令選項
選項 |
說明 |
---|---|
-d |
顯示資料緩衝區池資訊。 請參閱以下資料緩衝區池資訊,以取得更多資訊。 |
-l |
顯示鎖定資訊。 請參閱以下鎖定資訊,以取得更多資訊。 |
-b |
顯示記錄緩衝區資訊。 請參閱以下記錄緩衝區資訊,以取得更多資訊。 |
-n |
顯示節點內部記錄緩衝區資訊。 請參閱以下節點內部記錄緩衝區資訊,以取得更多資訊。 |
資料緩衝區池資訊包含:
NodeNo:節點編號。
Avail:可用的池總空間 (MB)。
Free:可用的自由空間 (MB)。
Access:自啟動至目前從資料庫存取資料緩衝區的累積次數。
Misses:自資料庫啟動至目前已發生頁面錯誤的累計次數。
Copy-on-Write:出於檢查點操作目的而在資料緩衝區中內部複製頁面的累計次數。
使用者作業事件對記錄執行作業時,包含該記錄的頁面必須在資料緩衝區池中。如果不在,將會發生 miss 或頁面錯誤。然後,作業事件必須等待,直至從磁碟上的資料裝置檔案中擷取頁面。
如果遺失率高,請增大資料緩衝區池。因為遺失是累積的,請定期執行 hadbm resourceinfo,並使用兩次執行之間的差異查看遺失率趨勢。如果自由空間非常小,也不必擔心,因為檢查點機制將使新的區段變得可用。
例如︰
NodeNO Avail Free Access Misses Copy-on-Write 0 256 128 100000 50000 10001 256 128 110000 45000 950 |
鎖定資訊如下:
NodeNo:節點編號。
Avail:節點上可用鎖定的總數。
Free:自由鎖定的數目。
Waits:等待獲得鎖定之作業事件數。這是累積數。
一個單一作業事件無法使用節點上超過 25% 的可用鎖定。因此,執行大量作業的作業事件因該瞭解此限制。最好成批執行此類作業事件,其中每一批必須做為獨立作業事件處理,亦即每一批均進行確定。這是必須的,因為以 repeatable read 隔離層級執行的讀取作業與 delete、insert 和 update 作業,都是使用只有在作業事件終止後才會釋放的鎖定。
如要變更 NumberOfLocks,請參閱清除和歸檔歷史檔案。
例如︰
NodeNO Avail Free Waits 0 50000 20000 101 50000 20000 0 |
記錄緩衝區資訊為:
NodeNo:節點編號。
Available:配置給記錄緩衝區的記憶體容量 (MB)
Free:可用記憶體容量 (MB)
如果自由空間非常小,請勿擔心,因為 HADB 會壓縮記錄緩衝區。HADB 從環狀緩衝區開始壓縮,並在連續的記錄上執行壓縮。當 HADB 遇到節點尚未執行且鏡像節點尚未接收的記錄時,壓縮無法繼續
例如︰
NodeNO Avail Free 0 16 21 16 3 |
節點內部記錄緩衝區資訊為:
節點編號。
Available:配置給記錄裝置的記憶體容量 (MB)
Free:可用記憶體容量 (MB)
例如︰
NodeNO Avail Free
0 16 21 16 3