e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> DB2教程 >> 创建高可用性的 DB2 服务(一) >> 教程正文
 
教程搜索
 
 
相关教程
  • 数据挖掘器: 警告 — 及时采取行动
  • UNIX、Linux 和 Windows 的生动简介
  • “总览图”: IBM DB2 通用数据库和信息
  • DB2 大事记
  • 数据管理部门副总裁兼 CTO:Don Hader
  • IBM 联邦数据库技术
  • 唐纳德.海德勒(Donald J. Haderle)
  • 数据库未来展望
  • 哪一个分布式 DB2 UDB V8 版本适合您?
  • 从数据管理到信息集成: 自然的演变
  • 联邦 - 数据库互操作性(第 1 部分)
  • 成功是必然的(中)
  • 成功是必然的(上)
  • 成功是必然的(下)
  • DB2 信息集成: 总览图
  • IBM 杰出工程师兼信息集成主管 Nelson
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
创建高可用性的 DB2 服务(一)
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

孙沁

中化电子信息技术公司,IBM DM 解决方案技术支持工程师,

2002 年 11 月

本文以实例的方式描述了DB2 在 Windows 上使用 MSCS 服务来创建高可用性的服务。文中配有丰富的插图和比较详尽的代码,并且该实例基于的环境就是一个实际的生产环境。文中还讲述了在配置 MSCS 服务中会遇到的问题,以及解决的办法。例如:共享磁盘阵列的分区问题、DB2 高可用性实例服务创建的问题,管理服务器的配置等等。

前言

该故事发生在不久以前,话说某天笔者接紧急任务,要去某省某市安装基于 Windows® 上的 DB2,开始觉得 Windows 上的东西,不就是 Next>Next>…..>Finish, 这次赚到了,可以免费旅游一番(该市也风景秀丽之所),不料其后发生的事情一波三折(放心啦,不会写游记。当然是安装过程中的一波三折),导致不仅旅游计划泡汤,人也瘦了一圈,为免各位同道不再身受其苦,特将本人之经验教训拿出来分享一下,各位大侠见笑了。

顺利的开始

一到场地,见到 N 台服务器正在呼呼地吹风呢,感到压力骤增,再看看操作系统,Windows® Advance Server,心下暗自欢喜( Windows® Advance Server 只允许一个集群中包含两台服务器,而 Windows® Datacenter Server 允许四台服务器在一个集群中),任务难度较低。

要在 Windows® 上实现 DB2 的群集服务,首先必须实现操作系统级别上的 HA(High Available),先给出一张现场配置示意图:

应该来说群集环境比单服务器环境中就多了一个磁盘阵列和心跳线,磁盘阵列的功能我想就不用讲了吧,不过在群集中磁盘阵列不仅仅是一个高可靠的磁盘组,同时它为存在其上的数据提供被接管的可能性,即磁盘阵列是独立存在的,不以服务器的资源存在为前提。心跳线的功能和它的名字非常相配,在群集服务中的心跳线是用于检测各个群集节点是否在工作的媒介,在群集中的各个节点通过心跳线网络按照一定的频率发包检测是否对方是否有响应。因此服务器上需要有两张网卡,一张连接到交换机提供外部访问,另一张用于心跳线,在服务器上把两个本地连接一个名称改为 Public,一个改为 Private,Public 连接用于和公用网络交互数据,Private 连接为心跳线所用,图中 Private 连接是采用网卡到网卡直接互联的方式。当然也可以使用从服务器到交换机再到服务器的做法。

Windows 上实现群集需要域的支持,现场的思路是为了便于管理将所有的服务器放在一个域中,便于进行管理和安全方面的设置,如果已经有域存在,那就只要将服务器加入域就可以了。

首先配置主机 A 为域控制器,配置其 Active Directory,将主机 B 配置为冗余控制器。(一般来说最好能够提供与数据库服务器独立的机器来做域控)。然后安装Windows群集服务,在控制面板中->安装和删除程序->安装和删除Windows组件->选择群集服务,后面的任务就是选择仲裁资源的磁盘,以及选择集群使用网络的选择,下图是群集配置的一些图形界面:

  • 选择仲裁资源使用的磁盘


  • 选择供外部客户机使用的网络,这里使用了 Public

  • 选择供心跳线使用的网络,这里选择了 Private

  • 设置访问群集的 IP 地址

在另一台服务器上也配置好群集服务将其加入到刚才建立好的群集之中。

配置完群集服务就可以使用 Windows 自带的群集管理器来对群集进行管理了。

添加域用户中添加 db2admin 用户,并将其加入到主机 B 的本地管理员组中。安装 DB2 V8 在两台服务器上,在选择域的时候要记得填上域的名称。总算可以开始配置群集了,心情非常愉快。

可怕的沉默

要配置 DB2 的群集服务,必须要了解一个工具那就是 DB2MSCS,这个工具为用户屏蔽了复杂的 DB2 群集资源配置。下面为大家介绍一下该工具的用法。

DB2MSCS 是用来将非高可用性 DB2 实例转变成高可用性 DB2 实例的工具,该工具可以为需要被转换的实例创建所有的 MSCS 组、资源以及资源的依赖关系。它还会将 Windows 注册表中的 DB2 实例信息拷贝到 MSCS 环境中,包括实例目录等。DB2MSCS 使用一个输入配置文件(DB2MSCS.CFG)来定义所有的资源及信息。

在 DB2 ESE 或者 EEE 版本中需要的条目如下:

  • DB2_INSTANCE:DB2 实例名称,如果未指定该项,DB2MSCS 会使用由环境变量 DB2INSTANCE 内容指定的缺省实例。
  • GROUP_NAME:MSCS 的组名,如果指定的组名不存在的话,会创建以该参数命名的组。除非又定义了其他组,所有在该条目后定义的资源将从属于该组。
  • IP_NAME:IP 地址资源的名称,这个参数的值可以是任意的,但是在整个 MSCS 资源中必须是唯一的。指定了该名称后,MSCS 会创建一个类型为 IP 地址的资源,并以该名称命名。
  • IP_ADDRESS:定义上面所述的 IP 地址资源的 IP 地址值,需要注意的是该 IP 地址是一个虚拟的漂移 IP 地址,该地址不能与现存的 IP 地址冲突,该地址也就是访问 DB2 实例时需要使用的地址,如果定义了 IP_NAME 参数,则必须设定该参数。
  • IP_SUBNET:定义上面所述的 IP 地址资源的子网掩码,如果定义了 IP_NAME 参数,则必须设定该参数。
  • IP_NETWORK:定义相对于上述 IP 地址的绑定的网络连接。
  • DISK_NAME:指定 DB2 实例需要使用的共享磁盘资源名称,该磁盘资源应该在群集资源中已经存在,当 DB2MSCS 实用程序对实例进行配置的时候会将指定的共享物理磁盘资源从原来的组中移动到 DB2 实例指定的组中。
  • INSTPROF_DISK:该参数为可选参数,指定 DB2 实例存放在那个磁盘上,如果不指定该参数,DB2 实例将存放在指定的第一个磁盘资源上。
  • INSTPROF_PATH:该参数为可选参数,指定 DB2 实例存放的目录。
  • DB2_LOGON_USERNAME:管理实例所用的域用户帐号。
  • DB2_LOGON_PASSWORD:管理实例所用的域用户账号的密码。
  • NETNAME_NAME :网络名称资源的名字,网络名称资源允许客户端使用机器名的方式来访问群集实例。
  • NETNAME_VALUE :定义上述网络名称资源的机器名。
  • NETNAME_DEPENDENCY :如果需要使用网络名称资源,必须已经存在 IP 地址资源,该选项就是用来指定和该网络名称资源对应的 IP 地址资源名称。
  • TARGET_DRVMAP_DISK:创建一个磁盘映射,因为在创建分区数据库的时候,要求创建数据库所在的磁盘资源必须对该实例的所有节点都可用。
  • DB2NODE:指定在分区实例中节点的名字。


下面是一个 DB2MSCS.CFG 文件的例子,该实例文件中使用的实例是一个含有两个 NODE 的实例。

# # Global section # DB2_INSTANCE = DB2MPP DB2_LOGON_USERNAME = db2nt DB2_LOGON_PASSWORD = db2nt CLUSTER_NAME = MSCS # # MSCS Group for Node 0 # GROUP_NAME = DB2 Node 0 DB2_NODE = 0 IP_NAME = IP Address for Node 0 IP_ADDRESS=9.26.118.251 IP_SUBNET=255.255.255.0 IP_NETWORK=Ethernet(2) NETNAME_NAME = Network Name for Node 0 NETNAME_VALUE = DB2SRV0 NETNAME_DEPENDENCY = IP Address for Node 0 DISK_NAME = Disk M: INSTPROF_DISK = Disk M: TARGET_DRVMAP_DISK = Disk M: # # MSCS Group for Node 1 # GROUP_NAME = DB2 Node 1 DB2_NODE = 1 IP_NAME = IP Address for Node 1 IP_ADDRESS=9.26.118.252 IP_SUBNET=255.255.255.0 IP_NETWORK=Ethernet(2) NETNAME_NAME = Network Name for Node 1 NETNAME_VALUE = DB2SRV1 NETNAME_DEPENDENCY = IP Address for Node 1 DISK_NAME = Disk O: TARGET_DRVMAP_DISK = Disk O:

客户要求在这两台机器上运行一个数据仓库的应用,于是我开始编辑我的 DB2MSCS.CFG 文件,在两台机器上使用一个应用,也就是说平时应用在主机上运行,而备份机处于等待状态,当主机失败后应用转移到备份机上工作,原来主机拥有的 DB2 资源由备份机接管(如下图)。现在我想转换的群集实例是由系统缺省创建的 DB2 实例,虽然用的是 DB2 V8 版本,虽然缺省的 DB2 实例也是一个 ESE 类型的实例,但是客户的数据量不是非常的大,所以只使用拥有一个分区数据库来支持(这小子是不是偷懒啊)。所以下面的配置文件会比上面的范例配置文件要简单。

配置文件如下:

DB2_INSTANCE=DB2 //指定需要转换的实例名称 DB2_LOGON_USERNAME=dbdomain/db2admin //指定登录实例的域用户账

1 2 下一页
  • 上一篇教程: 在 Linux 上模拟大规模并行数据库处理!
  • 下一篇教程: 超越 White Pages
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.