DB2 pureScale 软件安装配置及常见问题解决3

如上问题是由于在目标服务器上已经安装了 pureScale 软件,为避免版本差异导致问题,我们需要手工卸载目标服务器已经安装的 pureScale 软件,执行如下命令进行清理:

#/opt/IBM/db2/V9.8/install/db2_deinstall – a


 

 

问题 5:在安装程序最后配置实例的阶段,提示 GPFS 文件系统无法创建

该问题通常由于手工强行卸载 GPFS 文件系统,该 GPFS 文件系统原先使用的共享磁盘没有正常删除,导致磁盘上的 GPFS 文件系统标记未清除。我们需要对 hdisk6~hdisk13 用 dd 命令进行清理,如对 hdisk6 的清理命令为:

#dd if=/dev/zero of=/dev/hdisk6 bs=1m count=25


 

 

创建数据库

在创建 DB2 pureScale 数据库之前,为性能考虑,我们需要为数据和日志创建独立的 GPFS 文件系统,使用独立的物理磁盘。root 用户登录,执行如下命令:

#/opt/IBM/db2/V9.8/bin/db2cluster -cfs -create -filesystem db2data

-disk “/dev/hdisk8,/dev/hdisk9,/dev/hdisk10,/dev/hdisk11,

/dev/hdisk12″ -mount /db2data

 

#/opt/IBM/db2/V9.8/bin/db2cluster -cfs -create -filesystem db2log

-disk “/dev/hdisk13” -mount /db2log


 

 

现在我们就可以创建数据库了,实例用户 db2sdin1 登录系统,执行如下命令:

$db2 “create database HLJRCCB on /db2data dbpath on /db2log

using codeset gbk territory cn”


 

 



DB2 pureScale 典型应用模式配置和优化

Websphere Application Server plus DB2 pureScale

Websphere 应用服务器结合后台 DB2 数据库的应用模式在客户实际生产中广泛使用,在此,我们就 DB2 pureScale 客户端自动路由(Automatic Client Reroute, ACR)、工作负载均衡(Workload Balance, WLB)如何配置和使用进行详细说明。

WLB 和 ACR 支持情况


图 9. DB2 pureScale WLB 和 ACR 支持矩阵


Setting

Default Behaviour

Non-Java applications

Java applications

Connection-level WLB

Enabled

N/A(不支持)

Transaction-level WLB

Disabled

Disabled

ACR post-connection

Enabled

Enabled

ACR pre-connection

Disabled

Disabled

Client affinities

Disabled

Disabled

 

DB2 pureScale 的工作负载均衡机制分为连接级别(Connection-level WLB)和交易级别(Transaction-level WLB)。连接级别的负载均衡发生在客户端建立数据库连接之时,以后不再调整;交易级别的负载均衡发生在交易边界,根据数据库成员服务器的忙闲程度动态进行调整。

从上表看出,对于 Java 应用程序,交易级别的工作负载均衡缺省是关闭的,尽管可能有多台 pureScale 成员服务器也不可能能做到成员服务器间负载均衡;连接前自动客户端路由(ACR pre-connection)也是关闭的,导致未曾连接过 pureScale 成员服务器的客户端,在其连接属性中指定 IP 的成员服务器宕机时,不会自动路由到其他存活成员服务器。

WLB 和 ACR 配置方法

首先,为了让 WLB 和 ACR 能够正常工作,我们需要在 WAS 服务器的 /etc/hosts 文件中添加 pureScale 成员服务器的 IP 地址和主机名:

172.16.24.122 p5502

172.16.24.123 p5503


 

 

其次,我们需要使用 DB2 V9.7.2提供的 JDBC 驱动程序,之前版本或 pureScale 服务器中自带的 JDBC 驱动程序目前不支持 WLB;

最后,我们需要在 WAS 应用服务器里进行相关配置如下:


表 3. DB2 pureScale WLB 和 ACR 在 WAS 中的配置

 

DataSource

DriverManager

Conn-Level WLB

不支持

不支持

Trx-Level WLB

增加 DataSource 的属性:
enableSysplexWLB=true

请参考 WAS 例子 A1

增加 Connection 的属性:
enableSysplexWLB=true

可以使用属性或在连接串里配置,请参考下一单元格

ACR
Pre-connection

方法一:增加 DataSource 的属性

clientRerouteAlternateServerName=172.16.24.123
clientRerouteAlternatePortNumber=50001

请参考 WAS 例子 A2

方法二:生成 jndi,binding 到 DB2,参见 A.3
修改数据源参数 (Data sources > HLJRCCB
> WebSphere Application Server data source properties)
Client reroute server list JNDI name(clientRerouteServerListJNDIName) 指向 A3 所设置的 JNDI

方法一:使用属性
Properties props = new Properties();
props.put(“user”, “db2sdin1”);
props.put(“password”, “db2”);
props.put(“enableSysplexWLB”, “true”);
props.put(“clientRerouteAlternateServerName”, “172.16.24.123”);
props.put(“clientRerouteAlternatePortNumber “, “50001”);
Connection c = DriverManager.getConnection(“jdbc:db2://172.16.24.122:50001/mydb”, props );
方法二:在连接串里增加属性
conn = java.sql.DriverManager
.getConnection(“jdbc:db2://172.16.24.122:50001/HLJRCCB:user=db2sdin1;password=db2;
enableSysplexWLB=true;clientRerouteAlternatePortNumber=50001;
clientRerouteAlternateServerName=172.16.24.123;”);

注意:该方式不支持多于 2 个节点

ACR
Post-connection

默认 enable,无参数配置。
发生 ACR 时系统会报错误信息,错误信息参考 A4

默认 enable,无参数配置。
发生 ACR 时系统会报错误信息,错误信息参考 A4

 

A1. 在 WAS 中配置 Trx-Level WLB

在”Data sources > DBNAME > Customer properties“增加 enableSysplexWLB 属性:

图 10. WAS 配置交易级别工作负载均衡

图 10. WAS 配置交易级别工作负载均衡

A2. 在 WAS 中配置 Pre-Conn ACR

修改数据源参数 (Data sources > DBNAME > WebSphere Application Server data source properties)

图 11. WAS 配置连接前客户端自动路由

A3. DB2ClientRerouteServerList Binding

编写一个 jsp 程序,包含如下代码,执行后将绑定相关信息:

清单 1. WAS 中注册 DB2 purescale 自动客户端路由绑定

            

InitialContext registry = new InitialContext();

// Create a DB2ClientRerouteServerList object

DB2ClientRerouteServerList address =

    newDB2ClientRerouteServerList();

 

// Set the port number and server name for the primary server

address.setPrimaryPortNumber(50001);

address.setPrimaryServerName(“172.16.24.122”);

 

// Set the port number and server name for the alternate server

 

int[] port = {50001};

String[] server = {“172.16.24.123”};

address.setAlternatePortNumber(port);

address.setAlternateServerName(server);

 

registry.rebind(“cell/persistent/serverList”, address);


 

 

A4. Post-Conn ACR message:

com.ibm.db2.jcc.am.ClientRerouteException: [jcc][t4][2027][11212][4.9.66]

A connection failed but has been re-established. The host name or IP address

is “p5503” and the service name or port number is 50,001.

Special registers may or may not be re-attempted (Reason code = 1).

ERRORCODE=-4498, SQLSTATE=08506


 

 

多线程 DB2 CLI 程序 plus pureScale

多线程 DB2 CLI 程序访问 pureScale 数据库,如果要实现 ACR 和 WLB 功能,

首先,我们需要在 DB2 CLI 客户端的 /etc/hosts 中添加如下条目:

172.16.24.122 p5502

172.16.24.123 p5503


 

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注