江莉 (lilyj@cn.ibm.com), 软件工程师, IBM
2008 年 8 月 13 日 DB2 Everyplace 在集群环境下运行能够提升整体工作效率,增加用户吞吐量,提高服务的稳定性。本文首先介绍 DB2 Everyplace 在集群环境中的组织结构,然后描述如何在集群环境中来安装、配置以及使用 DB2 Everyplace,并且使用测试数据来说明集群环境对系统性能的影响,最后提出了对现有集群环境进行进一步扩展的可能性和方法。
DB2 Everyplace 在集群环境下运行能够提升整体工作效率,增加用户吞吐量,提高服务的稳定性。本文首先介绍 DB2 Everyplace 在集群环境中的组织结构,然后描述如何在集群环境中来安装、配置以及使用 DB2 Everyplace,并且使用测试数据来说明集群环境对系统性能的影响,最后提出了对现有集群环境进行进一步扩展的可能性和方法。
引言
DB2® Everyplace®是 IBM On Demand Business 解决方案的组成部分,它用于在移动设备与企业数据库服务器之间使数据同步。随着移动设备日益广泛的应用,企业对于同步服务器同时服务更多移动设备的要求越来越高,单一服务器由于机器性能的限制,难以满足日益壮大的客户群的性能需求。使用 DB2 Everyplace 集群环境,通过集群服务来提升整体工作任务的分配效率,一个集群相当于多个独立的应用程序服务器的集合,它可以保持工作负载的均衡性和高效性,提高系统吞吐量。
DB2 Everyplace 集群结构
图 1. DB2 Everyplace 集群结构
在非集群 DB2 Everyplace 环境中,客户端的请求被统一送往单一的 Websphere 服务器,通过该服务器和后台数据库的连接通信,将后台数据传递给客户端,来达到数据同步的目的。在集群环境中,客户的请求和数据传递就不再由单一固定的 Websphere 服务器进行处理,具体的执行流程如图 1 所示。
-
首先,客户端的同步请求被传递给 HTTP Web Server。
-
HTTP Web Server 收到这个请求以后,服务器上的应用程序服务器插件将这个请求分派给可用的 Websphere 服务器。
-
选中的 Websphere 服务器根据具体请求,通过同步服务器从源数据库或者镜像数据库中读取数据,并将数据传递给 HTTP Web Server。
-
HTTP Web Server 将所得数据传递给客户端,完成此次请求。
-
在整个过程中,Webshpere 部署管理器可通过 Network Deployment 来对集群成员进行管理,比如添加和删除集群成员,对现有集群成员进行启动和停止等等。
DB2 Everyplace 集群环境的安装和配置
本节以两个集群成员为例,演示如何在 Windows 操作系统上搭建 DB2 Everyplace 环境。
环境构成
1. 一台安装有部署管理器的机器,命名为 db2eClusterND,其上安装:
-
DB2 UDB Enterprise Edition V9
-
DB2 Everyplace V9.1
-
Websphere Application Server V6.0 ND,并且创建 Network Deployment profile,默认为 Dmg01
-
HTTP Web Server,创建 plugin,并生成 webserver1 服务
2. 两台集群成员所在机器,分别命名为 CNode1 和 CNode2。其上安装:
-
DB2 客户端
-
DB2 Everyplace V9.1
-
Websphere Application Server V6.0 base,并且创建 default profile
3. 一台 DB2 数据服务器,在其上安装 DB2 UDB Enterprise Edition V9,创建源数据库和镜像数据库。
在这里,db2eClusterND,CNode1 和 CNode2 上都需要安装相同版本的 DB2 Everyplace,Websphere Application Server 以及 HTTP Web Server。
配置步骤
1. 首先对部属管理器所在机器进行 DB2 Everyplace 集群配置。打开 DB2 Everyplace 配置向导,选择配置选项,在配置类型选择的时候,需要选择 Clustered Configuration 方式,具体如图 2 所示。
图 2. DB2 Everyplace 配置(配置类型选择)
2. 下一步是选择数据库配置类型。在部署管理器所在机器上,需要创建 DB2 Everyplace 的管理数据库,所以,在数据库配置的页面中,选择创建数据库的选项,如图 3 所示。
图 3. DB2 Everyplace 配置(数据库配置)
3. 部署管理器所在机器上的 DB2 Everyplace 配制成功后,在集群节点所在机器上继续 DB2 Everyplace 的集群配置。和部署管理器所在机器不同的是,在集群成员所在机器上不需要创建管理数据库,在图 3 所示的对话框中选择 No,并在接下来的页面中输入部署管理器所在机器上创建的管理数据库信息。
4. 以上步骤完成后,在部署管理器所在机器上,转入 <was_root>/bin 目录,运行下面的命令启动 Websphere 部署管理器:
startServer.bat server1 –username <admin_user_id> -password <admin_password>
|
如果部署管理器设置了管理用户和密码,需要将用户和密码作为参数传入。部署管理器启动后,可以从 IE 中察看http://<deployment_manager_host>:9060/ibm/console地址,输入管理用户名和密码以后,可以看到 Websphere 的管理控制台。
5. 在 Cnode1 机器上,打开命令控制窗口,转到 <was_root>/bin 目录下,执行以下命令将 Cnode1 加入部署管理器中:
addNode.bat <deployment_manager_host> <deployment_manager_port>
-username <admin_user_id> -password <admin_password>
|
其中:
- <deployment_manager_host> 是部署管理器所在机器的主机名;
- <deployment_manager_port> 是部署管理器 SOAP 节点的连接地址,默认值为 8879;
如果 Websphere 管理器设置了管理用户名和密码,那么需要将用户名和密码作为 username 和 password 这两个参数进行输入。
需要注意的是,集群成员所在机器和部署管理器所在机器的时间需要保持一致,时差不能超过五分钟,否则添加节点会失败。
添加完 CNode1 节点后,用同样的方法添加 CNode2 节点。添加成功后,在 Websphere 管理器中点击 System administration->Nodes,可以看到如图 4 的状态。
图 4. 节点状态
6. 转到 <wasroot>/bin 目录下,使用下面的命令配置 HTTP Web Server:
<wasroot>/../Plugins/bin/configurewebserver1.bat
|
配置完成后,启动 apache 程序,这时察看 Websphere 管理控制台,点击 Servers->Web servers,可以看到如图 5 的状态。
图 5. HTTP Web Server 运行状态
7. 首先确认 HTTP Web Server,Deployment Manager 及其管理的节点都已启动。在 CNode1 机器上,转到 <DSYPATH>\config\work\was 目录下,执行下面的命令来创建第一个应用服务器:
<WAS_HOME>\bin\wsadmin.bat -profileName profile_name -f dsyInstallDB2eWAS6.jacl
DSYINSTDIR DSYSQLIBINSTDIR WAS_virtual_host WAS_node_name WAS_cell_name
IP_address server_name application_name context_root WebServer_name [user] [group]
|
各个参数的具体含义如下:
- profile_name:部署管理器的 profile 名称,默认情况下是 Dmgr01;
- DSYINSTDIR:DB2 Everyplace 实例的安装路径;
- DSYSQLBINSTDIR: DB2 实例的安装路径;
- WAS_virtual_host:部署管理器的虚拟主机名,默认情况下是 default_host;
- WAS_node_name:CNode1 在部署管理器上的显示的节点名称,此处为 CNODE1Node01;
- WAS_cell_name:CNode1 在部署管理器上的显示的单元名称,此处为 cndnodeCell01
- IP_addree:CNode1 机器的 IP 地址
- Server_name:该应用服务器在部署管理器中显示的名称,比如 ClusterNode1
- Application_name:该应用在部署管理器中显示的名称,比如 DB2Everyplace9.1;
- Context_root: DB2 Everyplace 的 context root,此处设置为 db2e;
- WebSever_name: HTTP Web Server 的名称,此处为 webserver1;
- 在 Windows 系统上,使用默认设置的具体实例为:
C:\Progra~1\IBM\DB2Everyplace91\config\work\was>C:\Progra~1\IBM\WebSphere\AppServer
\bin\wsadmin.bat -profileName Dmgr01 -f dsyInstallDB2eWAS6.jacl c:\Progra~1\IBM\
DB2Everyplace91 c:\Progra~1\IBM\SQLLIB default_host CNODE1Node01
cndnodeCell01 9.186.66.167 DB2eCluster1 DB2Everyplace9.1.1 db2e webserver1
|
8. 成功创建后,打开 Websphere 管理控制台,点击 Servers->Clusters。在 Server Cluster 页面点击 New 按钮来创建集群,出现的对话框如图 6 所示。
图 6. 创建新集群
在这里,设置新集群的名称,比如 DB2eCluster,并且将在第五步成功创建的 DB2eCluster1 加入这个集群中。
9. 点击下一步,如图 7 所示,可以在成员中看到第 6 步所加入的 DB2eCluster1 成员。进一步添加 CNode2,将此集群成员命名为 DB2eCluster2,点击 Apply 按钮。第二个节点成员就成功加入了 DB2eCluster 的集群环境。成功以后的状态如图 8 所示。
图 7. 添加集群成员
图 8. 添加集群成员后的状态
10. 在集群成员添加成功后,点击下一步,出现如图 9 所示的对话框,显示了对集群配置的概括信息,检查无误后,点击 Finish。并且保存修改,和服务器完成同步操作。到此为止,集群的配置就完成了。
图 9. 集群配置概括信息
11. 在 Websphere 管理控制台中,回到 Server Cluster 页面,可以看到刚才创建的 DB2eCluster 集群已经建立起来了。选择该集群,点击 Start 按钮,一段时间后,可以看到该集群显示为启动状态。
图 10. 集群启动状态
点击 Servers->Cluster topology,可以查看集群的拓扑结构,如图 11 所示。
图 11. 集群拓扑结构
打开 IE,输入http://<deployment_host>:80/db2e/db2erdb链接,可以看到图 12 所示的状态,表示 DB2 Everyplace 集群服务已经启动了。在单一服务器的环境下,DB2 Everyplace 的端口默认为 8080,在集群环境下,其默认端口为 80。
图 12. 启动状态
DB2 Everyplace 集群环境的使用
为了使得集群环境的配置生效,在创建完 subscription 后,需要进行如下操作:
-
JDBC Subscription 和 Upload Subscription
使用集群成员机器上的 DB2 Client 对数据库服务器上的源数据库和镜像数据库进行 catalog。
-
File Subscription
创建好 file subscription 后,将需要同步的文件拷贝到所有集群成员机器上的相同位置。
这样,在多用户同时进行同步操作时,可以在所有集群成员的同步服务器日志中看到同步信息,表明所有节点都在分担工作负载。
DB2 Everyplace 集群环境对性能的影响
DB2 Everyplace 的集群环境,通过对 Websphere 服务器的扩展,使得同步服务器能够在同一时间接受更多的用户请求,实际测试表明,在并发用户数量大的情况下,相对于单一服务器,两个集群节点的集群环境所能支持的用户数是单一服务器环境支持用户数的将近一倍。
DB2 Everyplace 集群环境的拓展
通过对 Websphere 服务器的扩展,DB2 Everyplace 可以在同一时间接受更多的用户请求。但是,如果同步的数量量巨大,对于单一的信息数据库和镜像数据库都是很大的挑战。如果这里出现瓶颈,可以通过对信息数据库以及镜像数据库搭建 DB2 Cluster 环境来进行优化。
DB2 集群环境的搭建,可以参考相关文档,这里不再赘述。
结束语
DB2 Everyplace 是一个被设计为能够容纳大量用户和数据量的系统,通过使用集群环境,DB2 Everyplace 可以满足越来越庞大的用户数和数据量的需要。本文的主要目的是阐述 DB2 Everyplace 集群环境的安装和配置,来更好的帮助用户了解和使用 DB2 Everyplace 集群环境。
参考资料
关于作者  | |  | 江莉,DB2 Everyplace 产品测试工程师。从事 DB2 Everyplace 测试两年多,具有丰富的产品经验。 |
对本文的评价
|