簡介
HACMP (High Availability Cluster MultiProcessing) 是 IBM® 為 AIX® 上的業務關鍵應用程序提供的高可用性解決方案。它監視應用程序及其資源的故障,並在發生故障時自動地把工作重新分配到另一個集群節點,從而確保高可用性。
HACMP Smart Assist 會配置集群環境中的應用程序(WebSphere® Application Server、DB2 和 Oracle),盡可能減少集成 HACMP 和應用程序所需的工作量和時間。它可以簡化多個應用程序的 HACMP 配置。用戶可以使用 DB2 Smart Assist 在 HACMP 下配置非分區的 DB2 Universal Database 實例,從而實現高可用性。DB2 Smart Assist 支持 DB2 V8.1 和 V8.2。
本文講解為 DB2 應用程序啟用 HACMP 的步驟。DB2 Smart Assist 會在 HACMP 中配置應用程序之前檢查應用程序的安裝。本文假設集群中有兩個節點,Node1 是主節點,Node2 是故障轉移/接管/備用/輔助節點,見圖 1。
圖 1. 主節點和輔助節點
在開始之前,先閱讀 DB2-specific requirements 和 Smart Assist for DB2 User's Guide,了解如何計劃 HACMP 環境中的 DB2 安裝。
創建卷組、邏輯卷和文件系統
DB2 Smart Assist 要求 DB2 實例的主目錄位於共享的卷組 (vg) 上。
db2vg1 (shared) -> (hdisk1 on Node1 and hdisk3 on Node2)
建議用 HACMP C-SPOC 實用程序創建卷組。還可以使用 SMIT 或 AIX 命令創建邏輯卷和文件系統。在 Node1 上執行以下操作來創建卷組。
執行以下操作用 C-SPOC 創建卷組:
smitty hacmp
-> System Management(C-SPOC)
-> HACMP Logical Volume Management
-> Shared Volume Groups
-> Create a Shared Volume Group.
選擇用來創建卷組的適當節點。
執行以下操作用 AIX 命令創建卷組:
#umask 022
# mkvg -f -V 70 -y db2vg1 hdisk1
db2vg1
#chvg -an db2vg1
#mklv -t jfs2 -y dbinstance1 db2vg1 128
dbinstance1
#crfs -v jfs2 -d dbinstance1 -m /dbinstance1 -A no
#mount /dbinstance1
用 SMIT 創建卷組的步驟如下:
smitty vg
-> Add a volume group
-> Add an original volume group
輸入卷組名 (db2vg1),選擇物理卷名 (hdisk1),把 Activate volume group AUTOMATICALLY at system restart? 改為 NO,然後單擊 Enter。
用 SMIT 創建邏輯卷的步驟如下:
smitty lv
->Add a Logical Volume
選擇卷組名 (db2vg1) 並填寫邏輯卷名 (dbinstance1)、邏輯分區的數量 (128)、物理卷名 (hdisk1) 和邏輯卷類型 (jfs2),然後單擊 Enter。
用 SMIT 創建文件系統的步驟如下:
smitty fs
-> Add / Change / Show / Delete File Systems
-> Enhanced Journaled File Systems
-> Add an Enhanced Journaled File System on a Previously
Defined Logical Volume
輸入邏輯卷名 (dbinstance1) 和掛載點 (/dbinstance1),把 mount AUTOMATICALLY at system restart? 設置為 no,然後單擊 Enter。
創建用戶和組
在主節點 (Node1) 上創建 DB2 用戶和組,把主節點上的 /etc/passwd、/etc/group、/etc/security/passwd、/etc/security/group 和 /etc/security/user 文件中的條目復制到所有故障轉移節點上。可以用 SMIT 或 AIX 命令創建組和用戶。
按照以下步驟在主節點上創建 DB2 用戶和組:
#mkgroup id=515 dasadm1
#mkuser id=515 pgrp=dasadm1 home=/dbinstance1/dasusr1 dasusr1
#passwd dasusr1
Changing passWord for "dasusr1"
dasusr1's New passWord:
Enter the new passWord again:
#pwdadm -c dasusr1
#mkgroup id=516 db2grp1
#mkgroup id=517 db2fgrp1
#mkuser id=516 pgrp=db2grp1 groups=db2grp1,dasadm1 home=/dbinstance1/db2inst1
db2inst1
#mkuser id=517 pgrp=db2grp1 home=/dbinstance1/db2fenc1 db2fenc1
#passwd db2inst1
Changing passWord for "db2inst1"
dasusr1's New passWord:
Enter the new passWord again:
#pwdadm -c db2inst1
#passwd db2fenc1
Changing passWord for "db2fenc1"
dasusr1's New passWord:
Enter the new passWord again:
#pwdadm -c db2fenc1
使用 SMIT 創建組 (db2grp1, db2fgrp1, dasadm1):
smitty
->Security and Users
->Groups
->Add a Group
輸入組名 (db2grp1),把 ADMINISTRATIVE group? 設置為 false,然後單擊 Enter。Group ID 保持為空,這會自動生成一個可用的 groupID。
使用 SMIT 創建用戶 (db2inst1, dasusr1, db2fenc1):
smitty
->Security and Users
->Users
->Add a user
輸入用戶名 (db2inst1)、主組 (db2grp1)、組集 (db2grp1, dasadm1) 和主目錄 (/dbinstance1/db2inst1),然後單擊 Enter。User ID 保持為空,這會自動生成一個可用的 userID。
分配或修改用戶的密碼:
smitty
->Security and Users
->Users
->Change a User's PassWord
選擇用戶並單擊 Enter。
在主節點上安裝 DB2
在開始安裝之前,確保滿足以下條件:
滿足所有系統需求,包括磁盤、內存等等。請參見 AIX 操作系統的 DB2 installation requirements。
有 DB2 產品鏡像文件可用。
DB2 安裝向導是一個圖形化安裝程序,所以安裝 DB2 需要一個能夠運行圖形用戶界面的 'X' Windows® 軟件。還要確保正確地導出 “DISPLAY”。
啟動 DB2 安裝向導:
作為根用戶登錄。
切換到 DB2 產品映像的位置 (./product/disk1)。
在產品映像所在的目錄中運行 ./db2setup。
IBM DB2 Setup Launchpad 打開。可以查看安裝的前提條件和版本說明,還可以直接開始安裝。
單擊 Install Products。
選擇 DB2 UDB Enterprise Server Edition 並單擊 Next。
在出現歡迎屏幕時,單擊 Next。
選擇 Accept 接受軟件許可協議並單擊 Next。
在 “Select Installation Type” 屏幕上,選擇安裝類型為 Typical。單擊 Next。
選擇 Install DB2 UDB Enterprise Edition Server on this computer and save your settings in a response file 並單擊 Next。
下面的屏幕提示您輸入 DB2 Administrator Server 的用戶信息。選擇 Existing user 並單擊浏覽按鈕(上面顯示三個點號),然後選擇主組中的 All users。選擇所選組中的 dasusr1。單擊 OK,然後單擊 Next。
在 “Setup a DB2 Instance” 屏幕上選擇 Do not setup an instance,因為將手工創建此實例。單擊 Next。
適當地設置 “SMTP Notification server” 並單擊 Next。
Summary 屏幕顯示為產品安裝指定的首選項。單擊 Finish。
在默認情況下,安裝日志 db2setup.log 和 db2setup.err 在 /tmp 目錄中。要確保此目錄中有足夠的空間。db2setup.log 文件捕捉所有 DB2 安裝信息,包括錯誤。db2setup.err 文件捕捉 Java™ 返回的所有錯誤輸出(例如,異常和陷阱信息)。
安裝成功之後,運行以下命令關閉 DB2 錯誤監視器:
#chitab fmc:2:off:/usr/opt/db2_08_02/bin/db2fmcd #DB2 Fault Monitor Coordinator
運行以下命令創建一個共享的實例:#/usr/opt/db2_08_02/instance/db2icrt -a SERVER -s ese -u db2fenc1
-w 32 -p db2c_db2inst1 db2inst1
#su - db2inst1 # become the instance owner
db2start
db2sampl # create the sample database
db2 'connect to sample'
db2 'select * from staff where dept=20'
db2 terminate
db2stop
exit
在備用節點上安裝 DB2
卸載 Node1 上的 varyoffvg:
#umount /dbinstance1
#varyoffvg db2vg1
在 Node2 上執行以下命令:
#importvg -V 70 -y db2vg1 hdisk3
db2vg1
#chvg -an db2vg1
#mount /dbinstance1
像上面一樣執行 ./db2setup,然後運行:
#chitab fmc:2:off:/usr/opt/db2_08_02/bin/db2fmcd #DB2 Fault Monitor Coordinator
在故障轉移節點上的 /etc/services 中添加條目
把主節點 (Node1) 上 /etc/services 中的以下條目復制到故障轉移節點 (Node2) 上的 /etc/services 中。
Node1 上 /etc/services 中的條目如下所示:
DB2_db2inst1 60000/tcp
DB2_db2inst1_1 60001/tcp
DB2_db2inst1_2 60002/tcp
DB2_db2inst1_END 60003/tcp
在故障轉移節點 Node2 上啟用 DB2 實例之前,更新 db2nodes.cfg 文件。
#vi /dbinstance1/db2inst1/sqllib/db2nodes.cfg
中間一列應該是主節點的主機名。把輔助節點的主機名改為主節點的主機名。
修改故障轉移節點上的主機名:
smitty hostname
-> set the Hostname
輸入主節點的主機名。
檢查在故障轉移節點 (Node2) 上是否能夠啟動此實例。
su - db2inst1
db2start
db2 'connect to sample'
db2 'select * from staff where dept=20'
db2 terminate
db2stop
exit
Mutual Takeover 配置
如果計劃使用 HACMP 的 Mutual Takeover 配置(關於 Mutual Takeover 配置的信息請參見 Smart Assist for DB2 User's Guide),那麼需要在另一個共享卷組(比如 db2vg2)上安裝第二個實例。
#mkvg -f -V 70 -y db2vg2 hdisk4
db2vg2
#chvg -an db2vg2
#mklv -t jfs2 -y dbinstance2 db2vg2 128
dbinstance2
#crfs -v jfs2 -d dbinstance2 -m /dbinstance2 -A no
#mount /dbinstance2
然後創建用戶 db2inst2:
#mkuser id=526 pgrp=db2grp1 groups=db2grp1,dasadm1 home=/dbinstance2/db2inst2
db2inst2
#passwd db2inst2
Changing passWord for db2inst2
dasusr1's New passWord:
Enter the new passWord again:
#pwdadm -c db2inst2
現在創建實例:
#/usr/opt/db2_08_02/instance/db2icrt -a SERVER -s ese -u db2fenc1
-w 32 -p db2c_db2inst2 db2inst2
為 db2inst2 創建數據庫:
#su - db2inst2 # become the instance owner
db2start
db2sampl # create the sample database
db2 'connect to sample'
db2 'select * from staff
db2 terminate
db2stop
exit
現在,在此節點上卸載文件系統和 varyoffvg 並把它導入另一個集群節點。確保把用戶和組條目復制到故障轉移節點上的 /etc/passwd、/etc/group、/etc/security/passwd、/etc/security/group 和 /etc/security/user 文件中。檢查是否可以在此節點 (Node2) 上運行 db2inst2。
在 HACMP 中添加 DB2 應用程序
如果還沒有在所有節點上安裝 HACMP,現在就安裝它。在所有集群節點上的 /etc/hosts 中添加所需的條目並配置集群。關於配置集群的信息請參見 Configuring DB2 in an HACMP Cluster。
配置服務 IP 標簽:
smitty hacmp
-> Extended Configuration
-> Extended Resource Configuration
-> HACMP Extended Resources Configuration
->Configure Service IP Labels/Address
-> Add a service IP Label/Address
-> Configurable to multiple nodes.
選擇 Network 並輸入作為 DB2 的服務 IP 標簽的 IP,單擊 Enter。
把修改同步到所有集群節點上:
smitty hacmp
-> Initialization and Standard Configuration
->Verify and Synchronize HACMP Configuration.
輸入以下命令配置 DB2 應用程序:
smitty hacmp
-> Initialization and Standard Configuration
-> Configuration Assistants
-> Make Applications Highly Available (Use Smart Assists)
-> Add an Application to the HACMP Configuration
HACMP 會發現安裝了 DB2 的節點並在 DB2 Smart Assist 選擇器屏幕上顯示節點名,如下所示。
圖 2. DB2 Smart Assist 選擇器屏幕
確保 DB2 Smart Assistant 中顯示的節點名是正確的。
在選擇 DB2 Smart Assistant 時,顯示以下屏幕:
圖 3. 選擇特定配置屏幕
選擇選項,輸入應用程序名、故障轉移節點、要監視的數據庫和服務 IP 標簽,單擊 Enter。Smart Assist 會在 HACMP 配置中添加 DB2 實例(關於 DB2 Smart Assist 選項的信息請參見 Smart Assist for DB2 User's Guide)。
結束語
Smart Assist 有助於簡化在 HACMP 下配置應用程序。為 DB2 應用程序啟用 HACMP DB2 Smart Assist 之後,HACMP 會對應用程序進行監視並支持在發生故障時執行恢復。