IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

使用WebSphere中间件构建数据库环境

2007年07月20日
developerWorks 中国/Li-Fang Lee
利用 IBM® DB2® 高可用性灾难恢复 (HADR) 和自动客户端重新路由功能,可以将其客户端应用程序从发生故障的数据库服务器中恢复过来,并且可以最大限度地减少中断时间。本文向您介绍使用 IBM WebSphere® Application Server Network Deployment V6.1 作为客户端应用程序并利用 DB2 HADR 和自动客户端重新路由功能构建高可用性数据库环境的步骤。

  引言

  IBM DB2 Universal Database (UDB) Enterprise Server Edition V8.2 引入了一种新的称为高可用性灾难恢复 (HADR) 的高可用性功能,它通过将数据从主要数据库复制到备用数据库为其客户端应用程序提供了一种故障转移功能。这使得客户端应用程序可以方便地从部分或完全灾难中恢复过来。另外,DB2 HADR 还与自动客户端路由 (ACR) 功能相关联,使灾难恢复行为对其客户端应用程序实际上是透明的。

  例如,IBM WebSphere Application Server Network Deployment (ND) V6.1 使用 DB2 来存储其应用程序的持久性数据。WebSphere Application Server 应用程序只需要与主要数据库进行连接即可。为了在备用服务器上保持数据库的一个同步副本,系统会一致地将 DB2 HADR 日志文件从主要服务器发送到备用服务器来保持二者的同步。当主要服务器脱机时(计划内或计划外停机),备用服务器将联机代替其工作。在启用自动客户端重新路由功能时,DB2 重新路由逻辑将检查是否可以找到备用服务器。如果可以找到,重新路由功能将首先重新尝试连接失败的主要服务器,如果该操作失败,重新路由将尝试连接替代的备用服务器。这时,WebSphere Application Server 就会与备用服务器重新建立连接,并将回滚事务,然后在备用服务器上重新发布。整个 DB2 HADR 故障转移过程对 WebSphere Application Server ND 应用程序是透明的。

  DB2 HADR 和自动客户端重新路由功能使得其客户端应用程序可以从发生故障的数据库服务器中恢复过来,最大限度地减少了中断时间。本文介绍使用 WebSphere Application Server ND V6.1 作为客户端应用程序并利用 DB2 HADR 和自动客户端重新路由功能构建高可用性数据库环境的步骤。

  DB2 HADR 准备工作

  DB2 HADR 要求

  在将 DB2 和 HADR 用作 WebSphere Application Server 应用程序数据存储库之前,您需要了解对主要 DB2 服务器和备用 DB2 服务器的下列基本要求:

  •   需要完全相同的操作系统和 DB2 版本。
  •   必须使用相同的容器文件系统和安装路径,例如 /home/db2inst1/sqllib。
  •   如果通过引用方式使用 HADR 功能,则需要指定 HADR 的通信端口:
    •   对于 UNIX® 或 Linux®:/etc/services
    •   对于 Windows®:c:\windows\system32\drivers\etc\services
  •   主要服务器和客户端应用程序应能够通过 TCP/IP 连接到备用服务器计算机。

  DB2 HADR 设置

  现在我们将了解,在设置 DB2 HADR 主要服务器和备用服务器时都涉及哪些内容:

  •   在主要计算机和备用计算机上安装 DB2 UDB Enterprise Server Edition。在两台计算机上都启动 DB2 服务器,如果尚未运行,则在主要计算机上创建数据库和所需的表。为了便于说明,我们将使用“Sample”作为数据库名称。(有关详细的安装信息,请参见 DB2 信息中心。)
  •   接下来,为主要计算机和备用计算机上的每个数据库确定 TCP/IP 连接通信端口(按照常规的客户端/服务器数据库连接)。端口名是用户定义的,端口号可以是任意数字,只要没有冲突就行。不要求主要服务器和备用服务器上的端口相同;不过,如果保持这两台计算机上的端口相同,则配置起来将会非常方便。对于 Sample 数据库,我们在主要服务器和备用服务器上使用了两个端口(51012 和 51013):

  清单 1. 用于“Sample”数据库的两个 HADR 端口

  >more /etc/services
  # HADR ports assigned by user
  ha_sample 51012/tcp
  ha_sample_int 51013/tcp

  您需要编辑 /etc/services 文件 (UNIX/Linux) 或 c:\windows\system32\drivers\etc\services (Windows) 来指定端口。(注意,只有管理员帐户才能够编辑这些文件。)

为主要计算机上的每个数据库配置 HADR 变量。(此处显示的步骤仅适用于主要计算机。)必须对每个数据库重复此过程。在设置这些变量时,请验证 hard_local_host 和 hard_remote_host 变量是否引用了正确的计算机。而且,hadr_local_svc 和 hadr_remote_svc 变量必须与上述 /etc/services 文件中定义的名称相匹配。下面我们以“Sample”数据库为例进行说明:

  清单 2. Sample 数据库的 HADR 变量

  >db2 update db cfg for Sample using hadr_local_host
  >db2 update db cfg for Sample using hadr_remote_host
  >db2 update db cfg for Sample using hadr_local_svc ha_sample
  >db2 update db cfg for Sample using hadr_remote_svc ha_sample_int
  >db2 update db cfg for Sample using hadr_remote_inst
  >db2 update db cfg for Sample using hadr_timeout 120
  >db2 update db cfg for Sample using hadr_syncmode nearsync
  >db2 update db cfg for Sample using logretain on
  >db2 update db cfg for Sample using LOGINDEXBUILD on
  >db2 update alternate server for database Sample using hostname
  port 60000

  上例中,NEARSYNC 被选为同步模式。此模式虽然比 SYNC 模式提供较少的事务丢失保护,但比 SYNC 模式的事务响应时间要短一些。注意,清单 2 中的最后命令可以为 DB2 HADR 启用自动客户端重新路由功能,并且端口 60000 是备用计算机上的 DB2 实例端口号。

发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

以不变应万变 网络虚拟化应对园区网新挑战
以不变应万变 网络虚拟化应对园区网新挑战Forrester Research的分析师Robert Whiteley认为: “十年以来,虚拟化技术与网络...
OpenShift加入更多新元素 友好面对开发者
OpenShift加入更多新元素 友好面对开发者通过网络进行程序提供的服务称之为SaaS(Software as a Service),而将服务器平台...

本类热点