IBM 的 DB2 V9 引入了自動維護功能,即自動數據庫備份、自動統計信息更新以及在必要時重組表和索引。DB2 V9 推出了自動備份功能,自動數據庫備份功能為用戶提供了一個解決方案,從而幫助用戶確保定期正確地對他們的數據庫進行備份,而不必擔心何時進行備份,也不需要具有有關備份命令的任何知識。另外,DB2 V9 的自動維護功能還包括數據訪問優化(運行統計)、數據碎片整理(表或索引重組)和統計信息概要分析等功能,基於這些新的特性,將大大簡化我們在實際維護數據庫過程中的工作量。由於自動維護是 DB2 V9 的新特性,很多客戶不知道該如何使用,本文將重點介紹 DB2 V9 關於自動維護方面的新特性,並結合實際的例子幫助大家理解和提高。
簡介
IBM 的 DB2 V9 引入了自動維護功能,即自動數據庫備份、自動統計信息更新以及在必要時重組表和索引。對於用戶來說,確定是否以及何時運行維護活動可能相當費時。自動維護功能解除了用戶的負擔。借助自動維護功能,可以指定維護目標(包括自動維護功能的運行時間)。DB2 使用您指定的目標來確定是否需要執行維護活動,在下一個可用的維護窗口(自動維護活動的運行時間段,由用戶定義),將僅運行必需的維護活動。
以往我們備份數據庫有三種方式,第一種是用 DB2 調度中心把備份作為一個任務進行調度,第二種是把備份命令寫到一個 Shell 腳本中,放到 UNIX 的 CRONTAB 中進行調度自動運行,第三種是基於第三方軟件進行管理,比如用 Tivoli Storage Management(TSM)進行備份管理。現在 DB2 V9 推出了自動備份功能,自動數據庫備份功能為用戶提供了一個解決方案,從而幫助用戶確保定期正確地對他們的數據庫進行備份,而不必擔心何時進行備份,也不需要具有有關備份命令的任何知識。以往一般都是 DBA 根據實際情況,比如建議對一個頻繁進行大量更新、插入或者刪除操作的表進行 RUNSTATS,建議在重組表之後運行 RUNSTATS。現在 DB2 V9 推出了數據訪問優化(運行統計),DB2 將更新有關表數據、表索引數據或者表數據及其索引數據的系統目錄統計信息。優化器使用這些統計信息來確定用來訪問數據的路徑。自動收集統計信息功能通過維護最新的表統計信息來嘗試提高數據庫的性能。目標是允許優化器根據准確的統計信息來選擇訪問方案。另外,DB2 V9 還提供了數據碎片整理(表或索引重組)和統計信息概要分析等功能,。數據碎片整理(表或索引重組)可以提高 DB2 數據庫管理器訪問表的效率。自動重組功能管理脫機進行的表和索引重組,用戶不必擔心何時以及如何重組他們的數據。自動統計信息概要分析功能通過檢測過時的、丟失的以及不正確指定的統計信息以及通過根據查詢反饋信息來生成統計信息概要文件的方法來建議何時以及如何收集表統計信息。
IBM 的 DB2 V9 引入了自動維護功能,即自動數據庫備份、自動統計信息更新以及在必要時重組表和索引。DB2 V9 推出了自動備份功能,自動數據庫備份功能為用戶提供了一個解決方案,從而幫助用戶確保定期正確地對他們的數據庫進行備份,而不必擔心何時進行備份,也不需要具有有關備份命令的任何知識。另外,DB2 V9 的自動維護功能還包括數據訪問優化(運行統計)、數據碎片整理(表或索引重組)和統計信息概要分析等功能,基於這些新的特性,將大大簡化我們在實際維護數據庫過程中的工作量。由於自動維護是 DB2 V9 的新特性,很多客戶不知道該如何使用,本文將重點介紹 DB2 V9 關於自動維護方面的新特性,並結合實際的例子幫助大家理解和提高。
簡介
IBM 的 DB2 V9 引入了自動維護功能,即自動數據庫備份、自動統計信息更新以及在必要時重組表和索引。對於用戶來說,確定是否以及何時運行維護活動可能相當費時。自動維護功能解除了用戶的負擔。借助自動維護功能,可以指定維護目標(包括自動維護功能的運行時間)。DB2 使用您指定的目標來確定是否需要執行維護活動,在下一個可用的維護窗口(自動維護活動的運行時間段,由用戶定義),將僅運行必需的維護活動。
以往我們備份數據庫有三種方式,第一種是用 DB2 調度中心把備份作為一個任務進行調度,第二種是把備份命令寫到一個 Shell 腳本中,放到 UNIX 的 CRONTAB 中進行調度自動運行,第三種是基於第三方軟件進行管理,比如用 Tivoli Storage Management(TSM)進行備份管理。現在 DB2 V9 推出了自動備份功能,自動數據庫備份功能為用戶提供了一個解決方案,從而幫助用戶確保定期正確地對他們的數據庫進行備份,而不必擔心何時進行備份,也不需要具有有關備份命令的任何知識。以往一般都是 DBA 根據實際情況,比如建議對一個頻繁進行大量更新、插入或者刪除操作的表進行 RUNSTATS,建議在重組表之後運行 RUNSTATS。現在 DB2 V9 推出了數據訪問優化(運行統計),DB2 將更新有關表數據、表索引數據或者表數據及其索引數據的系統目錄統計信息。優化器使用這些統計信息來確定用來訪問數據的路徑。自動收集統計信息功能通過維護最新的表統計信息來嘗試提高數據庫的性能。目標是允許優化器根據准確的統計信息來選擇訪問方案。另外,DB2 V9 還提供了數據碎片整理(表或索引重組)和統計信息概要分析等功能,。數據碎片整理(表或索引重組)可以提高 DB2 數據庫管理器訪問表的效率。自動重組功能管理脫機進行的表和索引重組,用戶不必擔心何時以及如何重組他們的數據。自動統計信息概要分析功能通過檢測過時的、丟失的以及不正確指定的統計信息以及通過根據查詢反饋信息來生成統計信息概要文件的方法來建議何時以及如何收集表統計信息。
從 IBM DB2 版本 9.1 開始,在創建新的數據庫時,缺省情況下會啟用自動收集統計信息(RUNSTATS)功能。這表示DB2數據庫管理器將確定是否需要更新數據庫統計信息。然後,RUNSTATS 實用程序會根據需要在後台自動運行,以確保最新的數據庫統計信息可用。需要注意的是,將數據庫從版本 8 遷移到版本 9.1 時,不會自動啟用此功能。要在已遷移的數據庫中使用此功能,必須手工進行啟用。
接下來我們創建測試數據庫 DB2TEST1,打開 DB2CLP 命令窗口,發出 CREATE DATABASE 命令語句,創建數據庫,具體如清單 1所示:
清單 1 .創建示例數據庫 DB2TEST1
C:> DB2 CREATE DATABASE DB2TEST1
DB20000I CREATE DATABASE命令成功完成。
這樣我們創建了一個測試數據庫 DB2TEST1,其自動維護功能(AUTO_MAINT 數據庫參數)已經打開了,只有自動維護功能打開,自動數據庫備份和自動表維護功能才有效;默認情況下自動數據庫備份(也就是 AUTO_DB_BACKUP 數據庫參數默認被設置成了 OFF)功能是關閉的,如果想打開,需要更改 AUTO_DB_BACKUP 數據庫參數,把其設置成 ON;自動表維護默認情況已經打開,只有自動表維護(也就是 AUTO_TBL_MAINT 被設置成 ON)打開,其所屬的自動 RUNSTATS、自動統計信息概要分析和自動重組才有效,默認情況下自動 RUNSTATS 是打開的,自動統計信息概要分析和自動重組是關閉的。我們查看示例數據庫 DB2TEST1 的配置參數,可以看到數據庫地域是中國( CN),數據庫代碼頁是 1386,數據庫代碼集是 GBK,自動維護默認打開,自動表維護默認打開,自動 RUNSTATS 默認打開,具體如清單 2 所示。
清單 2 .查看示例數據庫 DB2TEST1 參數
C:> db2 get db cfg for db2test1
數據庫 db2test1 的數據庫配置
數據庫配置發行版級別 = 0x0b00
數據庫發行版級別 = 0x0b00
數據庫地域 = CN
數據庫代碼頁 = 1386
數據庫代碼集 = GBK
數據庫國家/地區代碼 = 86
數據庫整理順序 = UNIQUE
備用整理順序 ( ALT_COLLATE ) =
數據庫頁大小 = 4096
. . . . . . . . . . . . . . . . . . . . . .
自動維護 ( AUTO_MAINT ) = ON
自動數據庫備份 ( AUTO_DB_BACKUP ) = OFF
自動表維護 ( AUTO_TBL_MAINT ) = ON
自動 runstats ( AUTO_RUNSTATS ) = ON
自動統計信息概要分析 ( AUTO_STATS_PROF ) = OFF
自動概要文件更新 ( AUTO_PROF_UPD ) = OFF
自動重組 ( AUTO_REORG ) = OFF
我們可以 DB2 控制中心對自動維護進行配置。打開 DB2 控制中心,在左邊樹形列表上找到 DB2TEST1 數據庫,點右鍵,選“配置自動維護”,就打開了自動維護窗口。在自動維護配置窗口,可以將低活動量和沒有活動的時間段定義為此數據庫的維護窗口;可以選擇要自動處理的DB2維護活動,除了默認啟動的自動RUNSTATS,還可以設置自動數據庫備份(需要把 AUTO_DB_BACKUP 數據庫參數設置成 ON )、自動統計信息概要分析(需要把 AUTO_STATS_PROF 數據庫參數設置成 ON)、自動概要文件更新 (需要把 AOTO_PROF_UPD 數據庫參數設置成 ON )以及自動重組(需要把AUTO_REORG設置成ON);可以選擇在自動維護不成功時要通知的人員。DB2 將通過使用評估條件,確定是否需要維護,需要維護是必需的,將在下一個可用維護窗口中完成維護。具體如圖 1 所示:
圖 1. 配置自動維護窗口
我們點下一步,打開選擇自動維護類型頁面,在這個頁面中可以看到當前的自動維護設置是什麼;還可以設置數據庫的自動維護,比如可以更改自動設置或者禁用自動維護功能,具體如圖2所示:
圖 2. 配置自動維護窗口--選擇自動維護類型頁面
我們選擇更改自動設置,點下一步,進入到“指定何時可以運行自動維護活動”頁面,在這裡,可以指定自動維護活動是聯機方式運行還是脫機方式運行,具體如圖3所示:
圖 3. 指定合適可以運行自動維護活動頁面
聯機維護活動是可以在用戶已連接到數據庫的情況下運行的維護活動。運行聯機維護活動時,允許任何當前已連接的應用程序保持連接,並允許建立新連接。
脫機維護活動是只有一定程度地中斷用戶對數據庫的訪問才能運行的維護活動。影響用戶訪問的程度取決於所運行的維護活動。在脫機備份期間,沒有任何應用程序可以與數據庫連接。任何當前已連接的應用程序都將被強制斷開連接。 在脫機數據碎片整理(表或索引重組)期間,應用程序可以訪問數據庫表中的數據,但無法進行更新。
需要注意的是,數據訪問優化維護活動(運行統計)只能以聯機方式執行。
維護窗口是自動維護活動的運行時間段,由用戶定義。這與任務時間表不同。在維護窗口內,不必運行每項自動維護活動。而是,DB2?根據所要運行的每項維護活動的需求來對系統進行評估。如果未符合維護需求,就運行該維護活動。如果數據庫的維護狀態良好,則不運行維護活動。
您可能需要確定運行自動維護活動的時間。運行自動維護活動(備份、統計信息收集、統計信息概要分析和重組)將消耗系統上的資源,並且可能會影響數據庫的性能。當自動重組和脫機數據庫備份運行時,這些實用程序還會限制對表和數據庫的訪問。因此,需要提供適當的時間段,以便可以在內部安排由 DB2 數據庫管理器運行。可以使用“控制中心”或“運行狀況中心”中的“自動維護”向導來將這些時間段指定為脫機和聯機維護時間段。
脫機數據庫備份以及表和索引重組是在脫機維護時間段內運行的。即使超過了指定的時間段,這些功能部件也將運行直到完成為止。內部調度機制經過一段時間就會了解並估計作業完成時間。如果對於特定數據庫備份或重組活動來說脫機時間段太短了,則調度程序下一次將不啟動作業,並依賴運行狀況監視器來提供需要延長脫機維護時間段的通知。
自動統計信息收集和概要分析、聯機索引重新組織以及聯機數據庫備份都在聯機維護時間段內運行。為了使它們對系統的影響最小,將用適當的實用程序調節機制來調節聯機數據庫備份以及自動統計信息收集和概要分析。內部調度機制使用聯機維護時間段來啟動聯機作業。即使超過了指定的時間段,這些功能部件也將運行直到完成為止。
聯機維護窗口如圖4所示:
圖 4. 具體聯機維護窗口
脫機維護窗口如圖 5 所示:
圖 5. 脫機維護窗口