简介
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. 主节点和辅助节点
![主节点和辅助节点](http://www.ibm.com/developerworks/cn/aix/library/au-db2_hacmp/figure01.gif)
在开始之前,先阅读 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 会对应用程序进行监视并支持在发生故障时执行恢复。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-584378/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15082138/viewspace-584378/