IBM® Informix® Dynamic Server (IDS) 因其管理的簡便性而聞名。OpenAdmin Tool (OAT) 是一種開放源碼的獨立於平台的新工具,它的開發讓 IDS 用戶可以輕鬆地管理伺服器。OpenAdmin Tool 提供用於執行管理任務的圖形界面和性能分析工具。OAT 是在 IBM Informix Dynamic Server 11.10 中引入的,它是一種基於 PHP 的 Web 瀏覽器管理工具,支持從單一位置管理多個資料庫伺服器實例。本文介紹非常有用的一些 OAT 特性並幫助您入門。
簡介
IBM Informix Dynamic Server 提供豐富的特性,能夠滿足不同用戶群的需要,包括開發人員和管理員。IDS 的優點之一是管理成本低。IDS 因其無需手動管理而聞名。OpenAdmin Tool (OAT) 是一種開放源碼的獨立於平台的新工具,它的開發讓 IDS 用戶可以輕鬆地管理伺服器。OAT 包含一個用於執行管理任務的圖形界面和性能分析工具。OAT 是在 IBM Informix Dynamic Server 11.10 中引入的,它是一種基於 PHP 的 Web 瀏覽器管理工具,支持從單一位置管理多個資料庫伺服器實例。非常有用的 OAT 特性包括 SQL Explorer、Session Explorer、Task Scheduler、Health Center、Space Administration、Server Administration 等等。除了 OAT 提供的內置特性之外,用戶還可以輕鬆地插入自己的擴展以創建所需的功能。本文介紹非常有用的一些 OAT 特性並幫助您入門。
前提條件
OAT 要求安裝以下產品。圓括弧中的版本是測試過 OpenAdmin Tool 的版本。圖 1 說明這些產品如何支持 OAT。
在 OpenAdmin Tool 附帶的 readme 文件中可以找到安裝說明(參見 參考資料)。
登錄並連接 IDS 伺服器
完成安裝之後,訪問 OAT 根 URL(例如,http://SERVERNAME/LOCATION,其中的 SERVERNAME 是運行 Web 伺服器的伺服器的名稱,LOCATION 是 OAT 在 Web 伺服器文檔根目錄中的位置,也就是解壓 OAT 的 tar 或 zip 的位置)。圖 2 顯示登錄屏幕:
在登錄屏幕的左上角有兩個單選按鈕,Login 和 Admin。默認選擇 Login。Group 列表框包含連接組名。可以使用默認組,也可以使用一個用戶定義的組,您的所有伺服器連接都屬於這個組。在選擇 Admin 單選按鈕時會啟用一些選項,可以通過選擇這些選項設置組的配置、伺服器的詳細信息及其密碼。
此屏幕上的 Get Servers 按鈕會顯示一個列表框,其中包含屬於所選組的所有伺服器連接。填充屏幕右邊的列表框。現在,單擊屏幕右邊的 Login 按鈕,就可以開始使用所選的伺服器連接。
選擇 Admin 單選按鈕就會切換到管理屏幕。管理屏幕提供用來配置 OAT、管理連接的選項。
OAT Config 選項
在管理菜單中,選擇 OAT Config 以設置運行 OAT 所需的參數。圖 4 顯示 OAT 配置屏幕。
在此屏幕上,可以設置以下參數:
參數 | 說明 |
---|---|
Default language | 默認情況下,語言是英語。可以切換到德語 |
Base URL | 這個 URL 指向 OAT 管理控制台 |
Install directory | 安裝 OAT 之後,存放與 OAT 相關的所有文件和文件夾的位置 |
Connections database location | 存儲與伺服器連接所需的資料庫詳細信息 |
Pinger interval | 可以根據需求和環境設置此值。默認值是 300 |
IDS protocol | 可以選擇 onsoctcp 或 ontlitcp 協議(onsoctcp 是默認協議) |
Manage Connections:
可以使用 Manage Connections 添加組、添加連接或查看 Connection Admin 屏幕。
在 Manage Connection 下面,選擇 Add A Group。屏幕應該與圖 5 相似。
要想添加一個 IDS 伺服器組,需要提供您選擇的伺服器組名和伺服器組密碼。如果選擇 Read only,就會禁用此組中定義的所有伺服器的 OAT 管理特權,比如添加區塊(chunk)的特權。決定是否把此組標為 “Read only” 並單擊 Add 以確認添加此組。
添加新的 IDS 伺服器連接需要設置以下參數。
參數 | 說明 |
---|---|
Group | 每個伺服器連接都應該屬於已經定義的組。如果沒有選擇組名,新的伺服器連接就屬於 'Default' 組 |
Username | IDS 伺服器所在的主機的用戶名 |
Password | 與用戶名相關聯的密碼 |
Informix Server | IDS 伺服器實例的名稱 |
Host Name | 駐留 IDS 伺服器的主機的名稱 |
Port | IDS 伺服器使用的埠號 |
Attributes | 決定是在當前日誌後面添加邏輯日誌,還是在日誌的末尾追加它 |
緯度、經度和 IDS 埠值有助於確定 Informix 伺服器的位置。
選擇 Test the connection 按鈕測試連接。如果為參數提供的任何值是錯的,或者此伺服器關閉了,用戶可能會看到下面的錯誤消息。
如果 Informix 伺服器正在運行,參數值也是正確的,就會成功地建立連接。用戶會看到成功消息(顯示 “online”),見圖 7。
成功地測試這個新連接之後,單擊 Save 把它添加到選擇的組中。
在 Connection Admin(圖 8)屏幕上,可以刪除不再需要的組。單擊要刪除的組旁邊的複選框,然後選擇 Delete。這會刪除整個組以及其中配置的連接。這個操作對於管理許多組的管理員很有用。
OAT login
這個選項返回到前面解釋的 OAT 登錄屏幕。也可以通過直接單擊 Login 到達 OAT 登錄屏幕。
Health Center
可以通過 Health Center 全面了解系統和伺服器的狀態。Health Center 由警報和一個 dashboard 組成。
警報
如果單擊 Health Center > Alerts,就會看到與圖 9 相似的屏幕。可以選擇要查看的警報的嚴重程度、警報類型和狀態。還可以選擇以不同顏色顯示不同類型的警報,從而使輸出更清晰。
管理 dashboard
如果選擇 Dashboard,就會看到系統的相關信息。Dashboard 提供兩個選項卡 —— Default 和 Space。Default 選項卡(圖 10)顯示系統的當前內存消耗量和事務信息,Space 選項卡(圖 11)包含關於 dbspace 和鎖的使用情況。
Logs
這個部分可以顯示與資料庫伺服器相關的各種日誌,包括管理命令、在線消息和 OnBar 活動。
如果選擇 OnBar Activity 選項,就會看到資料庫伺服器配置變數 BAR_ACT_LOG 指向的文件的內容(圖 14)。這個日誌是在通過 OnBar 實用程序執行備份時生成的。錯誤和警告消息分別以紅色和黃色顯示。
Task Scheduler
通過使用 OAT 的 Task Scheduler 特性,可以在預先指定的時間(或由伺服器內部決定的時間)運行維護、監視和管理任務。可以監視活動(例如,檢查空閑的日誌空間)並創建自動的糾正操作。可以使用一個基於 SQL 的管理系統和一組任務收集信息、監視和調整伺服器。
Task Scheduler 是由任務定義和驅動的。sysadmin 資料庫是帶有日誌信息的資料庫,其中包含存儲 Task Scheduler 信息的表。在默認情況下,只有 Informix 用戶有權訪問 sysadmin 資料庫。任務屬性存儲在 sysadmin 資料庫中的 ph_task 表中。此表中的每一行是一個單獨的任務,每個列是一個任務屬性。可以修改任務屬性,也可以通過在表中插入行來設置新任務。PH_RUN、PH_ALERT、PH_THRESHOLD、PH_GROUP 等表也與任務調度有關。關於這些表的更多信息,請參見 參考資料。
OAT 中的 Task Scheduler 分為三部分 —— Scheduler、Task Details 和 Task Runtimes,見圖 15。
Dynamic Server 中的調度器包含下表所示的任務。可以使用 Task Scheduler 提供的 Task Scheduler Wizard 修改這些任務和設置新任務。表 3 給出修改任務和設置新任務所需的參數。
參數 | 說明 |
---|---|
mon_command_history | 清空命令歷史表 |
mon_config | 保存在 ONCONFIG 文件中所做的修改 |
mon_config_startup | 在每次伺服器啟動時保存 ONCONFIG 文件 |
mon_sysenv | 跟蹤資料庫伺服器啟動環境 |
mon_profile | 保存伺服器概況信息 |
mon_vps | 收集虛擬處理器信息 |
mon_checkpoint | 保存關於檢查點的信息 |
mon_memory_system | 監視系統內存消耗量 |
mon_table_profile | 保存表概況信息,包括在此表上發生的更新、插入和刪除的總數 |
mon_table_names | 保存表名和創建時間 |
mon_users | 保存每個用戶的概況信息 |
check_backup | 檢查備份是否已經運行 |
ifx_ha_monitor_log_reply_task | 監視 HA 次級日誌重放位置 |
Alert Cleanup | 從系統中刪除所有舊的警告項 |
post_alarm_message | 發出警告的系統函數 |
Auto Update Statistics Evaluation | 評估哪些列和表的統計數據和分佈應該刷新 |
Auto Update Statistics Refresh | 刷新評估器建議的統計數據和分佈 |
單擊 Add New Task 按鈕,使用 Task Scheduler Wizard 定義新任務。
有兩種調度器任務,任務和感測器。任務 (task) 在特定時間或以特定的時間間隔運行特定的作業。感測器 (sensor) 用來收集和保存信息。如果選擇 Run Only at Server Startup,那麼只在伺服器啟動時執行任務。
提供任務名稱、任務組(例如,DISK、NETWORK、CPU、BACKUP 等等)和描述。單擊 Next。圖 18 顯示這些步驟。
現在,要為新任務指定調度計劃,見圖 19。輸入任務的啟動和停止時間以及頻率。單擊 Next。
為了指定新任務應該運行的命令,在這裡輸入在每次運行任務時執行的多個 SQL 語句(以分號分隔)或一個用戶定義函數。
Task Scheduler Wizard 的最後一個屏幕顯示新任務的設置匯總,要求用戶確認這些設置值。確認之後,就會創建新任務。
使用 Task Scheduler Wizard 創建感測器
正如前面提到的,DBA 可以使用感測器收集伺服器數據,從而維護關於伺服器上活動的歷史記錄。可以使用 Task Scheduler Wizard 創建感測器。與創建新任務相似,嚮導會提示您輸入感測器名稱、感測器組、描述、啟動時間、停止時間和頻率。
注意,在創建感測器時,有一個額外的輸入欄位 —— data delete(數據刪除)—— 這由日、時和分組成。在執行感測器時,收集的數據被存儲在一個用戶定義的表中,這個表是在創建感測器時創建的。“數據刪除” 指定從此表中刪除數據的時間間隔。應該根據 DBA 希望維護的數據歷史類型設置數據刪除時間間隔。與任務相似,必須提供在執行感測器時應該執行的 SQL 語句。完成這些步驟之後,新的感測器就會顯示在任務表中。
輸入感測器的所有信息之後,可以查看 Task Details 屏幕,見圖 21。
Task Details 屏幕的頂層顯示所有任務以及它們的組、描述、下一次執行時間和頻率。在屏幕頂部,“Group to View” 允許選擇特定類別的任務。例如,如果選擇 CPU 作為要查看的組,那麼表中只顯示 mon_vps 任務。要想進一步了解某個任務或修改任務的參數集,應該單擊 Name 列下面的任務名稱。然後就會看到一個顯示此任務的詳細信息的新屏幕。
圖 22 顯示任務的詳細信息屏幕:
Task Runtime 提供每個任務的運行情況匯總。匯總表提供的信息包括已經執行的次數、每次執行花費的平均時間、所有執行花費的總時間以及每個任務最後一次運行的時間。圖 23 顯示 Task Runtime 屏幕示例。
通過單擊 Name 列下面的任務名稱,可以查看任務的詳細信息和修改任務。從 Task Runtime 訪問任務時,可以看到一個額外部分 Task Parameters。有一個名為 ph_threshold 的 sysadmin 表,它用來存儲調度器任務的閾值。在到達閾值時,任務可以決定採取不同的操作。任務參數就是指這些閾值。閾值實際上是任務的參數。圖 24 顯示系統定義的任務 'check_backup',它有兩個參數。只有在 ph_threshold 表中包含與此任務相關的數據項時,OAT 中才會顯示 Task Parameters 部分。
Space Administration
Space Administration 進一步分為三個部分,即:
Dbspaces
在介紹 dbspace 及其使用之前,先介紹可以使用 OAT 創建的空間類型。
可用的空間類型有:
DATA 空間/BLOB 空間 —— 圖形表示和統計數據
圖 25 用圖形和統計數據顯示不同 dbspace 類型使用的空間 —— DATA 空間、TEMP 空間和 BLOB 空間。上半部顯示圖形,下半部以數據形式顯示相同的信息。
下面的 dbspace 表顯示以下信息:空間的名稱、空間的類型(dbspace 或 blobspace)、狀態、總大小、可用空間量、已用空間的百分比、空間佔據的區塊數量以及頁面大小。
如果在您的環境中有許多 dbspace,為了查看它們的詳細信息,可以使用表上面的下拉菜單(在 OAT 控制台上的圖形下面)選擇頁號。表右上角的 ALL 選項(也在 OAT 控制台上的圖形下面)把所有現有的 dbspace 顯示在給定的頁面上,這樣就可以在一個頁面上同時查看所有 dbspace。
創建空間
在 dbspace 表下面,可以使用 Create a Space 部分中的選項創建新的空間。圖 26 顯示創建空間的選項。
只需提供以下參數,然後單擊 Create。
參數 | 說明 |
---|---|
Name | 要創建的空間的名稱 |
Path | 新空間的路徑位置 |
Offset | 空間的偏移量(如果有的話) |
Size | 所需的空間大小,應該根據需求和可用性決定 |
Type | 要創建的空間的類型 —— dbspace、臨時 dbspace、blobspace 和智能 blobspace |
如果成功地創建了空間,就會在 dbspace 圖形上面顯示以下消息。
注意:創建的空間的名稱應該追加在路徑文本框中輸入的路徑後面。例如,如果名稱是 'myspace',路徑應該與 '/usr2/IDS1150/data/myspace' 相似。
如果沒有正確地指定路徑,就會在 dbspace 圖形上面顯示與圖 29 相似的錯誤消息。
要想了解 dbspace 中的空間使用分佈情況,可以單擊 dbspace 表中列出的 dbspace 之一。這會顯示四個選項卡:Summary、Admin、Tables 和 Extents。
Summary 選項卡以圖形和統計數據兩種形式提供所選 dbspace 的相關信息。dbspace 信息是分頁提供的。在 'Dbspace Info' 表中顯示統計數據,右邊的餅圖顯示此 dbspace 的使用情況。
dbspace 信息包括 dbspace 的名稱、所有者、創建時間、頁面大小、數據和索引等佔用的頁面數量以及可用的空閑頁面數量。
可以在 Admin 選項卡上執行管理操作,比如刪除整個 dbspace、在現有 dbspace 中添加空間以及對 dbspace 表格式和 dbspace 區段(extent)執行完整性檢查。
Chunks 表的參數參見 表 6。
Drop space:在這裡,可以刪除整個空間。只需在下拉菜單中選擇 YES,然後單擊 Drop。對於 'rootdbs' dbspace,這個選項是禁用的。
Add space:在這裡,可以在現有 dbspace 中添加空間。這需要給以下變數提供適當的值:
參數 | 說明 |
---|---|
Path | 新空間所處的路徑位置 |
Offset | 空間的偏移量(如果有的話) |
Size | 所需的空間大小,應該根據需求和可用性決定 |
File Creation | 可以選擇兩個模式之一 —— “Create file if none exists” 或 “File must exist” |
Integrity of:可以通過檢查 'Dbspace Table Format' 和 'Dbspace Extents',檢查空間的完整性。
Tables 選項卡列出此 dbspace 中的所有表。dbspace 表列表提供的信息包括表名、與此表相關聯的資料庫名、與資料庫和表對應的 DB_LOCALE 值、表中的行數、創建表的日期和時間、分配給表的頁面數量、已經使用的頁面數量和區段數量。
Extents 選項卡列出與給定的 dbspace 相關聯的所有區段。dbspace 區段列表提供的信息包括表名、區段的起始地址和結束地址以及與它們相關聯的大小。
區塊
區塊是用於資料庫伺服器數據存儲的最大物理磁碟單元。區塊為管理員提供一個很大的磁碟空間分配單元。單一區塊的最大大小是 4TB。允許的最大區塊數量是 32,766 個。
如果選擇 Space Admin > Chunks,會看到兩個選項卡 —— Chunk 和 Chunk IO(見下圖)。在默認情況下,顯示 Chunk 選項卡的統計數據。
下面的表是命令 “onstat -d” 的部分輸出。
Chunk 選項卡中的表顯示與每個區塊的配置相關的詳細信息。
列 | 說明 |
---|---|
Chunk number | 區塊號(單擊列標題就會反轉顯示次序) |
Page size | 此區塊中每個頁面的大小 |
Offset | 空間的偏移量(如果有的話) |
Size | 此區塊佔據的磁碟空間 |
Free | 與可用空間相關的統計數據 |
Used % | 此區塊已經使用的空間百分比 |
Status | 表示此區塊的狀態是在線還是離線 |
Path | 路徑指向此區塊所處的位置 |
Chunks I/O
Chunks I/O 選項卡提供關於每個區塊執行的 I/O 的信息。下面的表描述 Chunk I/O 選項卡提供的信息。
欄位 | 說明 |
---|---|
Chunk number | 區塊號 |
Chunk path | 區塊所處的位置 |
Reads | 對區塊的讀操作總數 |
Writes | 對區塊的寫操作總數 |
Recovery logs
Recovery logs 部分進一步分為四個部分 —— Logical logs、Physical logs、Checkpoint 和 Admin。
邏輯日誌記錄對資料庫伺服器實例所做的修改。邏輯日誌記錄用於事務回滾、系統故障恢復等等。
如果選擇 Space Administration > Recovery Logs,在默認情況下會顯示 Logical logs 選項卡。頁面的上半部分現在有一個餅圖,顯示邏輯日誌的已用空間、空閑空間和已備份空間使用量。可以通過選擇 Data 按鈕顯示餅圖的統計信息。
下半部分提供邏輯日誌的狀態信息。Number 列顯示邏輯日誌的編號。第二列顯示每個邏輯日誌的惟一 ID。Size 列顯示每個邏輯日誌的大小,第四列 Used 表示每個邏輯日誌上已經使用的空間量。Location 列顯示每個邏輯日誌所處的位置。
Last Filled 列顯示最後一次使用每個邏輯日誌的日期和時間。日期採用 YYYY-MM-DD 格式,時間採用 HH:MM:SS 格式。Notes 列顯示邏輯日誌的狀態。這些狀態包括 used、used and backed up、used and current 或 newly added。最後一列 Fill Rate 表示填充邏輯日誌的速度。填充速度表示為每秒位元組或每秒千位元組。
物理日誌是資料庫伺服器上的一組磁碟頁面,用於存儲未修改的頁面拷貝(稱為 before-image)。
在 Physical Logs 選項卡上,有一個表和一個餅圖。Physical Log Info 表包含物理日誌的相關信息,包括大小、已用空間量、物理日誌的位置、起始偏移量和緩衝區大小。
另一方面,餅圖表示可用空間和物理日誌使用的空間。單擊圖右上角的 Data 選項卡,就會以數字形式顯示相同的信息。
檢查點是指資料庫伺服器在特定的時間點對磁碟上的頁面和共享內存緩衝區中的頁面進行同步。
在檢查點過程中,資料庫伺服器會在消息日誌中寫一條檢查點完成消息。
下面的表是在 Chunk 選項卡上獲得的,它是命令 “onstat -g ckp” 的部分輸出。
下表說明 Checkpoints 表中的列:
列 | 說明 |
---|---|
Interval | 檢查點間隔 ID |
Type | 指定檢查點的類型,可以是四種檢查點類型之一:block、hard、norm 和 unblock |
LSN | 記錄檢查點的邏輯日誌位置 |
Trigger | 觸發檢查點的事件;這些事件包括 Admin、Startup、CKPTINTVL、LongTX、Recovery、Backup、Plog、Llog、Misc、RTO、CDR、Pload、Conv/Rev、Reorg、HDR、User 和 Lightscan |
Time | 發生檢查點的時鐘時間 —— 星號 (*) 表示請求的檢查點是事務阻塞檢查點 |
Block time | 此檢查點的各個事務阻塞時間(秒數) |
Crit time | 等待釋放臨界區花費的時間 |
Flush time | 刷新緩衝區池的時間(秒數) |
Ckpt duration | 所有事務意識到請求的檢查點的時間(秒數) |
# Dirty Buffers | 在檢查點期間刷新到磁碟上的臟緩衝區數量 |
# Waits | 事務等待檢查點的平均時間(秒數) |
執行檢查點
在這裡,可以啟動兩種檢查點 —— 一般檢查點和同步檢查點。
添加邏輯日誌
選擇 Admin 選項卡 > Do checkpoint > Add logical log 選項。表 9 說明在添加邏輯日誌時需要提供的參數。
參數 | 說明 |
---|---|
Dbspace name | 選擇可用的 dbspace 之一,將在此 dbspace 上添加日誌 |
Size | 根據需求指定邏輯日誌的大小(以 KB 為單位) |
Number | 需要添加的日誌總數,值範圍在 1 到 6 之間 |
Attributes | 決定是在當前日誌後面添加邏輯日誌,還是在日誌的末尾追加它 |
刪除邏輯日誌
選擇 Admin 選項卡 > Do checkpoint > Drop logical log 選項。表 10 說明在刪除邏輯日誌時需要提供的參數。
參數 | 說明 |
---|---|
Logical log number | 這個下拉列表列出現有邏輯日誌的編號和位置。選擇希望刪除的日誌(每次只能選擇一個日誌) |
確認 | 選擇 Drop logical log 確認刪除邏輯日誌。如果不肯定是否應該刪除邏輯日誌,那麼選擇 Do not drop logical log |
移動物理日誌
選擇 Admin 選項卡 > Do checkpoint > Move physical log 選項。表 11 說明在移動物理日誌時需要提供的參數。
參數 | 說明 |
---|---|
Dbspace name | 選擇可用的 dbspace 之一,將把日誌移動到此 dbspace 上 |
Size | 根據需求指定物理日誌的大小(以 KB 為單位) |
確認 | 選擇 Move physical log 確認移動物理日誌。如果不肯定是否應該移動物理日誌,那麼選擇 Do not move the physical log |
在 Recovery Policies 選項卡上,可以配置 Recovery Time Objective、打開或關閉 Auto Checkpoints 和 Auto LRU Training 以及保存設置。可以關閉 Recovery Time Objective,還可以把它的值調整為 30 秒到 30 分鐘之間的任何值。對於 Auto Checkpoint 和 Auto LRU Tuning,只能選擇打開或關閉。
Server Administration
這個部分有助於查看資料庫伺服器和執行伺服器管理操作。有多個子選項可以補充 Server Administration 部分的功能。
這是 IDS 11.10 和 IDS 11.50 的關鍵特性之一。此特性有助於維護高可用性數據複製 (HDR)、遠程單獨輔助伺服器 (RSS) 和共享磁碟輔助伺服器 (SDS)。不久後會發表一篇詳細解釋此特性的文章。
這顯示 ONCONFIG 文件中聲明的配置參數。每一行都顯示參數名、當前值以及此參數是否可以動態地配置(見圖 33)。單擊任何參數就會打開另一個屏幕,其中顯示參數名、描述和當前值;如果系統發現任何不妥當,還會顯示對值的修改建議;此外,還顯示關於參數作用的信息(見圖 34)。所有包含建議的行都用黃色突出顯示。還可以使用屏幕頂部的列表框過濾出推薦的和動態的參數。
Onconfig 文件
Onconfig Parameter Details:
這個特性檢查數據和區段的一致性和損壞,當前這是通過 oncheck 實用程序完成的。它提供很大的靈活性,可以在資料庫級檢查數據格式,也可以在表級進行檢查。可以檢查每個 dbspace 的區段。
單擊 Server Administration > System Validation 就會看到 Server Administration Check Validation 屏幕。圖 35 說明如何對數據和區段執行一致性和損壞檢查,並把檢查範圍收縮到表級。
圖 36 顯示對每個 dbspace 的區段進行檢查:
可以使用這個特性在數據伺服器上聲明不同級別的用戶特權。根據選擇的選項不同,可以在資料庫級、表級和角色級聲明特權。
在資料庫級,用戶可以通過選擇適當的選項修改和創建特權,見圖 37。
要想在資料庫級管理特權,應該選擇希望修改的資料庫並選擇 Database-Level privileges 選項。填寫或修改用戶、特權和默認角色的信息。
在表級,可以看到當前對於每個表分配給每個用戶的特權。要想在表級管理特權,應該選擇希望修改的表並選擇 Table-Level privileges 選項。可以修改每個用戶對每個表的當前特權,以及聲明每個用戶對不同表的新特權。這個屏幕上的操作是基於菜單的,很容易管理。
圖 38 說明如何在表級管理特權。
在 Manage Privileges 屏幕上,選擇 Roles 並填寫創建新角色所需的信息。圖 39 說明這個步驟。
可以通過 Virtual Processors 選項查看運行資料庫伺服器的虛擬處理器的當前狀態和使用情況。可以以圖形方式或數據格式查看數據。圖 40 顯示虛擬處理器的圖形示例。
在需要時,還可以通過選擇屏幕底部的 Add 創建虛擬處理器。
Auto Update Statistics 特性是本系列後面一篇文章的主題。
Performance Analysis
Performance Analysis 菜單分為四個部分 —— SQL Explorer、Performance History、System Reports 和 Session Explorer。可以通過 Performance Analysis 特性監視 IDS 的各個方面。
如果要存儲大量歷史信息,此特性所需的內存會很大。SQL 歷史跟蹤所需的默認空間量是 2MB。
在 SQL Tracing Admin 選項卡上,可以修改跟蹤參數,見圖 43。選擇 Modify 即可修改任何參數。
在圖 44 所示的 Statement Type 選項卡上,可以按照語句類型執行查詢鑽取。系統中已經執行的語句按類型分組,還提供每個 SQL 語句組的統計匯總數據。語句類型包括 SELECT、INSERT、DELETE、UPDATE、CREATE、DROP 等等。在屏幕右邊還可以看到餅圖。選擇 Data 按鈕就會看到表格形式的語句數據。
可以通過選擇一個 SQL 語句類型(例如,SELECT 或 DELETE)查看語句級的詳細信息。選擇 SELECT 即可進入這個 SQL Type 選項卡,其中所有相同的語句被分到一組,見圖 45。
在 SQL Type 選項卡上,可以選擇感興趣的一個 SQL 語句,並通過單擊 Drill Down 進入 SQL List 屏幕,見圖 46。此屏幕顯示關於此 SQL 語句的每次調用的詳細統計數據。提供的統計數據包括運行此命令的用戶的用戶 ID、資料庫會話 ID、查詢的響應時間等等。
在 SQL List 屏幕上,可以選擇感興趣的會話並單擊 Drill Down,從而獲得關於此 SQL 語句的詳細信息。SQL Profile 選項卡(圖 47)提供的統計數據包括執行的掃描、緩衝區讀寫的數量、頁面讀寫的數量、鎖請求和等待的數量、估計的行數、估計的優化器成本、返回的行數等等。
與按 SQL 語句鑽取相似,還可以按事務時間鑽取性能統計數據。Transaction Time 選項卡是 SQL Explorer 的選項卡之一。這個選項卡顯示最近 100 個事務的事務時間。提供的信息包括會話 ID、對應的 SQL 語句數量、平均響應時間、最大響應時間、使用的平均內存量和處理的行數。圖 48 顯示 Transaction Time 選項卡。
單擊 Drill Down 按鈕可以顯示特定事務的詳細信息。這會顯示此事務已經運行的 SQL 語句列表。還會顯示事務統計數據匯總。這些信息包括響應時間、此事務的 SQL 語句計數、估計的成本、排序統計數據、與鎖相關的詳細信息等等。可以使用 Drill Down 按鈕進一步鑽取到語句級。這會顯示特定語句的全部 SQL 信息,這在討論 SQL Profile 選項卡屏幕時已經解釋過了。
還可以按頻率研究 SQL 語句。Frequency 選項卡按執行頻率列出 SQL 語句並顯示平均響應時間、鎖等待時間和 IO 等待時間。使用 Drill Down 按鈕進一步鑽取,研究各個語句的情況。
Performance History
通過使用 Performance Analysis 中的 Performance History 菜單項,可以以圖形方式顯示資料庫操作影響性能的各個方面。它還以表格形式提供數據,幫助用戶分析伺服器的性能和採取適當的糾正措施。涉及的領域包括自動檢查點、磁碟讀、磁碟寫、磁碟刷新、區塊寫、前台寫、緩衝區讀、緩衝區寫、緩衝區等待、一般匯總信息(包括刪除、提交、鎖、死鎖、排序、掃描等)和 btree 掃描器。
這些圖覆蓋的時間範圍由在 sysadmin:mon_profile 表中可以找到的數據決定。mon_profile 表的內容由 dbcron 任務 'mon_profile' 填充,所以其中數據的時間範圍取決於運行此任務的頻率。在默認情況下,此任務每四小時運行一次。還會根據 mon_profile 任務的設置自動刪除數據。默認設置是七天,所以七天前的數據會從表中刪除,無法在這些圖中看到。2k、4k 等表示 dbspace(和區塊)可用的頁面大小。例如,如果用 8k 頁面創建 dbspace,那麼此 dbspace 中的區塊也採用 8k 頁面,因此頁面讀/寫和緩衝區讀/寫都是 8k 的。
System Reports
Performance Analysis 下面的 System Reports 菜單項幫助用戶生成關於伺服器不同方面的各種報告,例如磁碟使用量、內存池、表操作、性能、會話等等。這些報告向用戶提供採取必要措施所需的信息;例如,在磁碟空間不足時添加新的區塊,通過監視表鎖、內存使用量、虛擬處理器等檢查性能改進的效果,通過監視邏輯日誌確保日誌可用性,等等。
如圖 51 所示,報告分為 Disk、Performance、Network、SQL Tables 和 Users 幾類。每個類別包含幾個報告,例如如果在列表框中選擇 Disk 類別,會自動選擇 Disk Space Usage、Online Log、Logical Logs、View Checkpoints、Disk IO Levels、Server Admin Commands、Physical Log 和 System Backups 報告。使用 Create Report 按鈕生成這些報告的整合報告。
圖 52 顯示一個關於邏輯日誌的報告。此報告提供的信息包括日誌的總數、狀態(已備份、已使用、可用)、填充速度等等,這些信息有助於用戶決定是否需要添加新日誌以及執行一般的日誌維護。
Session Explorer
顧名思義,Session Explorer 可以提供關於當前在伺服器上運行的所有用戶會話的詳細信息。圖 53 顯示典型的 Session Explorer 屏幕。
單擊 SID 下面的會話 id,就可以看到會話的詳細信息。
Session Explorer 的 SQL 選項卡顯示 SQL 語句的 ID 和類型(INSERT、DELETE、SET ISOLATION、SET LOCK MODE 等)。只有使用配置參數 SQLTRACE 啟用 SQL 跟蹤,才能看到這些 SQL 語句。
Locks 選項卡提供與一個會話相關聯的所有鎖的相關信息。這些鎖可以是表級鎖、行級鎖、索引鎖等等。對於每個鎖,提供的信息包括應用此鎖的資料庫名:表名/索引名、鎖的類型(共享、排他、更新、位元組、意向共享、意向排他、意向共享排他等等)、持有此鎖的持續時間、鎖定的行的 ID 和鎖的等待者(如果有的話)。Index # 1 表示此鎖在索引上。Key Item Locked 是鎖定的索引項。
Session Explorer 的 Threads 選項卡提供屬於所選會話的線程的相關信息。一個用戶會話有一個相關聯的主線程;根據處理客戶機請求的方式不同,可能有許多其他線程。在 Threads 選項卡上,用戶可以看到當前線程、它們的 ID、優先順序、每個線程在虛擬處理器上運行的次數 (NUM_SCHEDULED)、每個線程在虛擬處理器上運行花費的時間 (TOTAL_TIME)、每個線程獲得的時間片段 (TIME_SLICE)、最近運行此線程的虛擬處理器的 ID (VPID)、每個線程的等待原因 (WAIT_REASON) 和 IO 等待。
Memory 選項卡提供關於一個會話的內存使用量和可用性的信息。Name 列列出內存池的名稱。NAME 列中的數字是會話 ID,因為會話的內存池是按會話 ID 跟蹤的。USED 和 FREE 列列出已用列表中的內存總量和空閑列表中的內存總量。這兩列使用 format_units 函數進行格式化。
Network 選項卡提供關於一個會話的網路使用情況的詳細信息。客戶機協議名顯示為 THREAD_NAME。還可以看到會話的起始時間 (SESSION_START)、會話的持續時間 (CONNECT_DURATION)、最近從網路讀的時間 (LAST_READ) 和最近向網路寫的時間 (LAST_WRITE)。在 AVERAGE_RECV、AVERAGE_SEND、RECEIVED_DATA 和 SEND_DATA 列中顯示通過網路發送和接收數據的情況。RECEIVED_DATA 是發送到此伺服器的位元組數,SEND_DATA 是伺服器發送給客戶機的位元組數。網路讀和網路寫數量用來計算顯示的平均值。
可以通過 Environment 選項卡全面了解伺服器和會話環境。Environment 選項卡列出伺服器的啟動環境設置和會話(即客戶機)級的環境變數。
Session Explorer 的 Profile 選項卡提供會話的匯總數據。與鎖相關的信息包括:Locks 是當前持有的鎖數量,Lock Requests 是請求的鎖數量,Lock Waits 是等待的鎖數量,Dead Locks 是探測到的死鎖數量,Lock Time Outs 是超時的鎖請求數量。與日誌相關的信息包括:Log Records 是此會話創建的日誌記錄數量,Log Space 是當前使用的日誌空間,Max Log Space 是曾經使用的最大日誌空間。
處理的行數(isam 讀,Rows Processed)、插入的行數(isam 寫,Rows Inserted)、更新的行數 (Rows Updated) 和刪除的行數等提供記錄級統計數據。Commits、Rollbacks 和 LongTXs 提供與事務相關的數據,分別表示提交數量、回滾數量和長事務數量。Sequential Scans 是執行的連續掃描數量。與排序相關的信息包括:Sorts 是執行的排序操作總數,Disk Sorts 是在磁碟上執行的排序數量,Memory Sorts 是在內存中執行的排序數量(這是總排序數和磁碟排序數的差值)。Largest Sort 是磁碟上使用的最大排序空間。關於緩衝區的統計數據有兩個 Buffer Reads 和 Buffer Writes,它們分別表示對緩衝區的讀寫數量。
Foreground (FG) reads 和 FG writes 是在會話期間發生的一般讀寫操作。總之,Profile 選項卡可以提供關於會話各個方面的有用信息。
SQL Toolbox
SQL Toolbox 分為三個部分:
Databases
Databases 鏈接打開 Databases 選項卡,其中的餅圖不僅顯示每個資料庫佔用的空間的百分比,還顯示資料庫的列表。如果把滑鼠指針放在餅圖上面,指向每個資料庫部分,就會看到對應的百分數。單擊圖右上角的 Data 選項卡,就會看到統計數據。
注意,圖下面的 Databases 表在 Names 列下列出給定的 IDS 伺服器上的所有資料庫。Collation 列是資料庫的 DB_LOCALE 值。Create Date 列是創建資料庫的日期,採用 YYYY-MM-DD 格式。Logging 列顯示在創建資料庫時設置的日誌模式(buffered、unbuffered、ANSI compliant 和 not logged)。
Schema Browser
要想進一步研究每個資料庫的內容,單擊 Databases 表中列出的資料庫。這會激活 'Schema Browser'。在默認情況下,顯示 Tables 選項卡的內容。Tables 選項卡是 Schema Browser 的第一個選項卡,後面還有 SPL/UDR 選項卡。
Tables 選項卡列出所選資料庫中的所有表。用戶可以在任何時候使用屏幕右上角的選項選擇資料庫或 IDS 伺服器。Server 下拉菜單列出為所選的組定義的伺服器,Database 下拉菜單列出此 IDS 伺服器中的資料庫。
是否需要同時列出資料庫編目表?這由您決定。要想同時列出資料庫編目表,只需選中 Include Database Catalog Tables 框,然後選擇 Submit。如果執行此步驟,就會看到資料庫編目表;如果不這麼做,列表就不包含資料庫編目表。
圖 62 顯示 Tables 選項卡上的表:
下表說明 Tables 選項卡上欄位的含義。
欄位 | 說明 |
---|---|
Browse | 這個圖標會打開 'Table Browse' 選項卡 |
Name | 表、視圖或同義詞的名稱 |
Create date | 創建表的日期 |
Table id | 系統分配的順序標識符 |
Partnum | 物理位置編碼 |
Rowsize | 行大小 |
NRows | 表中的行數 |
NIndexes | 表中的索引數 |
Locklevel | 表的鎖模式: B = Page P = Page R = Row |
Fextsize | 初始區段的大小(以 KB 為單位) |
Nextsize | 所有後續區段的大小(以 KB 為單位) |
Pages Used | 使用的頁面數量 |
View |
在表 12 中列出的欄位中,Browse、Name 和 Partnum 列可以提供更多信息。單擊 Browse 列中的圖標,就會在 SPL/UDR 選項卡旁邊打開 'Table Browse' 選項卡。這個選項卡列出查詢 ' select * from tabname;' 的輸出,其中的 tabname 是與圖標相關聯的表的名稱。
選擇 Name 列下面列出的一個表就會打開 Column Info 選項卡,其中描述表列的屬性。提供的信息包括列名、列類型、列長度和擴展類型。表的 Column Info 選項卡如下所示。
選擇 Partnum 列中的值就會打開一個窗口,其中顯示相應的分區信息,如下所示。
SQL Editor
在 SQL Editor 中,可以輸入或粘貼 SQL 語句,然後執行它。要想執行 SQL 語句,需要單擊 Run Query。可以通過單擊 Save query to file 保存 SQL Editor 中的查詢。在把查詢保存到文件時,OAT 會自動生成一個文件名,此文件名的末尾是一個數字,用戶每次把查詢保存到文件時會遞增此數字。
注意在圖 65 中,在 SQL Editor 窗口中輸入了兩個 SQL 語句,語句之間以分號分隔。在使用 'Run Query' 按鈕執行以上查詢時,結果顯示在單獨的 Results 選項卡中,見圖 66。
除了 Results 選項卡中顯示的結果之外,還會看到與圖 67 相似的消息。
此消息指出只執行第一個分號前面的查詢,這個分號後面的所有查詢都被刪除。
限制產生的輸出:可以使用 SQL Editor 提供的以下選項限制執行查詢產生的輸出。
選項 | 說明 |
---|---|
Text/Clob column option | 選擇對 Text/Clob 輸出的處理方式;選擇以下選項之一限制查詢輸出: Show All Show 255 Chars Show in File Show Size only Ignore Column |
Byte/Blob column option | 選擇對 Byte/Blob 輸出的處理方式;選擇以下選項之一限制查詢輸出: Ignore Column Show in File Show Size Only Show As Image |
Number of rows | 對於包含 order by、group by、子查詢、union 和聚合的查詢,可以通過在此文本框中設置值來限制獲取的行數。用戶也可以使用 'Reset' 按鈕複位此值。 |
導入查詢:還可以導入現有文件中的查詢。為此,只需單擊 Browse,找到文件,然後單擊 Import。文件中的查詢會出現在 SQL Editor 窗口中。注意,就像在解釋 Run Query 時一樣,在導入時只把第一個分號前面的查詢導入到 SQL Editor,這個分號後面的所有查詢都被刪除。然後,可以執行嵌入的查詢,結果會顯示在 Results 選項卡中。
結束語
OpenAdmin Tool 是一種高效的 IDS 資料庫管理前端工具。在本文中,我們介紹了許多 OAT 組件並描述了如何使用它們。閱讀本文之後,您應該能夠用此工具連接 IDS 實例、管理連接組、執行基本操作、執行各種管理功能、生成相關報告、根據需要顯示足夠的信息和執行查詢。在本系列的後續文章中,將學習如何從 Informix Server Administrator 遷移到 OAT,以及如何使用 OAT 分析伺服器性能。(責任編輯:A6)
[火星人 ] 用 IDS OpenAdmin Tool 管理 Informix 資料庫,第 1 部分: 在 IDS 中配置和使用 OpenAdmin Tool已經有1521次圍觀