在UNIX上安裝DB2 UDB修訂包的實用技巧
本文將幫助您下載和安裝 DB2® UDB 修訂包,并理解該過程中涉及的步驟。每個 DB2 修訂包都有一個 Readme.txt 文件,當我們閱讀本文時,將經常參考它。
與其它軟件產品相似,也要以修訂包形式對 DB2 進行頻繁的修訂。一個給定的 DB2 版本最終可能會有多達 15 個或更多的修訂包,每個包都包含對所發現的問題的許多補丁。APARLIST.TXT 文件包含了其中各個補丁的簡短描述。有時候,修訂包包含新特性,為 DB2 產品提供更強大的功能。這些都在 ReleaseNotes.txt 文件中有描述。修訂包帶有 APARLIST.TXT 和 ReleaseNotes.txt 文件。
首先,請檢查一下必要的要求:
1.當前系統上安裝了 DB2 UDB 版本 6.1 或版本 7.2。
2.操作系統是 UNIX。
3.DB2 版本是個人版、工作組版或企業版(EE)。
4.在對下載的修訂包進行解壓縮及解包之后,有足夠的文件系統空間來保存這些文件(取決于要下載的修訂包,文件系統需要 140 到 900 兆字節的空間)。
5.您能夠在系統上獲得 root 和實例所有者權限。
從DB2 ftp 站點下載修訂包
在下載特定的 DB2 修訂包之前,可以通過在 DB2 命令窗口上輸入 db2level 來確定當前的修訂包設置。結果類似如下:
DB21085I Instance ' db2v71' uses DB2 code release 'SQL07020' with level identifier '3010105' and informational tokens 'DB2 v7.1.0.41','s010426' and ' U475377'.
在粗體字中,“b2v71”表示 DB2 版本,而“U475377”則表示修訂包級別。后者是加密代碼,可以通過轉至 IBM 的 DB2 UDB 下載修訂包和客戶機 Web 頁面來對它進行譯碼。
單擊與您的 DB2 版本(即版本 6 或版本 7)相關的鏈接,它位于該 Web 頁面的左上方。這將把您帶到另一個 Web 頁面,您將在(它的頂部中央)選擇操作系統。單擊適用于操作系統的鏈接并將代碼與其修訂包發行號進行比較。當執行 db2level 命令時,如果輸出顯示為 '' 而不是 'U475377',那么它意味著您沒有安裝任何修訂包。
注:DB2 修訂包不要求您依次安裝每個修訂包。例如,即使您目前使用的是修訂包 1,也可以為版本 6.1 安裝修訂包 8。
要下載修訂包,可以轉至上面提到的修訂包站點,或選擇下面的選項之一:
FTP 到匿名服務器 ftp.software.ibm.com。轉至 ps/products/db2/fixes/%L/%P/,其中,%L 是適當的語言環境(如美國英語、西班牙語和德語等),%P 是產品名/版本(例如,db2ntv71 等)。
使用 Web 瀏覽器來連接到 DB2 UDB 和 DB2 Connect 在線支持 Web 頁面。
在 CompuServe 上,執行 GO IBMDB2。然后,轉至適當的庫以查找修訂包。
在 IBM PCC BBS(在美國)上,撥打 919-517-0001(在北卡羅來納州羅利),然后在主菜單上輸入“db2”以查找修訂包。
如果您將通過 UNIX 命令行 ftp 來下載修訂包,請確保在連接到 ftp 站點之后輸入‘bin’以進入二進制方式。這是正確傳輸修訂包 tar.Z 文件所必需的。如果下載到一臺 Windows NT 機器,然后 ftp 到一臺 UNIX 機器,您也需要輸入‘bin’來正確傳輸該文件。復制該文件之后,請檢查一下,確保無論是在 Windows NT 機器上還是在 UNIX 機器上,原始文件和被 ftp 的文件的文件大小都相同(以字節為單位)。在傳輸完成之前,ftp 會話期間的一種常見情況是因被中斷而終止。如果在原始文件和副本之間有幾個字節差異,則將會出現問題。
由于不正確的文件大小而引起的最常見錯誤發生在將文件解包(untar)期間。tar 操作結束時的錯誤將是“tar: directory checksum error”,這意味著文件大小與期望的文件大小不匹配。即使發生這種錯誤,也會產生安裝文件,致使某些人相信他們可以安裝修訂包。
您應該按照下面的順序來準備安裝修訂包。在下面的示例中,我們將修訂包 3 用于 Sun Solaris 上的 DB2 版本 7.1:
注:某些修訂包可作為 tar 格式的未解壓縮的文件下載。如果是的話,只要從步驟 1 跳到步驟 3。
將修訂包從 IBM 網站下載到一個工作目錄。確保您有足夠的文件系統空間(這個修訂包的壓縮大小為 307 兆字節,但它會因為修訂包的不同而不同)。請當心,當下載該文件時,不能對它重命名。另外,請確保您有該目錄的寫許可權。
將修訂包復制到 UNIX 機器之后,執行解壓。
uncompress FP3_U475377.tar.Z
解壓該文件之后,文件的擴展名將為 .tar,如下所示:
FP3_U475377.tar
現在,這個文件的大小為 450 兆字節。
現在,準備將該 tar 文件解包。
tar -xvf FP3_U475377.tar
把該文件解包之后,原始的 tar 文件(450 兆字節)將與最新創建的名為 delta_install 或修訂包名稱(在本示例中是 FP3_U475377)的安裝目錄一起保留;它大約也是 450 兆字節。這二項合計達 900 兆字節左右。如果 tar 操作成功,則應該除去該 tar 文件并只留下 FP3_U475377 目錄。請確保不在 tar 命令中使用‘i’選項,因為這將忽略目錄校驗和錯誤。
下面的命令行輸出顯示了解壓之后的 .tar 文件和解包之后的安裝目錄:
$ pwd/export/home/db2v71/work2$ ls -ltotal 920068 - (in kilobytes)drwxr-xr-x 92 db2v71 db2grp71 2048 May 9 13:28 FP3_U475377 -rw-r--r-- 1 db2v71 db2grp71 470822912 Jul 12 10:39 FP3_U475377.tar
下面顯示了 FP3_U475377 安裝目錄的內容。內容可能會因平臺和修訂包的不同而不同,但 installallpatch 文件應該是可見的:
$ pwd/export/home/db2v71/work2/FP3_U475377$ ls172031-000 172031-024 172031-048 172031-072 172031-001 172031-025 172031-049 172031-073 172031-002 172031-026 172031-050 172031-074 172031-003 172031-027 172031-051 172031-075 172031-004 172031-028 172031-052 172031-076 172031-005 172031-029 172031-053 172031-077 172031-006 172031-030 172031-054 172031-078 172031-007 172031-031 172031-055 172031-079 172031-008 172031-032 172031-056 172031-080 172031-009 172031-033 172031-057 Fixpakreadme.txt 172031-010 172031-034 172031-058 backoutallpatch 172031-011 172031-035 172031-059 br 172031-012 172031-036 172031-060 cn 172031-013 172031-037 172031-061 de 172031-014 172031-038 172031-062 en 172031-015 172031-039 172031-063 es 172031-016 172031-040 172031-064 extras 172031-017 172031-041 172031-065 installallpatch 172031-018 172031-042 172031-066 jp 172031-019 172031-043 172031-067 kr 172031-020 172031-044 172031-068 ru 172031-021 172031-045 172031-069 172031-022 172031-046 172031-070 172031-023 172031-047 172031-071
從上面可以看到,installpatch 可執行文件駐留在這里。這是您將用來執行修訂包安裝的文件。該目錄還包含有助于安裝的 Fixpakreadme.txt 文件。
安裝修訂包
既然您已經下載了修訂包,而且解壓和解包都沒有任何錯誤,那么您將使系統準備安裝修訂包并對 DB2 實例和數據庫執行更新。在我們概述該過程時,您應該有 Fixpakreadme.txt 文件。在開始之前,請閱讀 Fixpakreadme.txt 中的所有信息,因為可能有一些您應該考慮到的特定于您的環境的項。
您應該執行這些操作以成功安裝修訂包。
在每個 DB2 實例上,您都必需注冊為實例所有者并執行:
DB2“force applications all”命令,以強制執行該實例的所有應用程序。
DB2“terminate”,以停止所有后端 DB2 進程。
db2stop,以停止實例服務。
db2licd end,以停止許可證守護程序。
注冊為 admin 服務器所有者并用 db2admin stop 命令停止 admin 服務器。
注:可以通過執行下列操作來檢索駐留在系統上的 DB2 實例列表:
將用戶切換到 root 用戶
將目錄更改為 /instance(例如, /opt/IBMdb2/V7.1/instance (Sun) 或 /usr/lpp/DB2_07_01/instance (AIX®))
執行 db2ilist 命令: ./db2ilist
要檢索管理服務器名,請執行上面的步驟 1 和 2,然后執行 dasilist 命令。
現在,可以安裝修訂包了。使用前面示例中的 FP3_U473577 安裝目錄,將目錄更改為該目錄并查找可執行文件 installallpatch。執行該文件以開始安裝修訂包。當發生錯誤或者您不再需要這個修訂包時,如果您的安裝目錄包含 backoutallpatch(如 上面所示),則可以撤消這個修訂包。如果這個可執行文件不能用于您的平臺和修訂包發行版,則您系統上的 DB2 產品不能回復到前一個修訂包,從而必須卸載并重新安裝 DB2。
這里是您將看到的在修訂包安裝期間修訂包中所應用的每個補丁的輸出:
INFO: Do NOT interrupt while installing patch 172031-059...Installation of was successful.INFO: Do NOT interrupt while installing patch 172031-060...Installation of was successful.INFO: Do NOT interrupt while installing patch 172031-061...Installation of was successful.INFO: Do NOT interrupt while installing patch 172031-063...Installation of was successful.
結束語
既然已經成功應用了修訂包,您將需要按照 Fixpakreadme.txt 文件中所描述的那樣通過 db2iupdt 命令更新 DB2 實例。您還需要重新聯編數據庫,才能對它們應用修訂。如果沒有執行這個操作,那么一些新功能可能不會生效。這僅適用于前面創建的實例和數據庫;所有在應用修訂包之后創建的新實例和數據庫都將自動具有新的修訂。
修訂包是復雜的軟件世界所必需的,這些技巧將幫助您成為一名更能干且見多識廣的 DB2 用戶。如果您對本文中的改進有任何意見,請通過頁面底部的對本文的評價鏈接提供反饋。有關安裝期間產生的錯誤,您可能需要購買 IBM Value Option for Developers 來解決。
