Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11588195
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-07-28 14:00:42


介绍DB2的高级需求-大规模并行处理(Massively Parallel Processing, MPP)-环境下,用户如何利用VCS配置双机互备环境。    需要强调的是,本文是接续上文Veritas Cluster Server for DB2双机-入门,继续进行双机介绍,因此在看本文之前,最好先看看本文上篇Veritas Cluster Server for DB2双机-入门。
    此外,Veritas Storage Foundation系列文章还包括:
    用Storage Foundation管好存储系统-安装
    用Storage Foundation管好存储系统-入门
    用Storage Foundation管好存储系统-进阶
    用Storage Foundation管好存储系统-高级
    用Storage Foundation管好存储系统-文件系统
MPP简介
    首先介绍一下DB2的大规模并行处理(MPP)的含义。MPP其实就是多台计算机协同工作,共同完成同一个任务,目的就是为了能够使用一些比较廉价的服务器一起工作,提供给用户单机无法完成的服务。而双机互备就是指当这些机器中的某一天出现故障的时候,其他的服务器可以接管运行在其上的服务请求,保证服务的高可用性。
    大规模并行处理有两种方式:无共享并行方式和共享磁盘并行方式。
    无共享并行方式是指集群中的数据库系统各自使用自己的数据资源,将协调程序发给自己的数据请求在自己的数据库上面查询,再将结果返回,由协调程序来将各个数据库发过来的数据组合成大的数据集并且发送给用户。这种工作模式的优点是易于部署,结构简单清晰;缺点是缺乏高可用性,节点中任何一个节点的损坏都会导致其数据资源不可获得,破坏了数据请求的完整性。
无共享并行体系结构
    共享磁盘共享方式是指多个数据库同时工作,但是他们所读写的资源都是在一个共享的磁盘库中。他们之间的访问冲突是通过锁机制来解决的。它的优点是高可用性,任何一个节点的故障都不会对数据访问造成影响,每一个节点都可以访问全部的数据资源;这种缺点当然也是有缺点的:随着服务器数量的增加,锁的数量以及数据库访问失败的频率也会指数级的增加,会成为数据库访问的瓶颈。然而,在目前的实际应用中,一般集群数量不会太多,所有这个因素可以忽略不记,而其带来的高可用性是大多用户选择它的主要原因。

Symantec SFCFS简介
SFCFS的全称是Storage Foundation Cluster File System;它是symantec旗下SF产品线的一员,其具体的安装配置过程稍后会有仔细的讲解。现在就让用户大概了解一下:SFCFS其实和SF是非常相似的,都是用来管理磁盘和文件系统的。对于磁盘组,卷和文件系统的概念和SF是完全一样的。它和SF唯一的不同是它支持多个节点同时访问一个文件系统上面的数据,由SFCFS来进行文件锁管理,而SF中对于文件系统的访问是具有独占性的。SFCFS允许多个节点同时访问的特点就是针对数据库的并行操作的需求而来的,所以它非常适合进行数据库的并行处理模式的管理。
DB2的配置
    在DB2的配置中,我们先做好如下假设:由system1和system2来组成集群,其IP分别是192.168.0.1 192.168.02,磁盘组名为DB2DG,卷为DB2Vol,文件系统将挂载在/home/db2目录下。
    注意:在配置过程中将不再说明DB2的基础配置,配置的详细信息请看Veritas Cluster Server for DB2双机-入门。
    1. 安装SFCFS的程序在system1和system2上;
    2. 创建SFCFS需要使用的共享磁盘和共享文件系统(原理和细节稍后会有专题,这里只是配置):
    a) 在两台机器上面运行下面命令:
    i. # vxdctl -c mode
    得到的结果可能是下面两个中的任意一个:
    cluster active - MASTER
    cluster active – SLAVE
    注意,下述的命令只能在返回是master的那台机器执行,因为它是整个cluster中的主节点。
    b) 创建共享磁盘组
    # vxdg -s init DB2DB c0t0d0; -s就是共享(share)的意思;
    c) 将新建的磁盘组以共享模式加入到system1和system2:
    # vxdg deport DB2DG
    # vxdg -s import DB2DG
    注意:如果在这里没有用-s参数,那么磁盘组将被第一个执行导入的系统使用,其他系统的导入操作将会失败。必须以共享模式导入才能被多个系统使用。
    d) 创建卷:
    # vxassist -g DB2DG make DB2Vol 5g
    e) 创建文件系统:
    # mkfs -F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol
    f) 将新建的文件系统以共享模式加载到两台机器上面:
    # mkdir /home/db2
    # mount -F vxfs -o cluster /dev/vx/dsk/DB2DG/DB2Vol /home/db2
    3. 在两台机器创建相同的数据库管理组和管理员,并且加上DB2的注册码(配置方法见入门篇):
    4. 安装DB2的程序到两台机器上,将数据文件指定到共享盘所在的目录/home/db2下面;
    5. 修改db2nodes.cfg文件;
    这里我想详细的讲述一下这个文件的格式,因为这个文件的配置正确与否之间关系到了配置能否成功,而对于这个文件的内容,即使很多DB2的老用户也不是很清楚:
    这个文件的一个常见配置如下所示:
    0 sysA 0
    1 sysA 1
    2 sysB 0
    3 sysC 0
    4 sysD 0
    这个文件的每一行是一个节点的信息,其中第一列数字是唯一编号,表示后面的系统分区是一个集群的成员;第二列是主机的名称,一般就是系统的名称,表示这个成员是运行在哪台主机上的;第三列是端口偏移量,如果某个系统上面部署了多个分区提供数据库服务的话,DB2将通过不同的端口服务来区别不同的分区。
    所以,根据上述解释,将该文件修改如下:
    0 system1 0
    1 system2 1
    6. 确认数据库安装配置正常:
    在每一台机器执行下列命令:
    # su - db2inst1
    $ db2start
    $ db2stop
    如果配置正确,那么下列命令在各个系统都能工作正常。
    这样,数据库的配置就已经完成了。
   
阅读(449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~