DB2对于MSCS提供了良好的支持,在MSCS中安装DB2 EEE,基本实现步骤如下:
参考:http://www.ibm.com/developerworks/cn/data/library/techarticles/0305sunqin/0305sunqin1.html
http://www.ibm.com/developerworks/cn/data/library/techarticles/0305sunqin/0305sunqin2.html
上述5个步骤基本上是我们在MSCS环境中安装DB2 EEE的步骤,关于安装配置MSCS和安装DB2 EEE我在这里不作详述,请参照各自的安装文档。值得一提的是,安装完MSCS后一定要进行详尽的测试,确保群集的各种功能正确。因为很多安装失败都是由于MSCS未能完全正确配置成功导致的。下面主要讲一下如何计划准备、升迁DB2 EEE实例、测试DB2 EEE在MSCS环境中的安装。
计划与准备主要是彻底了解客户的环境和要求,设计出合适的群集方案。DB2 EEE在MSCS环境中支持热备份(Hot Standby)、互备份(Mutual Takeover)或者热备份和互备份混合的配置。在本文章的例子中,我们实现一个两分区数据库服务器实例的互备份配置。
选择了合适的群集方案后,就需要作一个故障切换的详细资源的清单,合理的设计MSCS的资源分组,在资源组中需要的资源等等。一般而言,对于总是需要一起切换的数据库分区服务器,需要吧他们分在一个资源组中。如需要相同磁盘及IP地址资源的逻辑数据库分区服务器。
MSCS中,DB2的一个数据库分区服务器是作为一个DB2资源存在的,一般而言,DB2分区服务器需要依赖的资源有磁盘资源、用于分区服务器之间通信的专用网络(Private Network)的IP地址资源和网络名称资源、用于对外服务的公共网络(Public Network)的IP地址资源。只用准备提供远程客户端连接的数据库分区服务器需要对外服务的公共网络的IP地址资源,每一个数据库分区服务器都提供远程客户端连接可以实现网络的负载均衡。注意,对于在MSCS环境中定义的所有IP地址资源都必须是静态IP地址,因为所有的TCP/IP资源都必须在DNS服务器中注册或者存在与群集中每一台机器的hosts文件中。
每一个数据库分区服务器都需要资源,您可以限制每台机器上运行的最大数据库分区服务器的数目,通过参数DB2_NUM_FAILOVER_NODES设定。如在我们的例子中,只有两个数据库分区服务器,那么我们可以通过如下命令将每台机器上运行的最大数据库分区服务器数目设定为2。
db2set DB2_NUM_FAILOVER_NODES=1
下面通过一个例子来说明整个安装配置过程。
如图所示,在我们的例子中,有两台机器,机器名为macha 和 machb,共同连接一个磁盘柜,磁盘柜中一共有三块硬盘,一块作为Quorum盘,两块在操作系统中分别配置为逻辑驱动器M:和驱动器P:。
一、在两台机器中配置MSCS,群集名为CLUSTER。确保群集安装完全成功。配置完成后在群集管理器中我们可以看到如图一所示的资源:
图一、DB2实例升迁前的MSCS资源
其中包括磁盘Disk M:、Disk P:、群集IP地址和群集名称。在网络中我们可以看到有两个网络我们分别命名为100M和1000M。
二、在本地硬盘上安装DB2 EEE,确保在两台机器上安装的路径完全一致。先在LEFT机器上作为实例拥有者安装DB2 EEE,让安装程序创建实例DB2TST。然后在RIGHT机器上安装DB2 EEE,加入到实例DB2TST中。安装完成后在DB2命令窗口运行db2sampl测试安装是否成功。然后删除sample数据库。
三、迁移DB2TST实例,使用db2stop命令停止DB2TST实例。根据我们的配置写成如下配置文件DB2MSCS.CFG:
DB2_INSTANCE=DB2TST
CLUSTER_NAME=CLUSTER
DB2_LOGON_USERNAME=MJLAB\db2admin
DB2_LOGON_PASSWORD=db2admin
GROUP_NAME=DB2 GROUP 0
DB2_NODE=0
IP_NAME=mscs0
IP_ADDRESS=192.168.34.12
IP_SUBNET=255.255.255.0
IP_NETWORK=100M
IP_NAME=ether0
IP_ADDRESS=10.1.1.12
IP_SUBNET=255.255.255.0
IP_NETWORK=1000M
NETNAME_NAME=mynet0
NETNAME_VALUE=mynet0
NETNAME_DEPENDENCY=ether0
DISK_NAME=Disk M:
TARGET_DRVMAP_DISK=Disk M:
GROUP_NAME=DB2 GROUP 1
DB2_NODE=1
IP_NAME=mscs1
IP_ADDRESS=192.168.34.13
IP_SUBNET=255.255.255.0
IP_NETWORK=100M
IP_NAME=ether1
IP_ADDRESS=10.1.1.13
IP_SUBNET=255.255.255.0
IP_NETWORK=1000M
NETNAME_NAME=mynet1
NETNAME_VALUE=mynet1
NETNAME_DEPENDENCY=ether1
DISK_NAME=Disk P:
TARGET_DRVMAP_DISK=Disk P:
然后在命令窗口如下命令:
C:¥>db2mscs –f: db2mscs.cfg
命令成功完成后,我们就将DB2TST实例成功迁移为群集实例,我们可以在群集管理器中看到如图二所示资源:
图二、DB2实例升迁后的MSCS资源
在组中我们看到有DB2 Group 0和DB2 Group 1, 它们的资源如图三、图四所示,正是我们在DB2MSCS.CFG配置文件中定义的资源。
图三、DB2 Group 0的资源
图四、DB2 Group 1的资源
这时在命令窗口中运行“db2set”、“db2ilist”、“db2nlist /s”命令可以看到输出如图五所示:
四、接下来为每一个DB2资源组设置首选拥有者,在DB2资源组的属性页中设置首选所有者。为DB2 Group 0设置为“LEFT”、“RIGHT”,为DB2 Group 1设置为“RIGHT”、“LEFT”。
DB2_FALLBACK为ON。注:只有在DB2_FALLBACK设置为ON时,才能在群集管理器中使用“移动组”在节点机器中移动资源组。
址进行内部通信。
C:¥>db2nchg /n:0 /g:10.1.1.12
C:¥>db2nchg /n:1 /g:10.1.1.13
这两个IP地址都是我们在MSCS中配置的用于内部通信使用的IP地址资源。
C:¥>db2 create db sample on m:
如果命令执行成功,那么说明我们成功配置了群集的DB2TST实例。
图五、命令输出