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。
在开始之前,先阅读 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 安装向导:
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
|
卸载 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 |
把主节点 (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 |
如果计划使用 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,现在就安装它。在所有集群节点上的 /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 选择器屏幕上显示节点名,如下所示。
确保 DB2 Smart Assistant 中显示的节点名是正确的。
在选择 DB2 Smart Assistant 时,显示以下屏幕:
选择选项,输入应用程序名、故障转移节点、要监视的数据库和服务 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 会对应用程序进行监视并支持在发生故障时执行恢复。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15082138/viewspace-584378/ ,如需转载,请注明出处,否则将追究法律责任。