当前位置:首页 » 操作系统 » 数据库的集群配置

数据库的集群配置

发布时间: 2022-05-14 09:42:14

‘壹’ 数据库集群是什么

集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
高可用集群( High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)

1、高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”, “双机互备”, “双机”。高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。

2、负载均衡集群(Load Balance Cluster)

负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。

负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。

3、科学计算集群(High Performance Computing Cluster)

高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。

高性能计算分类:

3.1、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME – Search for Extraterrestrial Intelligence at Home )就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。

3.2、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。

下面说说这几种集群的应用场景:

高可用集群这里不多作说明。

想Dubbo是比较偏向于负载均衡集群,用过的猿友应该知道(不知道的可以自行了解一下),Dubbo同一个服务是可以有多个提供者的,当一个消费者过来,它要消费那个提供者,这里是有负载均衡机制在里面的。

搜索引擎Elasticsearch比较偏向于科学计算集群的分布计算。

而到这里,可能不少猿友都知道,集群的一些术语:集群容错、负载均衡。

我们以Dubbo为例:
集群容错(http://bbo.io/User+Guide-zh.htm#UserGuide-zh-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99)

Dubbo提供了这些容错策略:
集群容错模式:
可以自行扩展集群容错策略,参见:集群扩展
Failover Cluster
失败自动切换,当出现失败,重试其它服务器。(缺省)
通常用于读操作,但重试会带来更长延迟。
可通过retries="2"来设置重试次数(不含第一次)。

Failfast Cluster
快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,比如新增记录。

Failsafe Cluster
失败安全,出现异常时,直接忽略。
通常用于写入审计日志等操作。

Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。
通常用于消息通知操作。

Forking Cluster
并行调用多个服务器,只要一个成功即返回。
通常用于实时性要求较高的读操作,但需要浪费更多服务资源。

可通过forks="2"来设置最大并行数。

Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)
通常用于通知所有提供者更新缓存或日志等本地资源信息。

负载均衡(http://bbo.io/User+Guide-zh.htm#UserGuide-zh-%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1)

Dubbo提供了这些负载均衡策略:

Random LoadBalance

随机,按权重设置随机概率。

在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。

RoundRobin LoadBalance
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。

LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。

ConsistentHash LoadBalance
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
算法参见:http://en.wikipedia.org/wiki/Consistent_hashing。

缺省只对第一个参数Hash,如果要修改,请配置<bbo:parameter key="hash.arguments" value="0,1" />

缺省用160份虚拟节点,如果要修改,请配置<bbo:parameter key="hash.nodes" value="320" />

‘贰’ 数据库集群

拿oracle为例:
集群是多台服务器共同提供服务,数据库集群的意思就是多台运行数据库服务的服务器组成一个集群。
oracle的集群,自己的是rac,最少需要2台机器,先装cluster或者grid,再在集群上安装数据库,就可以了。
要是db2的话,还得用ibm的操作系统,安装一个集群软件
hacmp等等的。
反正
核心要理解的就是
,做集群,要有集群系统来支撑。例如
,文件同步访问等等的。
rac,hacmp等等的,都属于集群系统!

‘叁’ 如何在Windows系统中配置Mysql群集

MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。

管理服务器(MGM节点)负责管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每个节点从管理服务器检索配置数据。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster 日志。

目前能够运行 MySQL Cluster 的操作系统有 Linux、Mac OS X 和 Solaris,最新的版本已经支持 Windows 操作系统。

MySQL 群集的数据节点之间的通信是不加密的,并且需要高速的带宽,所以建议把群集建立在一个高速局域网内,不建议跨网段、跨公网的部署这种系统体系。

MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。

管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。
数据节点:主要是对数据的存储,不提供其他的服务。
SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。

而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。

一、软件下载机器操作环境

配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。本文以 Windows 平台下的 MySQL 群集版本 MySQL Cluster 7.1.3 为例(截至2010年6月初的最高版本),这是 MySQL Server 5.1 系列版本之一,添加了群集的功能。下载地址为:http://dev.mysql.com/downloads/cluster,选择 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,这是一个 for Windows 32位版本的、免安装的二进制版本。

根据自己的操作系统的位数,也可以选择 64 位版本的。还有一个 27.2M 的 Windows(x86, 32-bit) 版本,下载下来需要自己编译,有经验的高级用户可以选用。

本实验在 2 台安装 Windows Server 2003(sp2) 的机器上进行。节点分配及 IP 配置如下:

第一台机器,IP 为 10.0.0.201,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。
第二台机器,IP 为 10.0.0.202,作为SQL节点2(SQL2),数据节点2(NDBD2)。

管理节点最好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。

二,配置管理节点:

在第一台机器上,建文件夹 D:\mysql-cluster,在其下建立文件 config.ini,内容如下:

[NDBD DEFAULT]
NoOfReplicas=1

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

# Managment Server
[NDB_MGMD]
hostname=10.0.0.201

# Storage Engines
[NDBD]
hostname=10.0.0.201
datadir= D:\data

[NDBD]
hostname=10.0.0.202
datadir= D:\data

# SQL Engines
[MYSQLD]
hostname=10.0.0.201

[MYSQLD]
hostname=10.0.0.202

Cluster 管理节点的默认端口是1186,数据节点的默认端口是 2202。从 MySQL 5.0.3开始,该限制已被放宽,Cluster 能够根据空闲的端口自动地为数据节点分配端口。如果你的版本低于5.0.22,请注意这个细节。

Cluster 管理节点作为一个服务端(通过运行 db_mgmd.exe 程序读取本配置文件来启动),通过本机上的客户端 ndb_mgm.exe 来连接和操作。

三、配置 MySQL 数据库服务器:

在2台机器上,分别依次操作。

解压 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件到 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 文件夹下,把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\bin 加到 Windows 的系统 path 中。

打开DOS命令行窗口(配置完系统path后,在再次打开新的命令行窗口),执行以下语句,让 MySQL 作为 Windows 服务运行:

mysqld.exe -install mysql

再在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。

把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 下的某个备用的配置文件(例如my-small.ini)复制为 my.ini 文件。

建立 D:\tmp 文件夹。

四、配置SQL节点和数据节点:

在2台机器上,分别依次操作。

建立文件夹 D:\data。

编辑 NySQL 配置文件 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\my.ini,在 [mysqld] 节末尾加语句:

#SQL群集节点
ndbcluster
ndb-connectstring=10.0.0.201

有了 ndbcluster 语句,mysql 服务将作为群集的 SQL 节点启动。mysqld.exe 命令带参数 –ndbcluster 运行是一样的效果。
mysql 服务连接到数据节点的 2202 默认端口,或自动分配的别的可用端口。
(问题:SQL节点如何获得数据节点的IP地址?是否通过连接管理节点,取得所有数据节点的IP地址的列表?)
这里的连接字符串的值在 MySQL 服务启动时使用,用于连接到管理节点。

在末尾加语句:

#NDB集群节点
[mysql_cluster]
ndb-connectstring=10.0.0.201

注:好像以下形式也可:
[ndbd]
ndb-connectstring=10.0.0.201

这里的连接字符串的值在数据节点启动时使用,用于连接到管理节点。

五,启动群集各服务器

启动顺序依次是:管理节点、数据节点、SQL节点。

1,启动管理节点

在第一台服务器的DOS窗口,运行命令:

C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster

注:如果不带 –configdir=d:\mysql-cluster 参数,将默认为 C:\mysql\mysql-cluster 文件夹。

屏幕显示:

C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster
2010-06-10 01:16:57 [MgmtSrvr] INFO — NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3
2010-06-10 01:16:57 [MgmtSrvr] INFO — Reading cluster configuration from ‘d:\mysql-cluster.conf\config.ini'
2010-06-10 01:16:57 [MgmtSrvr] INFO — Got initial configuration from ‘d:\mysql-cluster.conf\config.ini', will try to set it when all ndb_mgmd(s) started
2010-06-10 01:16:57 [MgmtSrvr] INFO — Mgmt server state: nodeid 1 reserved for ip 10.0.0.201, m_reserved_nodes 1.
2010-06-10 01:16:57 [MgmtSrvr] INFO — Id: 1, Command port: *:1186
==INITIAL==
2010-06-10 01:16:57 [MgmtSrvr] INFO — Starting initial configuration change
2010-06-10 01:16:57 [MgmtSrvr] INFO — Configuration 1 commited
2010-06-10 01:16:57 [MgmtSrvr] INFO — Config change completed! New generation: 1
==CONFIRMED==

2,启动数据节点

分别在2台服务器的DOS窗口运行命令。

第一次,或初始化群集节点时,运行命令:

ndbd.exe –initial

初始化之后,只运行 ndbd.exe 即可。若带参数 –initial 运行,将使正常运行的群集系统中,数据节点的数据全部丢失。

数据节点依赖管理节点服务器,进行数据的自动复制和同步,使各个数据节点的数据保持一致,并在某个数据节点意外关闭又恢复后,进行数据的恢复重建。

3,启动SQL节点

有了 ndbcluster 语句,启动 mysql 服务,就启动了SQL节点。应在前2种节点启动后,分别在2台服务器上进行。

六、群集管理

在所有的数据节点和SQL节点未启动之前,运行群集管理节点服务的客户端 ndb_mgm.exe,只能获得以下信息:

C:\>ndb_mgm.exe
— NDB Cluster — Management Client –
ndb_mgm> show
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 10.0.0.201)
id=3 (not connected, accepting connect from 10.0.0.202)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 10.0.0.201)
id=5 (not connected, accepting connect from 10.0.0.202)

ndb_mgm>

说明数据节点、SQL节点均未连接到管理节点服务。

在所有的数据节点和SQL节点正确启动之后,将获得以下信息:

ndb_mgm> show
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
id=3 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

[mysqld(API)] 2 node(s)
id=4 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)
id=5 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3)

ndb_mgm>

关闭群集的DOS命令:

ndb_mgm -e shutdown

或在 ndb_mgm 环境下执行 shutdown 命令。

以上命令或关闭管理节点服务和所有的数据节点。随意、强行关闭群集系统(关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。

关闭SQL节点的 mysqld 服务:

C:\>net stop mysql,或:

C:\>mysqladmin -u root shutdown

七、测试

正常运行的 MySQL 群集系统,通过SQL节点可以对数据节点进行数据库操作,各数据节点可以自动进行数据同步。某一个数据节点关闭后,不影响SQL节点的使用。某些数据节点出错后,可以进行恢复。需要注意的是,SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。如果不选择“ndbcluster”引擎,建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。

另外,每个 NDB 表必须有一个主键。如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。该隐含的键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。

‘肆’ 如何配置MySQL集群在一台服务器


-+-+-+-+-+-+-+-+-+-+-+-
-+-+mysql的主从配置+-+-
-+-+-+-+-+-+-+-+-+-+-+-

#############################################################################
常用命令

1.安装一个mysqld服务
mysqldinstall
2.开启mysql服务关闭mysql服务
netstartmysqlnetstopmysql
2.开启一个mysql的3307端口

命令行进入解压目录in目录下

解压目录in>mysql-uroot-p-P3307-h127.0.0.1

-u用户名
-p密码
-P端口
-h网址

#启动从库
Startslave

#停止从库
Stopslave#############################################################################
开始

用一台电脑测试

先在本电脑上安装一个mysql(集成的也行)

解压文件

然后解压另一个mysql到电脑目录

》》》》》1.
在解压目录创建一个mysql.ini

把一下文档写进去配置一个端口号为3307


#mysqld
[mysqld]
port=3307
basedir=D:mysqlsever#D:mysqlsever改成你解压目录
datadir=D:mysqlseverdata#D:mysqlsever改成你解压目录


安装一个mysqld服务mysqldinstall

开启mysql服务netstartmysql
不能正常启动请查看配置

》》》》2.
#主库3306
在命令行或者
grant权限on数据库对象to用户

,RELOAD,SUPERON*.*
TOmysql_backup1@'*'
IDENTIFIEDBY'123456'withgrantoption;

flushprivileges;》》》3.
在主库运行SHOWMASTERSTATUS//运行后查看File和Postion

如Filemysql-bin.000002Postion120

在从库运行

CHANGEMASTERTOmaster_host='127.0.0.1',
master_user='mysql_backup',
master_password='123456',
master_log_file='mysql-bin.000001',#看上面的File从库对照主库写
master_log_pos=4791;#看上面的Postion从库对照主库写


如果报错就停止就重新运行
#启动从库
Startslave

#停止从库
Stopslave

在从库运行Showslavestatus

Slave_IO_Running
Slave_SQL_Running
两个字段全部是是Yes基本上就成功了


测试

在主库上建立一个表在从库上刷新
############################################################################

‘伍’ 如何搭建window server 2008数据库集群

Windowsserver2003中提供了网络负载均衡(NLB)功能。NLB的操作模式有单播和多播两种,它们之间有什么区别呢?首先,给大家介绍一下NLB的工作原理:当客户向NLB群集(NLB的虚拟IP地址)发起请求时,其实客户的请求数据包是发送到所有的NLB节点,然后运行在NLB节点上的NLB服务根据同样的NLB算法来确定是否应该由自己进行处理,如果不是则丢弃客户的请求数据包,如果是则进行处理。如何将请求数据包发送到所有的NLB节点是NLB运行的关键之处,单播和多播这两种操作模式就是用于实现这一需求。NLB不支持单个NLB群集中的单播/多播的混合环境;在每一个NLB群集中,该群集中的所有节点都必须配置为多播或单播,否则,此NLB群集将无法正常工作。

‘陆’ 简述mysql该怎样进行集群部署

mysql集群部署操作如下:
1、在MySQL集群中.当table引擎为NDBCLUSTER时才做集群,其他非NDBCLUSTER表和一般MySQL数据库表一样,不会共享数据。NDBCLUSTER表数据存储在Data node服务器内存中,Data Node可以为1台或多台服务器,它们之间存放共享数据。Data Node服务器可以分组数据。
例如:2,3,4,5为四台Data Node服务器ID. 2,3为组0; 4,5为组1; 2,3维持数据相同,4,5维持数据相同。 组0和组1维持数据不同。
2、sql node服务器中,非NDBCLUSTER数据存在本身数据库中,table引擎为NDBCLUSTER时,数据存储在Data Node中。当查询NDBCLUSTER表时,它会从Data node集群中提起数据.
3、Manager server管理SQl node和Data node状态。

‘柒’ mysql分布式集群的搭建方案

不是很理解,比如说你3台搭建分布式,你通过什么方式区分库表?假设每台服务器上部署一个mysql实例,那你怎么把数据分布到3个mysql里面?是每个mysql里面存不同的表么?如果这样,就还可以接受。这块问题不是很大。


第二个问题,你的HA主备,意思是说两个分布式互为主备?那怎么备份,怎么切换?


其实按照你想要达到的目标。应该是每两台互做主备,形成3对主备库,然后这3对再组建一个分布式集群。


其实和你要做的可能差不多,不过逻辑上还是有差异的。HA你准备怎么做?keepalived?


另外,咨询一下,你的分布式是通过什么来实现,不同业务访问不同的数据库,每个库存不同的表?还是相同的表分布在不同数据库?


看你服务器的配置如何,其实我觉得一般来说拿3台来做备机有点浪费,如果配置允许,可以考虑做成6套mysql主备的分布式集群。


通过交叉互备实现硬件的最大利用。下图是我们之前用4台服务器做的一套集群方案。



如果还有其他问题可以和我联系。

‘捌’ 如何正确配置基于 oracle 数据库的 wps v6.12 集群应用系统

本文描述了远程消息传递和远程支持集群环境的搭建配置过程。这个集群环境由三个集群组成,具体的拓扑结构是:
应用程序集群,不但为应用程序提供工作负载管理以及URL和EJB 请求故障转移功能,而且还部署了BPC和HTM 容器,提供了对长业务流程和人工业务流程的应用程序的支持。
远程消息集群,运行WPS默认提供的四个总线(SCA应用,SCA系统,BPC和CEI)提供独立的高效的消息引擎。
远程支持集群,部署通用事件体系结构和业务规则管理等其他应用程序,提供异步的事件查询。
这三个集群配置在两台机器的不同的节点上,即三个集群的成员水平部署在两台机器上。在一个集群中的两个成员是该集群中完全相同的副本。消息传递引擎、业务支持和业务流程应用程序分别位于不同的集群上,所以可以根据实际业务负载和硬件环境,灵活调配所需的资源。这种模式,也称为黄金拓扑,是 WPS 中最复杂的拓扑结构,是大多数企业集成应用用户的首选,具有如下优点:

可靠性。将所有的应用、消息引擎和通用事件部署在三个集群上面,方便管理和使用。
可扩展性。因为系统中的消息引擎处于的关键地位,可能存在之后的访问需求增长等扩展需要,单独创建消息引擎集群可以很方便实行这一点。
对于系统运行时可能遇到的处理量非常大和可伸缩性等问题,通过将通用事件基础架构(CEI)和应用程序分离,可以确保这两个组件不会争用相同的资源(内存和CPU)。此拓扑还能帮助创建集中的事件服务器以处理来自多个源的事件。
所有的应用服务器由 Deployment Manager 统一管理,降低了系统管理的复杂度。
安装前的注意事项
在集群环境的安装过程中,需要同步两台主机的信息,确保它们之间能够良好的通信。主要同步的信息包括两台主机的系统时间、时区设置,并确保两台机器的时间差在5分钟之内,如果时间差超过5分钟,联合操作将失败。
更新两台主机的hosts 文件(默认目录为/etc/hosts ),确保每台机器均包含对方的host name 和对应的IP 地址,以便主机间的相互访问。
在使用向导安装和配置概要时,请按照从上到下的顺序输入配置参数,对于WPS V6.12 ,输入顺序的改变有可能导致未知错误。
集群环境的搭建步骤
Informix 数据库规划
WPS的集群环境需要后台数据库的支持。为了提高集群在实际运行中的效率,建议根据功能的不同,创建不同的数据库。数据库的详细信息如下表所示:

数据库名称 说明
WPRCSDB 公共数据库
EVENT 通用事件体系结构数据库
CEIDB 通用事件体系结构消息传递引擎数据库
SCASYSDB 服务组件系统消息传递引擎数据库
SCAAPPDB 服务组件应用程序消息传递引擎数据库
BPCDB 业务流程编排器数据库
BPCME 业务流程编排器消息传递引擎数据库
OBSVRDB 业务流程编排器事件收集器数据库

注意:本文选择英文语言的数据库安装。如果要安装中文语言的数据库,请参考本文的:在数据源定制属性中添加数据库语言。

安装WPS的步骤
首先使用图形化安装向导在两台主机上分别安装WPS v6.1.2 产品,。在安装产品和搭建集群过程中,步骤如下:
1.选择“Typical installation”安装类型。典型安装也称为完全安装,提供了环境的初始化定义,包括通过概要管理工具创建特定了类型的概要文件。
图2 选择安装类型

2.在选择概要类型界面提供了四种可选择的概要类型(图3)。我们选择“None”,即不创建任何类型的概要,以便在以后的步骤中手动创建概要。
使用Profile Management Tool(PMT) 创建Deployment Manager 概要

Deployment Manager(DM)是管理控制节点,它对集群环境下的所有节点提供了图形化的管理功能。一个集群环境中一般只需要一个管理概要。下面我们将向您讲述创建DM 概要的主要步骤:
1. 在<WPS_HOME>/bin/ProfileManagement/ 下执行命令pmt.sh ,弹出安装界面。在各种类型的环境选项中选择 WPS,进入下一步。
2. 在概要类型中提供了三种典型的概要类型,选择 Deployment manager profile,搭建DM 概要。
3. 在创建方式界面中,默认选项为创建典型的概要文件,在此需要选择 Advanced profile creation,以便我们在后续步骤中通过管理控制台手动进行集群配置,以满足特定环境的需求。
4. 填写要创建的Deployment manager profile的名称和安装目录。
5. 填写概要的Node Name和Cell name ,指定 Host Name。
6. 在管理安全选项中,如果选中 Enable administrative security 选项,请记住 WPS v 6.1.2
用户名称和密码。这里建议取消 Enable administrative security 选项,不设置安全管理。在后续步骤中可以根据需要手动启动安全管理选项,设定用户名密码。
7. 配置服务器的端口。
8. 进行数据库的配置。首先从 Choose a database proct 选择 Informix Dynamic Server 作为公共数据库类型,并选择 Use an existing database。另外,需要指定 Database name,本例中使用先前创建的数据库 WPRCSDB。不选择“Deplay execution of database scripts for new or existing database”选项,因为概要文件的安装过程中会自动创建数据库 WPRCSDB 中的表。注意:如果创建的数据库为中文字符集,则需要选择 “Deplay execution of database scripts for new or existing database“选项,在概要创建完成后,手动执行创建数据库表(请参考本节内容中的步骤 11)。

9. 在数据库配置的第2步,需要对 Common DB 参数进行配置。如果是远程数据库,则在填写 Database server host name时,要确保远程数据库的host name 已经添加到本地主机(参考本文的第三部分内容“安装前的注意事项”);也可以直接在该项填写远程数据库的IP 地址。换句话说,在点击下一步之前,请确认数据库的参数信息,否则将在点击下一步后,会收到不能连接数据库的错误提示。
10. 完成以上步骤后,系统会显示概要的创建信息。如果发现参数需要调整可以后退向导重新进行输入。DM 创建成功后,可取消选择 Launch the First steps console和Create another profile,点击完成。至此,Deployment Manager 创建完成。如果创建DM 失败,请查看 <WPS_HOME>/logs/manageprofile 目录下的日志文件进行分析。

11. 另外,如果需要手工创建Common DB(WPRCSDB) 相关的表,可执行DM 概要创建生成的数据库脚本,默认目录为:
<WPS_HOME>/profiles/Dmgr01/dbscripts/CommonDB/Informix/WPRCSDB 。
请将这些脚本复制到 Informix 数据库所在机器,并设置如下环境变量:
INFORMIXSERVER=<IFX_INSTANCENAME>
INFORMIXDIR=<IFX_INSTALL_HOME>
之后执行如下命令:
dbaccess – createDatabase_CommonDB.sql
如果WPRCSDB已经创建,可以忽略。
dbaccess WPRCSDB createTable_AppScheler.sql
dbaccess WPRCSDB createTable_CommonDB.sql
dbaccess WPRCSDB createTable_customization.sql
dbaccess WPRCSDB createTable_lockmanager.sql
dbaccess WPRCSDB createTable_mediation.sql
dbaccess WPRCSDB createTable_Recovery.sql
dbaccess WPRCSDB createTable_RelationshipMetadataTable.sql
dbaccess WPRCSDB createTable_EsbLoggerMediation.sql
dbaccess WPRCSDB insertTable_CommonDB.sql
使用PMT 创建自定义概要
接下来,我们手动进行自定义概要的创建。这样,能够在创建概要过程中,根据客户特定的使用需求和环境特点,选择适合于自己的数据库,并进行端口、用户名、密码等信息的设置。
在创建自定义概要(Custom profile)之前启动 DeploymentManager(DM)概要,在目录<WPS_HOME>/profiles/Dmgr01/bin 下,运行startManager.sh 命令。节点概要的创建与 DM 概要的创建类似,在目录<WPS_HOME>/bin/ProfileManagment 下执行命令pmt.sh,随即获得安装界面,主要步骤如下。
1.选择 Create 即创建一个新的概要文件。
2.在环境选项中,选择 WPS,进入下一步。
3.在创建概要的类型中,选择 Custom Profile,创建一个自定义节点概要。
4.在安装类型选项中,选择 Advanced profile creation,以便在后续步骤中通过手动配置相关参数,定制特定的节点概要。

5.输入节点所对应的DM 概要的主机名称和端口,默认端口为8879。如果在创建DM时启动了管理安全性,则需要输入用户名和密码。Federate this node later 选项的选择取决于是否要在创建节点的同时将其联合到指定的DM 概要中。这里,我们不选择该选项,节点会自动与 DM 概要联合,需要注意的是,要确保 DM 概要此时为启动状态。
若选择创建节点之后手动联合到 DM 概要中,则需要在创建节点完成后使用<WPS_HOME>/Custom01/bin 目录下的addNode.sh 命令进行节点与 DM的手动联合,具体命令如下:
addNode.sh dmgr_hostname<–username username –password password>
6.输入DM的信息后,进入端口设置页面,可以自行修改端口号。

7.在数据库选项中选择 Informix Dynamic Server 作为数据库类型,并为Informix JDBC driver 指定正确的路径。该路径指向节点所在的本地机器上 ifxjdbc.jar和ifxjdbcx.jar的存储位置。
8.浏览汇总信息无误后,点击 Create 开始创建自定义概要。

9.创建成功后,重复以上步骤为另一台机器创建自定义概要。
命令行方式创建Deployment Manager 实例和托管节点实例
创建DM profile 和Custom profile时,除了使用pmt.sh 命令外,还可以选择命令行方式,即执行<WPS_HOME> /bin/manageprofiles.sh 命令创建概要。创建Deployment manager 概要的命令和脚本如下:
./manageprofiles.sh –create -dbServerPort 8002
–templatePath <WPS_HOME>/profileTemplates/dmgr.wbiserver
–profileName Dmgr01
-dbDelayConfig true –dbCommonForME false
–dbType INFORMIX –dbHostName aix235.cn.ibm.com
–dbInstance IFXTest –hostName aix235.cn.ibm.com
–enableAdminSecurity false –dbName wprcsdb
–dbPassword informix –ndtopology false
-cellName aix235Cell01 –nodeName aix235CellManager01
–dbJDBCClasspath /opt/jdbc/lib –dbUserId Informix
–dbCreateNew false –profilePath <WPS_HOME>/profiles/Dmgr01
创建自定义节点的命令和脚本如下:
./manageprofiles.sh –create –dmgrHost 9.186.111.234
–profileName Custom01 –templatePath <WPS_HOME>/profileTemplates/managed.wbiserver
–dbType INFORMIX –ndtopology false
–cellName aix234Node01Cell –hostName aix234.cn.ibm.com
–nodeName aix234Node01 –dbJDBCClasspath /home/jdbc/lib
–dmgrPort 8879 –profilePath <WPS_HOME>/profiles/Custom01

‘玖’ 数据库集群 应该

集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
高可用集群( High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)

1、高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”, “双机互备”, “双机”。高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。

2、负载均衡集群(Load Balance Cluster)

负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。

负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。

3、科学计算集群(High Performance Computing Cluster)

高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。

高性能计算分类:

3.1、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME – Search for Extraterrestrial Intelligence at Home )就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。

3.2、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。

下面说说这几种集群的应用场景:

高可用集群这里不多作说明。

想Dubbo是比较偏向于负载均衡集群,用过的猿友应该知道(不知道的可以自行了解一下),Dubbo同一个服务是可以有多个提供者的,当一个消费者过来,它要消费那个提供者,这里是有负载均衡机制在里面的。

搜索引擎Elasticsearch比较偏向于科学计算集群的分布计算。

而到这里,可能不少猿友都知道,集群的一些术语:集群容错、负载均衡。

我们以Dubbo为例:
集群容错(http://bbo.io/User+Guide-zh.htm#UserGuide-zh-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99)

Dubbo提供了这些容错策略:
集群容错模式:
可以自行扩展集群容错策略,参见:集群扩展
Failover Cluster
失败自动切换,当出现失败,重试其它服务器。(缺省)
通常用于读操作,但重试会带来更长延迟。
可通过retries="2"来设置重试次数(不含第一次)。

Failfast Cluster
快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,比如新增记录。

Failsafe Cluster
失败安全,出现异常时,直接忽略。
通常用于写入审计日志等操作。

Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。
通常用于消息通知操作。

Forking Cluster
并行调用多个服务器,只要一个成功即返回。
通常用于实时性要求较高的读操作,但需要浪费更多服务资源。

可通过forks="2"来设置最大并行数。

Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)
通常用于通知所有提供者更新缓存或日志等本地资源信息。

负载均衡(http://bbo.io/User+Guide-zh.htm#UserGuide-zh-%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1)

Dubbo提供了这些负载均衡策略:

Random LoadBalance

随机,按权重设置随机概率。

在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。

RoundRobin LoadBalance
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。

LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。

ConsistentHash LoadBalance
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
算法参见:http://en.wikipedia.org/wiki/Consistent_hashing。

缺省只对第一个参数Hash,如果要修改,请配置<bbo:parameter key="hash.arguments" value="0,1" />

缺省用160份虚拟节点,如果要修改,请配置<bbo:parameter key="hash.nodes" value="320" />

热点内容
手机银行的密码怎么改密码 发布:2024-10-10 13:22:37 浏览:887
使命召唤生化武器怎么配置 发布:2024-10-10 13:13:15 浏览:490
磁盘阵列怎么配置管理口 发布:2024-10-10 13:10:05 浏览:187
如何撤销自己的配置 发布:2024-10-10 12:41:47 浏览:687
win7无法复制文件夹 发布:2024-10-10 12:40:11 浏览:147
文章存储结构 发布:2024-10-10 12:40:11 浏览:881
添加多个FTP网站的方法有哪些 发布:2024-10-10 12:03:03 浏览:842
表格怎么调用网页数据库数据库数据 发布:2024-10-10 11:37:33 浏览:657
海力压缩机 发布:2024-10-10 11:32:26 浏览:526
洗过的海带存储方法 发布:2024-10-10 11:19:00 浏览:242