好心情说说吧,你身边的情绪管理专家!

好心情说说专题汇总 心情不好怎么办

励志的句子

在制定方案时,需要针对具体工作收集各种资料和数据,并收集相关的政策依据。当我们期望在项目中展现出色时,就需要花时间完善自己的方案。那么,怎样才能写出优秀的方案呢?为了解决这个问题,栏目小编特别搜罗了“高可用解决方案”等相关内容,希望对您有所帮助。欢迎收藏本网站,继续关注我们的更新!

高可用解决方案 篇1

1》浮动路由简介:

浮动静态路由是一种特殊的静态路由,通过配置一个比主路由的管理距离更大的静态路由,保证网络中主路由失效的情况下,提供备份路由。但在主路由存在的情况下它不会出现在路由表中。浮动静态路由主要用于拔号备份.

静态路由的用处是当以太链路优先选择,当以太链路出现故障的时候,选用串行链路,而在以太链路恢复后,再优先选以太链路。因此只要改变串行链路的管理距离。

2》试验拓扑图:

[R1-Serial0]ip add 192.168.10.1 24

[R1-Serial1]ip add 192.168.20.1 24

[R1-Ethernet0]ip add 192.168.1.254 24

[R1-Ethernet0]ospf enable area 0

[R1]ip route-static 192.168.2.0 24 192.168.20.2【静态路由】

[R2-Ethernet0]ip add 192.168.2.254 24

[R2-Serial0]ip add 192.168.10.2 24

[R2-Serial1]ip add 192.168.20.2 24

[R2-Ethernet0]ospf enable area 0【在接口上启用ospf】

[R2]ip route-static 192.168.1.0 24 192.168.20.1【配置静态路由】

[R2-Ethernet0]ip add 192.168.2.254 24

1》备份中心简介:

它使网络具备高可用性,具有备份功能。任何接口都可以作为备份接口,或者主接口。而且对一个主接口,可以为它提供多个备份接口。备份中心支持备份负载分担功能。当备份链中所有活动接口的流量达到设定的门限上限时,路由器启动一个优先级最高的可用备用接口,同主接口一起进行负载分担;当备份链中所有活动接口的流量小于设定的门限下限时,路由器关闭一个优先级别最低的备用接口。

[R1-Serial0]ip add 192.168.10.1 24【配置地址信息】

[R1-Serial1]ip add 192.168.20.1 24

[R1-Ethernet0]ip add 192.168.1.254 24

[R1]ip route-static 192.168.2.0 24 192.168.10.2 【配置静态ip地址】

[R1]ip route-static 192.168.2.0 24 192.168.20.2【配置静态ip地址】

[R1-Serial0]standby interface s1【声明s1为s0接口的备份接口】

[R1-Serial0]standby timer enable-delay 5【设置从主接口转到备份接口的确认时间为5秒钟】

[R1-Serial0]standby timer disable-delay 5【设置从备份接口转到主接口的确认时间为5秒钟】

[R2-Ethernet0]ip add 192.168.2.254 24

[R2-Serial0]ip add 192.168.10.2 24

[R2-Serial1]ip add 192.168.20.2 24

[R2]ip route-static 192.168.1.0 24 192.168.10.1

[R2]ip route-static 192.168.1.0 24 192.168.20.1

[R2-Serial0]standby interface s1【声明备用接口为s1】

[R2-Serial0]standby timer enable-delay 5【设置从主接口转到备份接口的确认时间为5秒钟】

[R2-Serial0]standby timer disable-delay 5【设置从备份接口转到主接口的确认时间为5秒钟】

为了增加带宽,可以将多个PPP 链路捆绑使用,称为MultiLink PPP,简称MP,

MP 会将报文分片(小于最小分片包长时不分片)后,从MP 链路下的多个PPP 通道发送到PPP 对端,对端将这些分片组装起来递给网络层。

[R1-Ethernet0]ip add 192.168.1.254 24【配置接口的IP地址信息】

[R1]int virtual-template 1【创建虚拟链路接口vir 1】

[R1-Virtual-Template1]ip add 192.168.100.1 24【为虚拟链路接口配置IP地址】

[R1-Virtual-Template1]int s0【进入接口S0】

[R1-Serial0]ppp mp int virtual-template 1【将s0捆绑到虚拟链路中】

[R1-Serial1]ppp mp int virtual-template 1【将s1捆绑到虚拟链路中】

[R1]ip route 192.168.2.0 24 192.168.100.2【配置静态路由】

[R2-Ethernet0]ip add 192.168.2.254 24【配置ip地址等相关信息】

[R2]int virtual-template 1【创建虚拟捆绑链路vir1】

[R2-Virtual-Template1]ip add 192.168.100.2 24

[R2-Virtual-Template1]int s0【进入接口S0】

[R2-Serial0]ppp mp int virtual-template 1【在该接口上启动虚链路捆绑】

[R2-Serial1]ppp mp int virtual-template 1

[R2-Serial1]ppp mp【在接口s1上启动虚链路捆绑】

[R2]ip route 192.168.1.0 24 192.168.100.1

本文出自 “学海无涯” 博客,请务必保留此出处zhangc.blog.5627676/985839

高可用解决方案 篇2

硬件环境: 两台HP Server rp5470小型机,7110磁盘阵列 软件环境: HP-UX B.11.11、MirrorDisk/UX B.11.11、MC / Service Guard A.11.14、Oracle 9i for HP-UX, 3.1准备系统 3.1.1编辑 安全 文件: [/@machine01]vi .rhosts文件 machine1 root machine2 roo

硬件环境:

软件环境:

HP-UX B.11.11、MirrorDisk/UX B.11.11、MC / Service Guard A.11.14、Oracle9i for HP-UX。

3.1.1编辑安全文件:

[/@machine01]#pvcreate -B /dev/rdsk/c2t2d0

[/@machine01]#vgextend /dev/vg00 /dev/dsk/c2t2d0

[/@machine01]#mkboot -l /dev/rdsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/secswap /dev/dsk/c2t2d0J458.CoM

[/@machine01]#lvextend -m 1 /dev/vg00/lvol4 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol5 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol6 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol7 /dev/dsk/c2t2d0

[/@machine01]#lvextend -m 1 /dev/vg00/lvol8 /dev/dsk/c2t2d0

[/@machine01]#/usr/sbin/lvlnboot -b /dev/vg00/lvol1

[/@machine01]#/usr/sbin/lvlnboot -s /dev/vg00/lvol2

[/@machine01]#/usr/sbin/lvlnboot -r /dev/vg00/lvol3

验证镜像是否已正确创建:

Boot Definitions for Volume Group /dev/vg00:

Physical Volumes belonging in Root Volume Group:

/dev/dsk/c1t2d0 (0/0/1/1.2.0) -- Boot Disk

/dev/dsk/c2t2d0 (0/0/2/0.2.0) -- Boot Disk

Dump: lvol2    on:    /dev/dsk/c1t2d0, 0

3.1.3创建群集锁卷组和物理卷:

[/@machine01]#pvcreate -f /dev/rdsk/c4t0d0

[/@machine01]#mknod /dev/vglock/group C 64 0x00

[/@machine01]#vgcreate /dev/vglock /dev/dsk/c4t0d0

[/@machine01]#vgexport -p -s -m /tmp/vglock.map /dev/vglock

[/@machine01]#rcp /tmp/vglock.map machine02:/tmp/.

[/@machine02]#mknod /dev/vglock/group c 64 0x020000

[/@machine02]#vgimport -s -m /tmp/vglock.map /dev/vglock

#c4t0d1盘来自磁盘阵列,vg01用于存放oracle库ora9的数据

[/@machine01]#pvcreate -f dev/rdsk/c4t0d1

[/@machine01]#mknod /dev/vg01/group c 64 0x010000

[/@machine01]#vgcreate /dev/vg01 /dev/dsk/c4t0d1

[/@machine01]#lvcreate -L 10000 /dev/vg01

[/@machine01]#newfs -F vxfs /dev/vg01/data

[/@machine01]#mount /dev/vg01/data /data

[/@machine01]#vgdisplay -v /dev/vg01 #验证卷组是否已正确创建

3.2.2将卷组分发到二号机:

[/@machine01]#vgchange -a n /dev/vg01

[/@machine01]#vgexport -p -s -m /tmp/vg01.map /dev/vg01

[/@machine01]#rcp /tmp/vg01.map machine02:/tmp/.

[/@machine02]#mknod /dev/vg01/group c 64 0x010000

[/@machine02]#vgimport -s -m /tmp/vg01.map /dev/vg01

[/@machine02]#vgchange -a y /dev/vg01

[/@machine02]#mount /dev/vg01/data /data

[/@machine02]#vgdisplay -v /dev/vg01] #验证配置

[/@machine02]#vgchange -a n /dev/vg01

假设Oracle99i数据库软件已经安装在系统中,oracle用户及其环境变量等均已设置好:

ORACLE_HOME=$ORACLE_BASE/product/9.2.0

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib

PATH=/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/clearcase/“ target=”_blank“ >ccs/bin:/usr/local/bin:$ORACLE_H

按如下步骤执行:

[/@machine01]#vgchange -a y vg01

[/@machine01]#mount /dev/vg01/data /data

启动XWindows,打开一个terminal窗口,在terminal窗口中执行下列命令

DISPLAY=x.x.x.x:0.0 #改DISPLAY变量,x.x.x.x为你当前运行xwindows终端的电脑的ip地址

在GUI中选Create a database――New Database――全局数据库名:,SID:ora9――Dedicated ServerMode――Initialization Parameters,根据实际需要填参数――改变DataBase Storage画面中Controlfile、datafile、Redo Log文件位置均为/data/――Create a database并生成创建代码――最后改sys及system用户的口令――完成

3.3.2将必要的文件拷贝至二号机:

[/home/oracle/app/admin/@machine02]rcp Cr machine01:/home/oracle/app/admin/ora9 .

[/home/oracle/app/admin@machine02]#chown -R oracle:dba ora9

[/home/oracle/app/product/9.2.0/@machine02]rcp-r machine01:/home/oracle/app/product/9.2.0/dbs .

[/home/oracle/app/product/9.2.0/@machine02]chown -R oracle:dba dbs

[/@machine01]#cmquerycl -v -c /etc/cmcluster/clconfig.ascii -n machine01 -n machine02

[/@machine01]#vi /etc/cmcluster/clconfig.ascii

FIRST_CLUSTER_LOCK_VG /dev/vglock

FIRST_CLUSTER_LOCK_PV /dev/dsk/c4t0d0

FIRST_CLUSTER_LOCK_PV /dev/dsk/c4t0d0

NETWORK_POLLING_INTERVAL 2000000

MAX_CONFIGURED_PACKAGES 4 #最大包个数,根据实际情况确定,小于等于60

3.4.2验证群集配置:

[/@machine01]#cmcheckconf -k -v -C /etc/clconfig.ascii

3.4.3分发二进制文件:

[/@machine01]#vgchange -a y vglock #必须仅在发出cmapplyconf命令的节点上激活vglock,这样才可初始化锁磁盘

[/@machine01]#cmapplyconf -k -v -C /etc/cmcluster/clconfig.ascii

[/@machine01]#vgchange -a n vglock

3.4.4启动群集并检查群集:

还可通过断开某节点网络、停下某节点等观察群集是否能正常切换,

3.4.5存储卷组和群集锁配置数据:

[/@machine01]#vgcfgbackup vglock

3.5配置高可用性oracle包:

[/@machine01]#mkdir /etc/cmcluster/pkg_ora

[/@machine01]#cmmakepkg -p /etc/cmcluster/pkg_ora/pkg_nf

[/@machine01]#vi /etc/cmcluster/pkg_ora/pkg_nf

NODE_NAME               machine01

NODE_NAME               machine02

RUN_SCRIPT      /etc/cmcluster/pkg_ora/pkg_tl

HALT_SCRIPT    /etc/cmcluster/pkg_ora/pkg_tl

HALT_SCRIPT_TIMEOUT   NO_TIMEOUT

[/@machine01]#cmmakepkg -v -s /etc/cmcluster/pkg_ora/pkg_tl

[/@machine01]#vi /etc/cmcluster/pkg_ora/pkg_tl

VG[0]=”/dev/vg01“

LV[0]=”/dev/vg01/data“; FS[0]=”/data“; FS_MOUNT_OPT[0]=”-o rw“

IP[0]=”192.168.100.82“

SUBNET[0]=”192.168.100.0“

SERVICE_NAME[0]=”oracle_service“

SERVICE_CMD[0]=”/etc/cmcluster/pkg_ora/oracle9i.sh monitor“

SERVICE_RESTART[0]=”“

function customer_defined_run_cmds

{

# ADD customer defined run commands.

: # do nothing instruction, because a function must contain some command.

/etc/cmcluster/pkg_ora/oracle9i.sh start

}

function customer_defined_halt_cmds

{

# ADD customer defined halt commands.

: # do nothing instruction, because a function must contain some command.

/etc/cmcluster/pkg_ora/oracle9i.sh halt

[/@machine01]#vi /etc/cmcluster/pkg_ora/oracle9i.sh

ORACLE_HOME=/home/oracle/app/product/9.2.0

LISTENER_PASS=

[/etc/cmcluster/pkg_ora@machine01]#cmcheckconf Cv CC /etc/cmcluster/clconfig.ascii -P pkg_nf

[/etc/cmcluster/pkg_ora@machine01]#cmapplyconf -v CC /etc/cmcluster/clconfig.ascii -P pkg_nf

[/home/oracle/app/product/9.2.0/@machine01]#vi listener.ora

将下列条目:

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.80)(PORT = 1521))

192.168.100.80改为包地址192.168.100.82,其余部分不变。

[/etc/cmcluster@machine02]#rcp -r machine01:/etc/cmcluster/pkg_ora .

[/home/oracle/app/product/9.2.work/@machine02]rcp machine01:/oracle/app/product/9.2.0/network/listener.ora .

[/home/oracle/app/product/9.2.0/network/@machine02]chown oracle:dba listener.ora

[/@machine01]#cmmodpkg -v -e pkg_ora #启动包

[/@machine01]#cmviewcl -v #观察包及群集是否运行正常

还可通过sqlplus及OEM等oracle实用程序验证oracle包是否运行正常。

高可用解决方案 篇3

如果你问一名正在推销牛奶的销售员,“你卖的是什么啊?”他在心里大概会笑你白痴,你不认识牛奶吗?

可是,作为销售人员,我们是否问过自己,我们卖的究竟是什么?似乎答案并不是我们手里的产品或服务那么简单,

很多时候,一些销售员认为自己非常努力,结果效果还是不好,原因就是他们完全在按照自己的意愿去做事,而忽略了客户真正需要解决的问题。

我们要记住,销售就是帮助客户解决问题,顾客是为了解决问题而购买,那么我们卖的自然应该是问题的解决方案。

虽然我们的目的是为了把产品卖出去,但是客户需要的不是产品,而是需要产品帮助自己解决各种问题。不管是城市人还是农村人,富人还是穷人,老年人还是年轻人,他们都会遇到不同的问题。而一名优秀的销售人员,总是能够因人而异,为他们提供不同的解决方案。

对优秀的销售人员来说,销售的前提就是知道客户的问题是什么,你所提供的产品是否真的能帮助他们解决问题,他们是否能够真正相信你说的话和你的产品质量。比如,客户购买化妆品,他们购买的不是化妆品,而是希望产品带给他们美丽;病人购买的不是药品,而是希望药品带给他们健康。

所以,作为销售人员,我们卖的不仅仅是产品或者服务,而是对客户所要解决问题的认识和把握。

当然,很多时候,了解客户需要解决的问题并不是一件容易的事,因为消费者往往会给你造成一种假象。例如,一位销售QQ轿车的销售人员说:“当客户想要购买一辆车时,他也许会告诉您,为了上班方便,但实际上也许是因为隔壁邻居买了一辆车,或者是为了追女朋友方便。”面对这种情况,销售人员需要调整思路,进行深入的市场调查,了解客户的真实想法,然后才能真正帮助他们解决需要解决的问题,由此赢得他们的青睐。

每个人遇到的问题不一样,但是他们都需要得到心理满足。根据马斯洛的需求层次理论,人的需要可归结为生理需要和心理需要两个层次。随着经济水平的提高,人们的生理需要日趋满足,这时心理需要就显得特别突出,人们的消费也由物质性消费转向注重商品附加值、以求获得心理满足的精神性消费。人们从理性消费时代进入了感性消费时代,也就是说顾客在消费产品或服务的同时,更加重视心理上的充实和满足,期望在商品购买和消费过程中受到尊重和重视。所以,越来越多的企业把顾客奉为上帝,充分尊重他们,但也仍有些企业对顾客的重视不够。

比如,当你走进银行排队办理业务时,你看到一边排满了人,而另一边却只有三两个人在办理业务,你赶紧排在了人少的那一排,并暗自得意可以节省不少时间,

但当你站到窗口告诉营业员你要存款2000元时,营业员却告诉你:“对不起,先生(小姐),我们这里只给大额储户办理业务。”此时,你一定会怒不可遏,大声质问营业员或者向她的上司投诉,因为你觉得自己不被尊重,甚至受到了歧视。难道只有那些办理大额储户的时间才宝贵?或者说只有他们才能享受到更好的服务?这简直就是不平等的待遇!

从此,你对这家银行一定不会有好印象,也许你一气之下再也不会去那里办理业务了。此外,你一定还会向自己的亲戚朋友诉说自己遇到的不公平待遇,也劝他们不要再去那家银行。由此可见,这家银行会流失多少潜在客户。

每个人都渴望自己得到重视,得到与众不同的礼遇。作为销售人员,应该明白自己销售的不只是产品,还有态度。如果你的产品非常好,客户也急需这样的产品,但是你的态度却很恶劣,那么对方也会因此而放弃购买。

琢磨客户的需求,并说明你的产品特性符合顾客的购买欲望,而不是让顾客把欲望表现在你的产品上。

美国纽约有一家蛋糕店,该店首创了一种可以将顾客指定的照片“印”在蛋糕上的技术,进而在一块传统的生日蛋糕上点缀一些祝贺文字或五彩奶油装饰。虽然每次收费15美元,但慕名前来的客人络绎不绝。

顾客首先要把印在蛋糕上的照片交给工作人员,工作人员用摄影机将照片的影像摄入,然后转成电脑下达的指令,5分钟后蛋糕上就会出现与照片一模一样的人物头像。整个图像就像一幅丝质屏风,唯一不同的是这个图案可以食用。

别家的蛋糕店都是千篇 一律的,价格也相差无几,但是这家不一样,他们把顾客的照片印在了蛋糕上,如此一来,蛋糕就成了世界上独一无二的蛋糕,成了专门为顾客量身定做的蛋糕,顾客渴望受到重视的心理明显得到了满足。

世间的商品不计其数,有多少是为你量身定做的?如果有,你肯定希望得到它,否则觉得对不起那一份心意。

著名的李维斯牛仔服实行的是为顾客量身定做、一对一的销售策略,顾客来到商店里选购款式和布料,现场的售货员会为你量尺寸,并立即输入电脑数据库,这个数据库与李维斯的设计部门、工厂和市场营销及客户服务部门紧密链接,你只需坐等片刻,或者是第二天取货即可,无论是大小、尺寸、款式风格都如你所想。甚至会应你的要求在领口或袖口绣上你的尊姓大名或者其他你喜欢的图案。

其实李维斯也并非就真的为每一个顾客都单独制造,工厂会按照各种尺寸、大小款式、风格制造出大批的模块,接到前方的顾客数据之后,现场拼接就行了。而顾客获得的感受就不一样了,因为“你是专门为我生产的”。就冲这一点,你也会成为李维斯品牌的忠诚顾客,并会主动地向别人宣传该品牌的种种好处。

每个人的需求都不一样,要满足所有顾客的心理需求,自然是不可能的,正所谓 “众口难调”。但是顾客期望受重视的心理是不变的,谁能为顾客量身定做产品或服务,实行一对一的销售策略,谁就能占据市场主动权。

无论你是销售保险的,销售汽车的,还是销售化妆品的,或者是酒店的服务生,你要记住你卖的并不是产品和服务,而是客户心中的需求,是需要解决问题的方案。

高可用解决方案 篇4

摘要:硬件冗余可以极大地提高计算机应用系统的可用性,然而,一旦关键硬件出现故障或数据库宕机,正在进行中的业务流程通常会中断。探讨了一种如何实现应用系统高可用性的软件架构的设计方案,以弥补纯硬件冗余应用系统的不足。

在业内,计算机应用系统的可用性定义为计算机应用系统保持正常运行时间的百分比,通常用表1所示的“9”的个数来划分可用性的类型。

通常,硬件冗余(容错计算机、双机或多机集群、磁盘阵列、SAN等)、数据复制、合理的灾难备份和恢复策略都可以极大地提高计算机应用系统的可用性。正因为如此,当前,对于计算机应用系统的高可用性、业务的可持续性要求,业内通常以硬件系统的高可用性来应对或代替。常见的解决方案是双机(或多机)集群方案或直接采用容错计算机来保障系统的高可用性,应用软件的设计和开发往往仅注重业务流程的分析和过程控制。在这种完全依赖硬件来保障整个系统的可用性的系统里,一旦关键硬件出现故障或数据库宕机,正在进行中的业务流程(如需较长执行时间的事务处理、后台批处理过程等)必然会中断,这是因为双机切换也需要时间。对此,应用软件本身并无多少作为,该类业务必须等待系统重新恢复后全部或部分重做。

本文以基于大型数据库的应用系统为例,从“软件容错”设计的概念出发,参考“分布式”数据库结构设计,以“系统服务总线”为核心,给出了一种可行的高可用性软件架构的设计方案,可以极大地提高应用软件的可用性和业务系统的可持续性。无论是传统的C/S架构,还是近年来流行的B/S架构,本文中给出的设计方案都有一定的参考意义。

任何基于大型数据库的应用系统,都可以抽象为对数据的“读”和“写”操作。至于客户端如何展现“读”到的数据,以及“客户端”与“服务端”基于何种通信协议通信,不在本文讨论之列。

软件结构的设计其实就是针对“读”和“写”的一系列流程的设计。如何最大限度地保证系统中的所有“硬件”和“软件”协同工作,正确完成每一次“读”和“写”的操作,也就是对系统“高可靠性”和“高可用性”的要求。

图1是基于“软件容错”和“分布式数据库系统”的原理,并参照了计算机“总线”的工作原理给出的一种基于分布式数据库或文件系统的高可用性的软件架构设计方案。系统采用3层架构:客户端、中间应用层和数据库层。

2.1数据库配置为了更清楚地阐述本文的设计方案,先对数据库的配置及其功能进行描述。本系统中,数据库按角色可划分为如下三类数据库:控制数据库(COTROLL DB)、日志数据库(LOG DB)、业务数据库(BUS DB_N)。

控制数据库也可以是一个或多个系统控制(参数)文件。它存放要访问的目标数据库的节点(N)、端口、用户、文件头、表、视图等信息;存放对节点、业务数据库、表或视图的授权或访问控制信息;目标数据库(或文件)的当前状态(联机/脱机、忙/空闲等);目标数据库中的表或视图的当前状态(联机/脱机、忙/空闲、加锁/解锁等)。

日志数据库独立于业务数据库之外,用于记录客户端节点信息、请求时刻和发来的所有请求的原始内容,但不做业务流程相关的处理、运算等。记录每次数据操作分配的唯一的“事件号”(EVENT_ID)。对每一次客户端的“请求”,“系统服务总线”(SYSSRV)会分配唯一的标识符号,可以定义为有一定意义的字符串,比如,“当前时刻+流水号”。以上信息可以被压缩、打包、加密后存放,以记录格式保存于数据库的表或文件中。它可以设计为数据库中的一个或多个表,也可以是文件格式。

业务数据库记录所有业务相关的数据信息。所有业务数据库的相关业务逻辑的数据结构相同,即,N个节点的业务数据库中与业务模式相关的表、视图、过程或其他程序设置相同。

需要特别指出的是:

(1)控制数据库、日志数据库和业务数据库可以是不同数据库厂家或品牌的产品。比如,日志数据库可以采用低端的数据库产品或开源数据库系统,业务数据库可以采用高端的大型数据库产品。

(2)控制数据库、日志数据库和业务数据库在物理上和逻辑上是可以相互隔离的,这可以极大地提高系统的整体安全性。目标数据库和要访问的表或视图对客户端来说是“不可见”的',由控制数据库动态定义和控制。

(3)所有类别的数据库在物理上位于一个或多个节点上,即节点N>=1;任意一个节点N上建有一个或多个业务数据库(逻辑数据库>=1);任意一个节点是一个完整的、可独立工作的计算机。根据性能要求,可以是高性能PC机、PC服务器、小型机、集群或超级计算机,或是它们的“混合体”;任意一个节点是指定网络中的一个指定节点。

中间应用层由5个后台进程构成:(1)系统服务总线(SYSSRV);(2)数据库写进程(DBWRT_N);(3)数据库读进程(DBRED_N);(4)数据库在线恢复进程(DBRCY);(5)日志检查进程(LOGCHK)。

这是一个后台监听、分发、调度总进程。设计目标具有一定的“自我修复”和“自我复制”动能。它可以根据负载情况,自我复制或开启子进程响应新的负载;可以动态配置可服务的节点或客户端;可以为特定节点或客户端指定专用进程;它通过“DBWRT”和“DBRED”“读/写”日志数据库或日志文件。

写进程负责向所有节点写数据。它可以配置成多进程/单进程模式;多进程模式,指对应每个业务数据库N都有独立的“写”进程;单进程模式,指对应多个业务数据库只有一个主进程,主进程开启多个线程提供“写”服务。

读进程负责向所有节点读数据,它可以配置成多进程/单进程模式。多进程模式指对应每个业务数据库N都有独立的“读”进程,单进程模式指对应多个业务数据库只有一个主进程,主进程开启多个线程提供“读”服务。

根据需要,读进程可以配置成:向所有在线节点并发读数据,返回最快的结果集,抛弃其他的结果集,并中断其他读进程;也可以配置成:随机读某个节点的数据,如果失败或超时,则再随机读余下的在线节点,直到“读”成功或失败;还可以配置成向所有节点顺序读数据,过程类似上面“随机读”。

以上“读写”业务数据库的进程,设计上支持多种数据库访问接口,针对“表”或“视图”提供统一格式的、标准的、动态的SQL数据操作接口和方法,完成对数据库中表或视图的增、删、改、查和批处理操作。它们可以设计为数据库中的存储过程,也可以是C++,Java程序的API或混合体。

该进程负责检查全部或部分节点数据库(包括所有授权控制数据库、业务数据库和日志数据库)或文件的工作状态;检查数据库或文件表中数据的一致性;将以上检查结果写入日志数据库(或日志文件)。

当某个业务数据库中的表写入失败时,它负责从“日志数据库”的表或日志文件中读出原始数据,接着写入出现问题的业务数据库的表中,并检查结果。或从其他节点的数据库中读相关数据并写入到出现问题的业务数据库的表中。

接收外部命令,根据“时间点”或“事件号”从特定时刻、特定数据库(包括日志数据库)、特定表恢复数据到特定目标数据库的表或文件。

该进程负责读、写日志文件,检查数据操作结果的一致性。如果不一致,则报告给“系统服务总线”,将问题数据库或数据库中的表、视图设置为“离线”状态。

3.1系统初始化启动配置好的后台进程即完成系统初始化过程。

数据“写”流程的主要步骤如下:(1)客户端通过给定协议(或混合多种通信协议)向后台“系统服务总线”发送“写”请求。

(2)激活“数据库写进程”,将客户端的“请求”写入“日志数据库”(或日志文件),并分配一个唯一的“事件号”。

(3)“系统服务总线”查询“授权/控制数据库”(或/配置文件)得到客户端请求访问的数据存放的目标数据库(或文件)节点N(或文件存放的节点N)、端口、用户、表、文件头等信息。节点N可以是多个,即节点N>=1。

(4)“系统服务总线”向N个“数据库写进程”发送数据“写”访问请求,并得到各节点的返回结果集。

(5)只要有1个节点写入成功,“系统服务总线”就将写入成功的标志发回客户端;“数据库写进程”将各节点的返回结果状态写入“日志数据库”(或日志文件)中。

(6)“日志监控”查询“日志数据库”(或日志文件),比较N个节点的写入状态。如发现写错误、失败、超时等状态,则将该“业务数据库”(或文件、表、视图)标志为“非正常联机数据库”(或文件、表、视图不可用)。

(7)激活“数据在线恢复进程”,进程为“非正常联机数据库”,则执行数据库数据“同步”。在线同步恢复如失败,则将该“数据库”标志为“需要DBA维护”的类别,留待DBA或软件维护工程师处理。

数据“读”流程的主要步骤如下:(1)客户端通过给定协议(或混合多种通信协议)向后台“系统服务总线”发送“读”请求。

(2)激活“写进程”,将客户端的“请求”写入“日志数据库”(或日志文件),并分配一个唯一的“事件号”。

(3)“系统服务总线”查询“授权/控制数据库”(或/配置文件)得到客户端请求访问的数据存放的目标数据库节点N(或文件存放的节点N)、端口、用户、表等信息。

节点N可以是多点,即节点N>=1。

(4)“系统服务总线”查询“授权/控制数据库”(或/配置文件)得到可用的、空闲的目标数据库节点N(或文件存放的节点N)。

(5)激活“读进程”(或随机、或顺序)向N个节点的“业务数据库”(或文件)发送数据“读”访问请求,并得到各节点的返回结果集。

(6)“系统服务总线”将最快返回的结果集发回客户端;抛弃其他结果集,中断其他读进程。

在本系统的设计和实现中,由于采用了“分布式”数据库或文件系统部署,只要N个节点中至少有一个节点的“业务数据库”正常工作,因为一个或几个“业务数据库”系统(或节点硬件)故障所引起的业务系统的不可持续性理论上将可以完全避免,因而提高了系统的“容错”性。

由于N个数据库同时在线,且节点是否可用、空闲等状态可实时监控,这为特定业务快速访问和独享访问提供了先决条件。如可以指定某特定“业务数据库”仅为某个或几个特定客户端服务提供“读”访问。

因为设计了统一、标准的增、删、改、查的过程方法或API,前端开发人员甚至不必写任何SQL语句就可以完成对数据库中表或视图的操作,可以大大地缩短编程和调试时间。

需要指出的是,虽然“系统服务总线”具有“自我修复”和“自我复制”的特点,但因为“节点”硬件故障或“授权/控制数据库”(或/配置文件)或“日志数据库”故障而引起的全系统不可用依然存在,因此,建议该节点采用性能好、可靠性高的中、高端服务器。

高可用解决方案 篇5

企业建网站,最痛苦的是莫过于有限的经费和无限的性能要求,网站设计者对硬件得投入总是慎之有慎:小型机太贵了,不如用PC做负载均衡;对外提供的服务多,还是多买几台PC,每两台提供一种服务,整体性能和可靠性都有保证;安全不能不考虑,防火墙至少要有一台。北京某企业门户网站正是按照这个想法开始建设,决定提供WEB、FTP下载、在线点播等服务,并预定了开通日期。

网站系统联调阶段,猛然发现,当初考虑欠妥,只有一个公网的IP地址能用,要提供的服务却有一大堆。而且,大部分防火墙所宣称的“负载均衡”,并非是网络层的“负载均衡”,而是基于代理,只能支持WEB,不支持其他业务,尤其是网站苦心开发多年,赖以生存的特色服务。若不是意外发现了高阳信安的DS2000-Biz防火墙,当初做设计的小伙子就面临下岗了。

高阳信安的DS2000-Biz防火墙外表上和大多数防火墙没有多大区别,提供了外网、内网接口,对外提供服务的服务器都放置在DMZ区。说明书很简洁,内容却非常详细,按照手册的要求略作配置,防火墙就工作了。

简单的设定了几条安全规则后,注意力集中在了解决网络地址问题上。可是,在DS2000-Biz的设置软件中,可以发现,问题的解决异乎寻常的简单,

首先将公网的IP地址赋予外网端口。然后,设置动态地址转换,将内网的地址段映射到公网的IP地址,内网的用户已经能正常的访问INTERNET了。将公网的IP地址的80端口分配给WWW服务,依次填入2台WWW服务器在DMZ区的IP地址,找一台笔记本电脑拨号上网,用浏览器访问一下,正常。在后台可以看到,2台WWW服务器都工作了,负载基本相同。

FTP服务器的负载均衡设置与此相识,很简单。同样测试了一下,工作情况良好。其实,FTP服务的负载均衡很难实现。因为WWW服务是无连接的,每个请求发向哪一台服务器没有影响;但FTP服务不同,防火墙必须 “记住”每一条连接,并“保持”住。DS2000-Biz防火墙在这方面的智能化程度较高,用户省去许多烦恼。

解决了FTP服务器之后,在线点播服务也顺利实现。DS2000-Biz防火墙通过复用唯一的一个公网IP地址,全部实现了公司内部上网和对外提供多种服务的要求,而且,相互之间丝毫没有冲突,基于网络层的“负载均衡”工作流畅,一切是如此轻松。

一切安装完毕后,安全检测必不可少。PIN扫描、SYN 攻击、IP碎片攻击,无论是WIN NT还是最近流行的LINUX都该倒下了,可是处于DS2000-Biz防火墙保护下的服务器居然没有反应。再轮番用ISS、SAINT扫描、模拟攻击,依然没有发现漏洞。防火墙的状态监测可以清楚的看到每一次攻击的行为,使在一旁做模拟攻击的哥们很泄气。

转载请保留原文链接:http://www.j458.com/a/5708068.html,并在标注文章来源。
上一篇 : 建党伟业观后感
下一篇 : 一年级学生写的日记