內容提要 : 本文給出了在Red Hat Linux上安裝DB2 EEE的主要步驟 正文 :清注意所有步驟都應以root用戶登錄, 除非特殊說明 安裝步驟概述 1.在服務器上安裝 Red Hat Linux 7.1 2.配置網絡硬件 3.裝載NFS文件系統 4.創建數據庫的用戶和組 5.激活rsh 6.安裝和配置DB2 7.配置多個節點(數據庫的多個分區) 8.配置數據庫管理服務器 9.配置操作系統內核 10.創建數據庫 安裝步驟詳述: 步驟1. 安裝 Red Hat 7.1 典型的Red Hat 7.1的安裝並沒有包含安裝和運行DB2 EEE的所需要的所有軟件包, 請根據需要安裝下列軟件包, 另外請選擇不要安裝防火牆軟件. X - 如果要運行基與Java的DB2 Control Center(控制中心) Xinetd - DB2通訊時需要這個軟件包 rsh - 為DB2 EEE所用(ssh將不工作) pdksh - 安裝EEE時需要 Nfs-utils - NFS文件系統裝載時需要 步驟2. 配置網絡硬件 DB2 EEE要求分區間的通訊, 所以我們推薦EEE節點間的通訊最好用專有的網絡, 下面這個例子通過在每台機器上安裝兩個網卡實現了公有網絡和DB2 EEE的私有網絡的分離 機器1 主機名: DB2lab1 網卡1 - IP地址 (公共): 9.19.156.33 - 子網掩碼 : 255.255.252.0 網卡2 - IP地址(DB2 EEE專用): 10.10.10.9 - 子網掩碼: 255.255.255.0 機器2 主機名: DB2lab2 網卡1 - IP地址 (公共): 9.19.156.34 - 子網掩碼: 255.255.252.0 網卡2 - IP地址(DB2 EEE專用): 10.10.10.10 - 子網掩碼: 255.255.255.0 步驟3.配置NFS文件系統 DB2 EEE的可伸縮性來源於對硬件資源的最大可能的並行應用. 有一些配置文件是所有DB2分區都需要共享的, 通過裝載(Mount)NFS文件系統這些文件才得以共享. 創建和測試NFS Mount(裝載)的步驟如下: 1 在DB2集群的所有節點上創建 /db2home目錄 2 在DB2集群的第一個節點上(該節點是實例所有者)導出NFS文件系統 (1) 在 DB2lab1上創建/etc/eXPorts文件 (2) 在/etc/exports文件中加入下列入口: /db2home db2lab*.local.domain(rw) (3) 在DB2lab1上重起NFS服務, 命令如下: ./etc/init.d/nfs restart (4) 驗正文件系統導出是可工作的, 用下面的語句 showmount --exports 3 在集群的所有其它機器上裝載該文件系統 (1) 在/etc/fstab文件中插入下面語句: 'DB2lab2:/db2home /db2home nfs rw 0 0' (2) 在集群的所有機器上裝載被導出的文件系統, 命令如下 mount /db2home 步驟4 創建用戶和組 DB2安裝程序能創建EEE所需的用戶和組. 下面是手工創建所需用戶和組的步驟, 手工創建是為了保證所有機器的一致性 1. 在所有機器上創建所需的組, 命令如下: groupadd -g 550 db2iadm groupadd -g 551 db2fadm groupadd -g 552 db2as 2. 在所有機器上創建所需的用戶, 命令如下: useradd -u 550 -g 550 -d /db2home/db2inst1 db2inst1 useradd -u 551 -g 551 -d /db2home/db2fenc1 db2fenc1 useradd -u 552 -g 552 -d /db2home/db2as db2as 3. 為所有機器上的用戶設置密碼, 命令如下: passwd db2inst1 passwd db2fenc1 passwd db2as 用戶db2inst1將作為實例的所有者. 存儲過程將會運行在db2fenc1用戶下 步驟5 安裝rsh DB2 EEE用rsh來遠程地執行命令. 有兩種方法可以激活rsh. 第一種方法是在實例所有者的根目錄下提供安全文件 .rhosts. 第二種方法是為集群中的每一台機器提供安全文件/etc/hosts.equiv. 這兩種方法都會在文件中列出允許發遠程命令的用戶及執行該命令的機器名. 在Red Hat 7.1中, root用戶是不能使用rsh的. 方法1: 1. 創建/db2home/db2inst1/.rhosts.equiv文件 2. 在.rhosts.equiv文件中加入下列語句: DB2lab1 db2inst1 DB2lab2 db2inst1 3. 在所有機器上重起xinetd服務,命令如下: /etc/init.d/xinetd restart 方法2: 1. 在集群的每一台機器上創建/etc/hosts.equiv文件 2. 在hosts.equiv文件中加入下列語句: DB2lab1 db2inst1 DB2lab2 db2inst1 3. 在所有機器上重起xinetd服務,命令如下: /etc/init.d/xinetd restart 步驟6 安裝和配置DB2 EEE 有兩個腳本對於安裝和配置DB2很重要, 一個是db2_install, 一個是db2setup. 前者只能安裝DB2的庫文件, 不能用來創建EEE的實例. 後者卻兩件事都可以做. 下面的例子用db2setup程序來完成安裝. 1. 在每一個節點上運行db2setup程序, db2將會被裝到/usr/IBMdb2/v7.1/目錄下. 需要注意的是db2setup腳本要求libncurses.so.4庫能被正確查看,但Red Hat 7.1的缺省安裝並沒有這個庫. 變通的方法是用下面的命令來創建和libncurses.so.5的象征連接 ln -sf /usr/lib/libncurses.so.5 /usr/lib/libncurses.so.4 2.在第一台機器創建DB2實例(db2lab1),命令如下:(請注意只在第一台機器創建實例) /usr/IBMdb2/v7.1/install/db2setup 步驟7: 配置EEE的多個節點 在你安裝和配置完DB2 EEE後, 你將需要創建EEE的新的分區. /db2home/db2inst1/sqllib/db2nodes.cfg文件定義了DB2 EEE中都存在哪些分區. 添加分區可以用下列步驟: 1. 在db2nodes.cfg文件中為新分區加一行記錄,例如: 1 DB2lab2 0 2. 在創建實例的機器上打開/etc/services文件並檢查為FCM通訊保留的監聽端口已存在,該入口示例如下: db2inst1 60000/tcp(db2inst1是實例名) 3. 登錄集群中的其它機器並修改/etc/services文件,加入同樣的入口. 4. 編輯/db2home/db2inst1/sqllib/db2nodes.cfg文件並指定FCM通訊經過的網絡地址,樣例如下: 0 db2lab1 0 10.10.10.9 1 db2lab2 0 10.10.10.10 步驟8 配置管理服務器 管理服務器用來管理DB2實例,通過下列步驟來創建管理服務器: 1. 執行/usr/IBMdb2/V7.1/install/db2setup 2. 選擇創建管理服務器選項 步驟9 配置內核 為了提高DB2性能和可同時存在的數據庫連接的個數,你需要修改ipc內核參數, 步驟如下: 1. 配置msgmni參數 sysctl -w kernel.msgmni=128 2. 為了系統啟動時該參數配置就生效,需要在/etc/sysctl.conf文件中加入下列入口: kernel.msgmni=128 步驟10 創建數據庫 在缺省情況下, 數據庫會被建在實例所有者的/home目錄下, 這不是我們所需要的, 因為實例所有者的/home目錄位於NFS文件系統下. 所以我們需要在發出創建數據庫命令的時候為數據庫指定位置. 數據庫系統表只位於第一個數據庫分區裡,用戶表會分布在各個分區裡. 在創建數據庫時指定的路徑在集群中的每一台機器上都應該存在而且實例所有者對該路徑應該具有讀和寫權限, 最好的選擇是把該路徑的所有權賦予實例所有者. 具體操作步驟如下: 1. 分別在db2lab1和db2lab2上以root用戶的身份創建一個目錄 mkdir /testdbdir 2. 把對該目錄的所有權賦予實例所有者 chown /testdbdir db2inst1 3. 以實例所有者的身份創建數據庫 db2 "create database test on /testdbdir"