/ 中存储网

Veritas Cluster Server for DB2 双机-入门(一)

2013-09-22 09:32:00 来源:中存储网

双机热备这一概念有两种不太相同的意义:从广义上来说也称为双机互备,指的是对于重要的服务,使用两台服务器协同工作,共同执行同一个服务。当一台服务器出现故障时,可以由另一台服务器暂时相应原有的两个机器的所有服务,等待故障机的恢复和重新加入集群,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。这种集群一般被称为高性能集群(High performance cluster. HPC)。

从狭义上讲,双机热备特指基于active/standby方式的服务器热备,这也是双机热备最常用的含义,服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备,但在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会被集群软件激活,保证应用在短时间内完全恢复正常使用。这种集群一般被称为高可用集群(High Availability cluster. HAC)。

双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。在广义的双机互备中,N台服务器同时工作,硬件资源的利用率最高;在狭义的双机热备中,需要m台机器(m不小于1)作为后备服务器,那么至多只能用(N-m)台机器工作,资源的利用率低于双机互备。(一般软件公司都会将多机同时工作作为一个特殊的功能来卖,价格比两台机器的总和可能还要高,所有一般中小企业用户都会选择后一种热备方式,牺牲一些可用性)。

在IBM的DB2数据库产品中,包括了上述的两种热备方式:均衡多处理模式(Symmetric Multiprocessing, SMP)和大数据并行处理模式(Massively Parallel Processing, MPP)。 SMP是指一台数据库工作,另一台数据库作为后备,当工作的数据库发生故障的时候,集群会将数据库服务所需的所有服务转移到后备的服务器上面。MPP是指多台数据库同时工作,一旦某一台数据库服务器发生故障,其他的服务器就会接管其服务,直到故障机重新加入到集群中。

作为一款专业的集群管理软件,Veritas Cluster Server(VCS)能够针对不同的情况进行不同的管理。由于DB2的双机热备(狭义)模式配置比较简单,也相对容易理解。所以本文讲述如何利用VCS去管理DB2双机热备的高可用集群。而在下一讲中会讲述如何利用VCS去配置和管理双机互备的高性能集群。

在本文中,做了如下假设:用户希望将system1和system2配置成双机环境,IP地址分别是(192.168.0.1, 192.168.0.2)操作系统是Solaris,利用Symantec的Storage foundation作为文件系统管理工具,DB2的程序在两个系统中分别安装,而数据库文件存放在共享磁盘上面,共享磁盘组是DB2DG,卷名DB2Vol,文件系统挂载在/home/db2下面,访问DB2的虚拟主机名为db2server,IP是192.168.0.3。

1. 配置

a) 创建数据文件使用的共享存储(在system1上面执行下列5个命令):

i. # vxdg init DB2DG c0t0d0; 创建磁盘组DB2DG,使用c0t0d0这个硬盘;

ii. # vxassist -g DB2DG make DB2Vol 5g; 在磁盘组上创建5G大小的卷DB2Vol;

iii. # mkfs -F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol; 创建文件系统;

iv. # mkdir /home/db2 ; 创建mount点,共享磁盘将mount到这里;

v. # mount -F vxfs /dev/vx/dsk/DB2DG/DB2Vol /home/db2; 将共享盘mount到本机;

b) 使两个系统可以通过RSH方式互相访问,在system1上面做如下操作:

i. echo “system2  192.168.0.2” >> /etc/hosts; 将对方加入的自己的主机列表;

ii. echo “system2 db2inst1” >> $HOME/.rhosts; 使得对方主机可以通过RSH以db2inst1的身份登陆本机;

iii. echo “db2server 192.168.0.3” >> /etc/hosts; 将虚拟主机加入的自己的主机列表;

c) 在system2上面做类型的操作,将system2改为system1,IP也作相应的改变,虚拟主机不变。

d) 在两台机器上面分别执行下列命令,创建相同的用户组。

i. # groupadd -g 999 db2iadm1; 创建DB2实例管理组;

ii. # groupadd -g 998 db2fadm1; 创建DB2 fencing管理组;

iii. # groupadd -g 997 db2asgrp; 创建DB2数据库管理组;

iv. # useradd -g db2iadm1 -u 1004 -d /home/db2 -m db2inst1; 创建DB2实例管理用户;

v. # useradd -g db2fadm1 -u 1003 -d /home/ db2fenc1 -m db2fenc1; 创建DB2 fencing 管理用户;

vi. # useradd -g db2asgrp -u 1002 -d /home/ db2as -m db2as; 创建DB2数据库管理员帐户;

注意:上述组或者用户的ID可以是任意的尚未被使用的数字,但是一定要保证两台机器上面的用户ID是一致的,否则数据库切换的操作会失败;数据库实例管理员的帐户存放在共享盘上面。

e) 在两台机器上面分别安装DB2数据库程序:

注意:在oracle中,可以将oracle数据库程序装在共享盘上,则只需要安装一份即可;

另外DB2的安装有两个命令:db2setup和install。db2setup是图形化工具,会将数据库程序和一个实例文件同时创建,而我们在双机上只需分别安装数据库程序而维护同一份实例文件,所有推荐使用install安装DB2,这样只会安装程序在系统上,实例文件稍后自己安装即可。

f) 在两台机器安装DB2的序列号:

i. # /opt/IBM/db2/V8.1/adm/db2licm -a db2ese.lic

g) 检查两台机器下面的/etc/service文件,确保都有如下的条目并且两边的端口是相同的:

DB2_db2inst1 60000/tcp #

DB2_db2inst1_1 60001/tcp #

DB2_db2inst1_2 60002/tcp #

DB2_db2inst1_END 60003/tcp #

db2c_db2inst1 50000/tcp #

h) 在system1上面创建实例(存放在共享盘)

i. cd /usr/opt/db2_08_01/instance

ii. ./db2icrt -u db2fenc1 db2inst1

i) 修改DB2节点文件/home/db2/sqllib/db2nodes.cfg

i. 将其内容改为:

0 db2server 0

1 db2server 1 或者

0 system1 0

1 system2 1

注意:第一种方式配置的是以虚拟主机的方式进行热备,第二种使用真是主机的方式进行切换的。如果是多机环境,第一种方式方便管理,第二种方式更显得直观。