教你在AIX上安裝IBM DB2 9版本的分區環境
磁盤和內存要求
磁盤要求
磁盤要求取決于你安裝的選件的多少,安裝過程中有3個選件可以安裝,分別是 ESE、CLIENT 和 RTCL,一般情況下,如果你安裝所有的3個選件,2GB 空間是足夠了。在 AIX 上,DB2 基本產品缺省是安裝在/opt/IBM/DB2/V9.1目錄下。
內存要求
DB2 數據庫系統至少需要 256 MB RAM。對于一個只運行 DB2 和 DB2 GUI 工具的系統,至少需要 512 MB RAM。但是,建議提供 1 GB 的 RAM 以提高性能。這些需求并不包括在系統上運行的其他軟件所需要的內存。
機器數目要求
你可以在一臺機器上安裝 DB2 分區數據庫,也可以在多臺機器上安裝一個分區數據庫,本文檔假設你在 ServerA、ServerB、ServerC 和 ServerD 四臺機器上進行安裝。
對操作系統的安裝要求
表1. 對操作系統的環境要求
AIX 版本 操作系統
AIX V5.2.0 1)64-bit AIX kernel is required;
2)TL08 and SP2;
3)Minimum C++ runtime level is xlC.rte 8.0.0.4 and xlC.AIX50.rte 8.0.0.4
AIX V5.3.0 1)64-bit AIX kernel is required;
2)TL04 and SP2;
3)Minimum C++ runtime level is xlC.rte 8.0.0.4 and xlC.AIX50.rte 8.0.0.4
使用 bosboot 命令切換至 64 位內核
要切換至 64 位內核,需要 root 用戶權限并應輸入下列命令:
清單1
ln -sf /usr/lib/boot/unix_64 /unix
ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
bosboot -a
shutdown -Fr
DB2版本9要求
DB2 版本 9 需要“用于 AIX 的 IBM C++ 運行時環境組件”,它包含 xlC.rte 8.0.0.4。這可以從 IBM AIX 支持Web 站點獲得。
驗證操作系統環境
執行 oslevel -s
5300-04-02 此輸出結果說明已經達到了 TL04 和 SP2
驗證是否啟用了64位內核
清單2
/usr/sbin/bootinfo -K
如果啟用了 32 位內核則返回“32”,如果啟用了 64 位內核則返回“64”。
安裝 DB2 的基本產品
將 DB2 DPF 所在的軟件包 ese.tar.gz 通過 FTP 傳送到每臺需要運行 DPF 的機器上,通過下面的命令進行解壓:
清單3
gzip –d ese.tar.gz
tar –xvf ese.tar
將目錄更改到產品目錄:
cd ese/Disk1
執行 DB2_install 安裝產品:
./db2_install
當提示輸入需要安裝的產品名稱時,輸入 ESE CLIENT。
CLIENT 包含有 DB2 應用開發所需要的軟件包,一般情況下都是需要安裝的。
安裝 DB2 的最新補丁
在初次安裝 DB2 的基本產品之后,建議安裝 DB2 最新的補丁程序,這對于系統將來的穩定性都是有幫助的,并且由于是在創建實例之前安裝,因此不需要執行 db2iupdt 來更新實例,DB2 最新的補丁程序可以從下面的網址獲得:
http://www-1.ibm.com/support/docview.wss?rs=71&uid=swg21254867
補丁包程序是壓縮過的,一般也需要通過類似于解壓產品包的方式來解壓,在解壓之后,通過執行下面的程序來安裝補丁包:
清單4
./installFixPak -y
驗證 NFS 是否在運行
在設置數據庫分區環境之前,應驗證“網絡文件系統”(NFS)在將參與分區數據庫系統的每臺計算機上是否正在運行。
先決條件
NFS 必須在每臺計算機上都正在運行。
過程
要驗證 NFS 是否在每臺計算機上都正在運行。
在每臺計算機上輸入以下命令:
清單5
lssrc -g nfs
NFS 進程的狀態字段應該指示活動。驗證了 NFS 是否在每個系統上都正在運行之后,應檢查 DB2 必需的特定 NFS 進程。必需的進程有:
rpc.lockd
rpc.statd
創建分區數據庫系統的 DB2 主文件系統
此任務是設置分區數據庫系統這一任務的一部分。此任務描述如何完成下列操作:
創建一個 DB2 主文件系統
NFS 導出主文件系統
NFS 在參與的每臺計算機中都安裝主文件系統
建議創建一個大小不低于 1 GB 的主文件系統
先決條件
您必須具有:
創建文件系統的 root 用戶權限
創建了要將文件系統真正放置于的卷組。
過程
要創建以 NFS 方式導出并以 NFS 方式安裝的 DB2 主文件系統,執行下列步驟:
創建 DB2 主文件系統
作為具有 root 用戶權限的用戶登錄分區數據庫系統的主計算機(ServerA),并為分區數據庫系統創建名為 /db2home 的主文件系統。
輸入 smit jfs 命令。
單擊添加日志文件系統圖標。
單擊添加標準日志文件系統圖標。
從卷組名列表中選擇想要將此文件系統真正放置于的現有卷組。
設置文件系統的大小(文件系統大小(以 512 字節塊計)(數字)字段)。此大小按 512
字節塊計數縮放,如果只需要為實例主目錄創建文件系統,可以使用 180 000,大約 90 MB。
在安裝點字段中輸入此文件系統的安裝點。在此示例中,安裝點為 /db2home。
將在系統重新啟動時自動安裝字段設置為是。其余字段可保留缺省設置。
單擊確定。
導出 DB2 主文件系統
以 NFS 方式導出 /db2home 文件系統,使它可用于將參與分區數據庫系統的所有計算機:
輸入 smit nfs 命令。
單擊網絡文件系統(NFS)圖標。
單擊將目錄添加至導出列表圖標。
在要導出的目錄的路徑名字段中,輸入要導出的路徑名和目錄(例如,/db2home)。
在允許具有 root 用戶訪問權的主機字段中輸入將要參與分區數據庫系統的每個工作站的名稱。使用逗號(,)作為每個名稱之間的定界符。例如,ServerA,ServerB,ServerC。如果是在使用高速互連,建議在此字段中還要指定每個工作站的高速互連名稱。其余字段可保留缺省設置。
單擊確定。
注銷。
在參與的每臺計算機中安裝 DB2 主文件系統
登錄至參與的每臺計算機(ServerB、ServerC 和 ServerD),通過執行下列步驟來以 NFS 方式安裝已導出的文件系統:
輸入 smit nfs 命令。
單擊網絡文件系統(NFS)圖標。
單擊添加文件系統以進行安裝圖標。
在安裝點的路徑名(路徑)字段中輸入安裝點的路徑名。 安裝點的路徑名就是應創建 DB2 主目錄的位置。對于此示例,使用 /db2home。
在遠程目錄的路徑名字段中輸入遠程目錄的路徑名。對于本示例,應輸入您在安裝點的路徑名(路徑)字段中輸入的值。
在遠程目錄所在的主機字段中輸入導出了文件系統的機器的主機名。 這是創建了正在安裝的文件系統的機器的主機名。為了提高性能,您可能想通過高速互連以 NFS 方式安裝您創建的文件系統。如果想要使用高速互連來安裝此文件系統,則必須在遠程目錄所在的主機字段中輸入其名稱。您應該知道,如果高速互連由于某種原因而變得不可用,則參與分區數據庫系統的每個工作站都將無法訪問此 DB2 主目錄。
將立即安裝,將條目添加至 /etc/filesystems 還是全部字段設置為全部。
將 /etc/filesystems 條目將在系統重新啟動時安裝目錄字段設置為是。
將此 NFS 文件系統的方式字段設置為讀寫。
將對文件系統進行軟安裝還是硬安裝字段設置為軟安裝。 軟安裝表示計算機將不會無限期地嘗試以遠程方式安裝該目錄。硬安裝表示機器將不停地嘗試安裝該目錄。這可能會在系統崩潰時產生問題。建議將此字段設置為軟安裝。其余字段可保留缺省設置。
確保此文件系統是在是否允許在此文件系統中執行 SUID 和 SGID 程序字段設置為是的情況下安裝的。這是缺省設置。
單擊確定。
注銷。
在分區數據庫環境中為 DB2 服務器安裝創建必需的用戶
運行 DB2 實例需要三個用戶和組。下表說明在下列指令中使用的用戶名和組名。可以指定您自己的用戶名和組名,但是它們必須符合系統命名規則和 DB2 命名規則。
表2. 創建必需的用戶和組
必需的用戶 用戶名 組名
實例所有者 db2inst1 db2iadm1
受防護的用戶 db2fenc1 db2fadm1
管理服務器用戶 dasusr1 dasadm1
* 必須具有 root 用戶權限才能創建用戶和組。
限制
您創建的用戶名必須同時符合操作系統命名規則和 DB2 命名規則。
過程
要創建全部這三個用戶,執行下列步驟:
登錄主計算機。
通過輸入下列命令,為實例所有者創建一個組(例如,db2iadm1),為將要執行 UDF 或存儲過程的用戶創建一個組(例如,db2fadm1),并為管理服務器創建一個組(例如,dasadm1):
清單6
mkgroup id=999 db2iadm1
mkgroup id=998 db2fadm1
mkgroup id=997 dasadm1
通過使用下列命令,為前一步驟中創建的每個組創建一個用戶。每個用戶的主目錄將是您先前創建且共享的 DB2 主目錄(db2home):
清單7
mkuser id=1004 pgrp=db2iadm1 groups=db2iadm1 home=/db2home/db2inst1 core=-1 data=491519
stack=32767 rss=-1 fsize=-1 db2inst1
mkuser id=1003 pgrp=db2fadm1 groups=db2fadm1 home=/db2home/db2fenc1 db2fenc1
mkuser id=1002 pgrp=dasadm1 groups=dasadm1 home=/home/dasusr1 dasusr1
通過輸入下列命令,為創建的每個用戶設置初始密碼:
清單8
passwd db2inst1
passwd db2fenc1
passwd dasusr1
注銷。
作為已創建的每個用戶(db2inst1、db2fenc1 和 dasusr1)登錄主計算機。因為這是這些用戶第一次登錄系統,所以可能會提示您更改每個用戶的密碼。
注銷。
在將參與分區數據庫環境的每臺計算機上創建完全相同的用戶和組帳戶。
更新用于分區 DB2 安裝的環境設置
此任務描述了將參與分區數據庫系統的每臺計算機上需要更新的環境設置。
過程
要更新 AIX 環境設置:
作為具有 root 用戶權限的用戶登錄計算機。
通過輸入以下命令,將 AIX maxuproc(每個用戶的最大進程數)設備屬性設置為 4096:
清單9
chdev -l sys0 -a maxuproc='4096'
注:如果另一映像正在運行,則可能需要將 bosboot/reboot 切換為 64 位內核。
在參與分區數據庫系統的所有工作站上,將 TCP/IP 網絡參數設置為下列值。這些值都是這些參數的最小值。如果任何網絡相關參數都已設置為較高的值,則不要更改它。
thewall = 65536
sb_max = 1310720
rfc1323 = 1
tcp_sendspace = 221184
tcp_recvspace = 221184
udp_sendspace = 65536
udp_recvspace = 65536
ipqmaxlen = 250
somaxconn = 1024
要列示所有網絡相關參數的當前設置,輸入以下命令:
清單10
no -a | more
要設置參數,輸入以下命令:
no -o parameter_name=value
其中:
parameter_name 表示想要設置的參數。
value 表示想要對此參數設置的值。
例如,要將 tcp_sendspace 參數設置為 221184,輸入以下命令:
清單11
no -o tcp_sendspace=221184
如果正在使用高速互連,則必須將 css0 的 spoolsize 和 rpoolsize 設置為下列值:
spoolsize 16777216
rpoolsize 16777216
要列示這些參數的當前設置,輸入以下命令:
清單12
lsattr -l css0 -E
要設置這些參數,輸入下列命令:
/usr/lpp/ssp/css/chgcss -l css0 -a spoolsize=16777216
/usr/lpp/ssp/css/chgcss -l css0 -a rpoolsize=16777216
如果沒有使用 /tftpboot/tuning.cst 文件來調整系統,則在安裝之后可以使用 DB2DIR/misc/rc.local.sample 樣本腳本文件,其中 DB2DIR 是 DB2 產品安裝的路徑,來更新網絡相關參數。要在安裝之后使用樣本腳本文件來更新網絡相關參數,執行下列步驟:
通過輸入下列命令,將此腳本文件復制到 /etc 目錄,并使它可由 root 用戶執行:
清單13
cp /usr/opt/db2_09_01/misc/rc.local.sample /etc/rc.local
chown root:sys /etc/rc.local
chmod 744 /etc/rc.local
查看 /etc/rc.local 文件并對其進行更新(如果有必要的話)。
向 /etc/inittab 文件添加一個條目,以便每當機器重新引導時執行 /etc/rc.local 腳本。可使用 mkitab 命令來向 /etc/inittab 文件添加一個條目。要添加此條目,輸入以下命令:
清單14
mkitab 'rclocal:2:wait:/etc/rc.local > /dev/console 2>&1'
通過輸入以下命令,確保 /etc/inittab 文件包括 /etc/rc.nfs 條目:
清單15
lsitab rcnfs
通過輸入以下命令,在不重新引導系統的情況下更新網絡參數:
清單16
/etc/rc.local
確保具有足夠的交換空間來運行 DB2 ESE 的分區安裝。如果沒有足夠的交換空間,則操作系統將停止正在使用大部分虛擬內存(這可能是其中一個 DB2 進程)的進程。要檢查可用的交換空間,輸入以下命令:
清單17
lsps -a
此命令將返回類似于以下的輸出:
表3. 交換空間輸出結果
Page Space Physical Volume Volume Group Size %Used Active Auto Type paging00 hdisk1 rootvg 60MB 19 yes yes lv hd6 hdisk0 rootvg 60MB 21 yes yes lv hd6 hdisk2 rootvg 60MB 21 yes yes lv
建議可用交換空間應是在計算機上安裝的物理內存量的兩倍。
驗證參與的計算機上的可用端口范圍
此任務描述了驗證參與的計算機上的可用端口范圍時需要執行的步驟。端口范圍由“快速通信管理器”(FCM)使用。FCM 是 DB2 用來處理數據庫分區服務器之間的通信的功能部件。當在主機器上安裝實例擁有的數據庫分區服務器時,DB2 根據指定的參與分區數據庫環境的數據庫分區服務器數目保留端口范圍。缺省范圍為四個端口。當在參與的計算機上安裝數據庫分區服務器時,“DB2 安裝”向導必須能夠保留相同的端口范圍;端口范圍必須在每個數據庫分區服務器上都是可用的。應該在安裝實例擁有的數據庫分區服務器之后,并在安裝任何參與的數據庫分區服務器之前執行此任務。
先決條件
要更改 services 文件,需要具有 root 用戶權限。
過程
要驗證參與的計算機上的可用端口范圍:
打開位于 /etc/services 目錄中的 services 文件。
查找為 DB2 的“快速通信管理器”(FCM)保留的端口。這些條目應類似如下:
DB2_db2inst1 60000/tcp
DB2_db2inst1_1 60001/tcp
DB2_db2inst1_2 60002/tcp
DB2_db2inst1_END 60003/tcp
DB2 將保留 60000 之后的前四個可用端口。
在參與的每臺計算機上,打開 services 文件,并驗證在主計算機的 services 文件中為 DB2 FCM 保留的端口是否未使用。如果參與的某臺計算機正在使用需要的端口,則應確定所有計算機的可用端口范圍,并更新每個 services 文件(包括主計算機上的 services 文件)。
啟用遠程命令的執行
必須在單一分區數據庫環境和分區數據庫環境中都更新 .rhosts 文件以執行遠程命令。
在分區數據庫中,每個數據庫分區服務器必須具有對參與實例的所有其他數據庫分區服務器執行遠程命令的權限。可以通過更新實例的主目錄中的 .rhosts 文件來授予此權限。因為實例的主目錄在共享 DB2主文件系統上,所以只需要一個 .rhosts 文件。
先決條件
必須具有 root 用戶權限。 必須知道每臺參與計算機的主機名 必須知道實例所有者的用戶名。
過程
作為具有 root 用戶權限的用戶登錄主計算機。
在實例主目錄中創建 .rhosts 文件。例如,如果實例主目錄是 /db2home/db2inst1,則可以通過輸入以下命令來使用文本編輯器創建 .rhosts 文件:
清單18
vi /db2home/db2inst1/.rhosts
為每臺計算機(包括主計算機)向 .rhosts 文件添加條目。.rhosts 文件具有以下格式:
hostname instance_owner_user_name
一些系統可能需要指定長主機名,例如:ServerA.yourdomain.com。在將主機名條目添加至 .rhosts 文件之前,確保能夠解析 /etc/hosts 和 /etc/resolv.conf 文件中的主機名。
$INSTHOME/.rhosts 文件應該包含類似如下的條目:
ServerA.yourdomain.com db2inst1
ServerB.yourdomain.com db2inst1
ServerC.yourdomain.com db2inst1
ServerD.yourdomain.com db2inst1
可以在 .rhosts 文件中指定以下條目,而不是分別指定每個主機名,但是此操作可能會產生安全風險,僅應在測試環境中這樣做。
+ db2inst1
如果在 db2nodes.cfg 文件中指定了高速交換機(網絡名),則還應將每臺計算機的網絡名條目添加至 .rhosts 文件。網絡名值是在 db2nodes.cfg 文件的第四列中指定的。帶有高速交換機(網絡名)條目的 .rhosts 文件可能類似如下:
ServerA.yourdomain.com db2inst1
ServerB.yourdomain.com db2inst1
ServerC.yourdomain.com db2inst1
ServerD.yourdomain.com db2inst1
Switch1.yourdomain.com db2inst1
Switch2.yourdomain.com db2inst1
Switch3.yourdomain.com db2inst1
Switch4.yourdomain.com db2inst1
如果不使用 .rhosts 文件,也可以使用 /etc/hosts.equiv 文件。/etc/hosts.equiv 文件將包含與 .rhosts 文件完全相同的條目,但是必須在每臺計算機上創建它。
創建 DB2 實例
在參與分區安裝的任何一臺機器上運行下面命令創建 DB2 實例:
清單19
/opt/IBM/db2/V9.1/instance#./db2icrt -a server -p 50000 -s ese -u db2fenc1 db2inst1
更新節點配置文件
節點配置文件(db2nodes.cfg)位于實例所有者的主目錄中,它包含一些配置信息,告訴 DB2 有哪些服務器參與分區數據庫環境的實例。分區數據庫環境中的每個實例都有一個 db2nodes.cfg 文件。對于每個參與實例的服務器,db2nodes.cfg 文件必須包含一個條目。當創建實例時,會自動創建 db2nodes.cfg 文件并對擁有實例的服務器添加條目。
例如,在擁有實例的服務器 ServerA 上使用“DB2 安裝”向導創建了 DB2 實例時,db2nodes.cfg 文件將被更新為如下所示:
0 ServerA 0
此任務提供了一些步驟,以將 db2nodes.cfg 文件更新為包括參與的計算機的條目。
先決條件
必須在所有參與的計算機上安裝 DB2 應用程序。
DB2 實例必須存在于主計算機上。
您必須是具有 SYSADM 權限的用戶。
如果您打算將高速交換機用于數據庫分區服務器之間的通信,或者如果分區配置將具有多個邏輯分區,則復查『DB2 節點配置文件』主題以獲取配置示例和有關 db2nodes.cfg 的文件格式的信息。
限制
在“過程”部分的步驟中使用的主機名必須是標準主機名。
過程
要更新 db2nodes.cfg 文件:
作為實例所有者登錄(在本示例,db2inst1 是實例所有者)。
通過輸入以下命令確保已停止 DB2 實例:
清單20
$INSTHOME/sqllib/adm/db2stop
其中 $INSTHOME 是實例所有者的主目錄(db2nodes.cfg 文件在實例運行時被鎖定,并且僅當實例停止時才可以編輯該文件)。
例如,如果實例主目錄為 /db2home/db2inst1,則輸入以下命令:
清單21
/db2home/db2inst1/sqllib/adm/db2stop
對于每個 DB2 實例,向 .rhosts 文件添加一個條目。通過添加以下項來更新文件:
其中 是數據庫服務器的 TCP/IP 主機名, 是用來訪問數據庫服務器的實例的名稱。
向每個參與的服務器的 db2nodes.cfg 文件添加一個條目。當第一次查看 db2nodes.cfg 文件時,它應該包含類似于以下內容的條目:
0 ServerA 0
此條目包括數據庫分區服務器號(節點號)、數據庫分區服務器駐留的服務器的 TCP/IP 主機名以及數據庫分區服務器的邏輯端口號。
如果正在對安裝概述中所描述的分區配置(有四臺計算機,每臺計算機上安裝一個數據庫分區服務器)進行安裝,則應該出現類似如下的更新 db2nodes.cfg:
0 ServerA 0
1 ServerB 0
2 ServerC 0
3 ServerD 0
當完成更新 db2nodes.cfg 文件時,輸入 INSTHOME/sqllib/adm/db2start 命令,其中 INSTHOME 是實例所有者的主目錄。例如,如果實例主目錄為 /db2home/db2inst1,則輸入以下命令:
清單22
/db2home/db2inst1/sqllib/adm/db2start
注銷。
設置 TCP/IP 通訊
修改/etc/services,使 TCP/IP 的通訊成為可能
修改/etc/servcies,增加下面的信息:
db2_conn 50000/tcp
用 db2inst1 用戶登錄,運行 su – db2inst1
啟動數據庫
運行 db2start
設置 TCP/IP 通訊協議,然后重新啟動數據庫
運行 db2set DB2COMM=tcpip”
運行 db2 terminate”
運行 db2 update dbm cfg using svcename db2_conn”
運行 db2stop force;db2start”
使用 db2licm 命令注冊 DB2 產品或功能部件許可證密鑰
在安裝了 DB2產品或功能部件的每一臺機器上,應該注冊一個 DB2 產品或功能部件許可證密鑰。有關這些產品選項的更多信息,請參閱 Web 上的 DB2 版本 9 包裝信息。如果要在安裝期間自動添加產品或功能部件許可證密鑰,則需要在啟動“DB2 安裝”向導之前將許可證密鑰復制到安裝映像的 /db2/license 目錄。
過程
要注冊 DB2 許可證密鑰,輸入:
db2licm -a filename
其中 filename 是和產品或功能部件對應的許可證文件的完整路徑名和文件名。許可證文件位于和 DB2 產品或功能部件關聯的激活 CD 的 /db2/license 目錄中。
要將 DB2 產品或功能部件許可證密鑰注冊為實例所有者:
創建實例環境并成為實例所有者。
使用相應的命令注冊 DB2 許可證:
對于 Linux 和 UNIX 操作系統:
db2instance_path/adm/db2licm -a filename.lic
對于 Windows 操作系統:
db2instance_pathadmdb2licm -a filename.lic 其中 db2instance_path 是創建 DB2 實例的位置,而 filename 是與已購買的產品相對應的許可證文件的完整路徑名和文件名。許可證文件位于產品或功能部件的激活 CD 的根目錄的 /db2/license 目錄中。
驗證分區數據庫服務器安裝
要驗證是否成功安裝了 DB2 服務器,創建樣本數據庫并運行 SQL 命令來檢索樣本數據并驗證數據是否已分發至所有參與的數據庫分區服務器。
先決條件
已完成所有安裝步驟。
過程
要創建 SAMPLE 數據庫:
作為擁有實例的用戶登錄主計算機(ServerA)。在本安裝示例中,db2inst1 是擁有實例的用戶。
輸入 db2sampl 命令來創建 SAMPLE 數據庫。
缺省情況下,將在實例所有者的主目錄中創建樣本數據庫。在本示例中,/db2home/db2inst1/ 是實例所有者的主目錄。實例所有者的主目錄是缺省數據庫路徑。
處理此命令可能要花幾分鐘。沒有完成消息;當返回命令提示符時,該過程完成。
創建 SAMPLE 數據庫時,該數據庫自動以數據庫別名 SAMPLE 進行編目。
輸入 db2start 命令來啟動數據庫管理器。
在 DB2 命令窗口中輸入下列 DB2 命令來連接至 SAMPLE 數據庫,并檢索在部門 20 工作的所有職員的列表:
清單23
db2 connect to sample
db2 select * from staff where dept = 20
要驗證是否已將數據分發至數據庫分區服務器,在 DB2 命令窗口中輸入下列命令:
清單24
db2 select distinct dbpartitionnum(empno) from employee;
輸出將列示 employee 表使用的數據庫分區。
結論
至此,恭喜你的 DB2 分區環境已經安裝成功了,接下了你可以創建用戶數據庫、database partition group、緩沖池、用戶表空間以及帶有 partition key 的用戶表,進入開發階段或導入用戶數據了。
