高手教你用Veritas Cluster Server for DB2双机入门_第1页
高手教你用Veritas Cluster Server for DB2双机入门_第2页
高手教你用Veritas Cluster Server for DB2双机入门_第3页
高手教你用Veritas Cluster Server for DB2双机入门_第4页
高手教你用Veritas Cluster Server for DB2双机入门_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、双机应用实战:高手教你用Veritas Cluster Server for DB2双机-入门【IT168 专稿】双机热备这一概念有两种不太相同的意义:从广义上来说也称为双机互备,指的是对于重要的服务,使用两台服务器协同工作,共同执行同一个服务。当一台服务器出现故障时,可以由另一台服务器暂时相应原有的两个机器的所有服务,等待故障机的恢复和重新加入集群,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。这种集群一般被称为高性能集群(High performance cluster. HPC)。 从狭义上讲,双机热备特指基于active/standby方式的服务器热备,这也是双机热备最常用

2、的含义,服务器数据包括数据库数据同时往两台或多台服务器写,或者使用一个共享的存储设备,但在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会被集群软件激活,保证应用在短时间内完全恢复正常使用。这种集群一般被称为高可用集群(High Availability cluster. HAC)。 双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。在广义的双机互备中,N台服务器同时工作,硬件资源的利用率最高;在狭义的双机热备中,需要m台机器(m不小于1)作为后备服务器,那么至多只能用(N-m)台

3、机器工作,资源的利用率低于双机互备。(一般软件公司都会将多机同时工作作为一个特殊的功能来卖,价格比两台机器的总和可能还要高,所有一般中小企业用户都会选择后一种热备方式,牺牲一些可用性)。 在IBM的DB2数据库产品中,包括了上述的两种热备方式:均衡多处理模式(Symmetric Multiprocessing, SMP)和大数据并行处理模式(Massively Parallel Processing, MPP)。 SMP是指一台数据库工作,另一台数据库作为后备,当工作的数据库发生故障的时候,集群会将数据库服务所需的所有服务转移到后备的服务器上面。MPP是指多台数据库同时工作,一旦某一台数据库服

4、务器发生故障,其他的服务器就会接管其服务,直到故障机重新加入到集群中。 作为一款专业的集群管理软件,Veritas Cluster Server(VCS)能够针对不同的情况进行不同的管理。由于DB2的双机热备(狭义)模式配置比较简单,也相对容易理解。所以本文讲述如何利用VCS去管理DB2双机热备的高可用集群。而在下一讲中会讲述如何利用VCS去配置和管理双机互备的高性能集群。在本文中,做了如下假设:用户希望将system1和system2配置成双机环境,IP地址分别是(, )操作系统是Solaris,利用Symantec的Storage foundat

5、ion作为文件系统管理工具,DB2的程序在两个系统中分别安装,而数据库文件存放在共享磁盘上面,共享磁盘组是DB2DG,卷名DB2Vol,文件系统挂载在/home/db2下面,访问DB2的虚拟主机名为db2server,IP是。其部署如下图所示:1.配置 a)创建数据文件使用的共享存储(在system1上面执行下列5个命令): i.# vxdg init DB2DG c0t0d0; 创建磁盘组DB2DG,使用c0t0d0这个硬盘; ii.# vxassist -g DB2DG make DB2Vol 5g; 在磁盘组上创建5G大小的卷DB2Vol; iii.# mkfs -

6、F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol; 创建文件系统; iv.# mkdir /home/db2; 创建mount点,共享磁盘将mount到这里; v.# mount -F vxfs /dev/vx/dsk/DB2DG/DB2Vol /home/db2; 将共享盘mount到本机; b)使两个系统可以通过RSH方式互相访问,在system1上面做如下操作: i.echo “system2” /etc/hosts; 将对方加入的自己的主机列表; ii.echo “system2 db2inst1” $HOME/.rhosts; 使得对方主机

7、可以通过RSH以db2inst1的身份登陆本机; iii.echo “db2server” /etc/hosts; 将虚拟主机加入的自己的主机列表; c)在system2上面做类型的操作,将system2改为system1,IP也作相应的改变,虚拟主机不变。 d)在两台机器上面分别执行下列命令,创建相同的用户组。 i.# groupadd -g 999 db2iadm1; 创建DB2实例管理组; ii.# groupadd -g 998 db2fadm1; 创建DB2 fencing管理组; iii.# groupadd -g 997 db2asgrp; 创建DB2数据库管理组; iv.# u

8、seradd -g db2iadm1 -u 1004 -d /home/db2 -m db2inst1; 创建DB2实例管理用户; v.# useradd -g db2fadm1 -u 1003 -d /home/ db2fenc1 -m db2fenc1; 创建DB2 fencing 管理用户; vi.# useradd -g db2asgrp -u 1002 -d /home/ db2as -m db2as; 创建DB2数据库管理员帐户; 注意:上述组或者用户的ID可以是任意的尚未被使用的数字,但是一定要保证两台机器上面的用户ID是一致的,否则数据库切换的操作会失败;数据库实例管理员的帐户

9、存放在共享盘上面。 e)在两台机器上面分别安装DB2数据库程序: 注意:在oracle中,可以将oracle数据库程序装在共享盘上,则只需要安装一份即可; 另外DB2的安装有两个命令:db2setup和install。db2setup是图形化工具,会将数据库程序和一个实例文件同时创建,而我们在双机上只需分别安装数据库程序而维护同一份实例文件,所有推荐使用install安装DB2,这样只会安装程序在系统上,实例文件稍后自己安装即可。 f)在两台机器安装DB2的序列号: i.# /opt/IBM/db2/V8.1/adm/db2licm -a db2ese.lic g)检查两台机器下面的/etc/

10、service文件,确保都有如下的条目并且两边的端口是相同的: DB2_db2inst1 60000/tcp # DB2_db2inst1_1 60001/tcp # DB2_db2inst1_2 60002/tcp # DB2_db2inst1_END 60003/tcp # db2c_db2inst1 50000/tcp # h)在system1上面创建实例(存放在共享盘) i.cd /usr/opt/db2_08_01/instance ii./db2icrt -u db2fenc1 db2inst1 i)修改DB2节点文件/home/db2/sqllib/db2nodes.cfg i.

11、将其内容改为: 0 db2server 0 1 db2server 1 或者 0 system1 0 1 system2 1 注意:第一种方式配置的是以虚拟主机的方式进行热备,第二种使用真是主机的方式进行切换的。如果是多机环境,第一种方式方便管理,第二种方式更显得直观。2.测试 此时,双机环境就已经配好了,我们来测试一下它是否能正常工作 a)创建数据库testdb: # su - db2inst1 ;切换的数据库实例管理用户; # db2start 启动数据库; # db2 create database testdb 创建新的数据库tdstdb; # db2 terminate 将创建写入到

12、磁盘; # db2stop停止数据库。 b)将共享盘从system1下载下来(在system1执行): i.# umount /home/deb; 卸载文件系统; ii.# vxvol g DB2DG stopall; 将DB2DG的所有卷停止活动; iii.# vxdg deport DB2DB; 将磁盘组DB2DG导出; c)将共享盘挂载到system2(在system2执行): i.# vxdg import DB2DB; 将磁盘组DB2DG导入; ii.# vxvol g DB2DG startall; 将DB2DG的所有卷启动; iii.# mount F vxfs /dev/vx/

13、dsk/DB2DG/DB2Vol /home/deb; 挂载文件系统; d)在system2启动原来在system1创建的数据库testdb: i.# su - db2inst1 ii.# db2start iii.# db2 connect to testdb 如果能够连接成功,则数据库双机配置成功,如果数据库在某系统上损坏后,它可以被VCS切换到另外一台机器并运行。3.配置VCS管理双机热备 a)拷贝DB2代理配置文件到VCS的配置目录: i.cp /etc/VRTSvcs/conf/Db2udbTypes.cf 、/etc/VRTSvcs/conf/config/Db2udbTypes.

14、cf b)打开VCS图形工具 i.# /opt/VRTSvcs/bin/hagui & c)创建服务组(service group),起名为db2; d)导入DB2代理配置文件: 文件导入-确定; e)创建六个资源: i.磁盘组:指明DB2DG; ii.卷:DB2Vol iii.挂载点:/home/db2 iv.网卡:公网网卡(例如bge0) v.IP地址:可以是虚拟IP地址(),如果前面的cfgnode文件中写的是虚拟IP,否则就在system1写入(),在system2写入()。 vi.DB2 aent:这个资源会监控db2

15、在集群中的运行情况。 f)为这六个资源创建依赖关系(右键点击资源,选择link): i.IP依赖NIC网卡的工作正常; ii.卷的存在依赖于磁盘组的状态;文件系统依赖卷; iii.db2代理的状态要同时依赖于IP地址的存在和文件系统的存在。 iv.资源依赖关系如图所示: g)右键点击db2服务组,选择online,让db2在system1上线; h)右键点击db2服务组,选择switch to,让db2切换到system2。 i)如果切换正常,则VCS配置成功。 总结: 双机配置是现在市场上比较认可的一种维护系统高可用的配置方案,该方法有简单操作,方便管理,花费比较小等诸多优点。而利用syma

16、ntec的VCS和SF来组成这套管理DB2的方法,更是有着直观,可靠的优点。是用户选择双机热备的一个主要考虑的方案。今天的讲述,就是一个标准的双机热备的配置方法。对于DB2大书籍并行处理数据库(MPP)的讲述,以及对于其他的数据库(oracle,sybase)双机配置的方法,将会在稍后的文章讲述。实战:高手教你用VCS配置DB2双机-高级【IT168 专稿】前面我们通过Veritas Cluster Server for DB2双机-入门一文已经向大家介绍了DB2双机的基本原理和配置方法,本文将接续上文,继续介绍DB2的高级需求大规模并行处理(Massively Parallel Proces

17、sing, MPP)环境下,用户如何利用VCS配置双机互备环境。 需要强调的是,本文是接续上文Veritas Cluster Server for DB2双机-入门,继续进行双机介绍,因此在看本文之前,最好先看看本文上篇Veritas Cluster Server for DB2双机-入门。 此外,Veritas Storage Foundation系列文章还包括:用Storage Foundation管好存储系统-安装用Storage Foundation管好存储系统-入门 用Storage Foundation管好存储系统-进阶用Storage Foundation管好存储系统-高级用St

18、orage Foundation管好存储系统-文件系统MPP简介 首先介绍一下DB2的大规模并行处理(MPP)的含义。MPP其实就是多台计算机协同工作,共同完成同一个任务,目的就是为了能够使用一些比较廉价的服务器一起工作,提供给用户单机无法完成的服务。而双机互备就是指当这些机器中的某一天出现故障的时候,其他的服务器可以接管运行在其上的服务请求,保证服务的高可用性。 大规模并行处理有两种方式:无共享并行方式和共享磁盘并行方式。 无共享并行方式是指集群中的数据库系统各自使用自己的数据资源,将协调程序发给自己的数据请求在自己的数据库上面查询,再将结果返回,由协调程序来将各个数据库发过来的数据组合成大

19、的数据集并且发送给用户。这种工作模式的优点是易于部署,结构简单清晰;缺点是缺乏高可用性,节点中任何一个节点的损坏都会导致其数据资源不可获得,破坏了数据请求的完整性。其工作模式如下图所示:图1 无共享并行体系结构 共享磁盘共享方式是指多个数据库同时工作,但是他们所读写的资源都是在一个共享的磁盘库中。他们之间的访问冲突是通过锁机制来解决的。它的优点是高可用性,任何一个节点的故障都不会对数据访问造成影响,每一个节点都可以访问全部的数据资源;这种缺点当然也是有缺点的:随着服务器数量的增加,锁的数量以及数据库访问失败的频率也会指数级的增加,会成为数据库访问的瓶颈。然而,在目前的实际应用中,一般集群数量不

20、会太多,所有这个因素可以忽略不记,而其带来的高可用性是大多用户选择它的主要原因。其工作原理如图所示: 图2,共享磁盘并行体系结构Symantec SFCFS简介SFCFS的全称是Storage Foundation Cluster File System;它是symantec旗下SF产品线的一员,其具体的安装配置过程稍后会有仔细的讲解。现在就让用户大概了解一下:SFCFS其实和SF是非常相似的,都是用来管理磁盘和文件系统的。对于磁盘组,卷和文件系统的概念和SF是完全一样的。它和SF唯一的不同是它支持多个节点同时访问一个文件系统上面的数据,由SFCFS来进行文件锁管理,而SF中对于文件系统的访问

21、是具有独占性的。SFCFS允许多个节点同时访问的特点就是针对数据库的并行操作的需求而来的,所以它非常适合进行数据库的并行处理模式的管理。DB2的配置 在DB2的配置中,我们先做好如下假设:由system1和system2来组成集群,其IP分别是 192.168.02,磁盘组名为DB2DG,卷为DB2Vol,文件系统将挂载在/home/db2目录下。 注意:在配置过程中将不再说明DB2的基础配置,配置的详细信息请看Veritas Cluster Server for DB2双机-入门。 1.安装SFCFS的程序在system1和system2上; 2.创建SFCFS需要使用

22、的共享磁盘和共享文件系统(原理和细节稍后会有专题,这里只是配置): a)在两台机器上面运行下面命令: i.# vxdctl -c mode 得到的结果可能是下面两个中的任意一个: cluster active - MASTER cluster active SLAVE 注意,下述的命令只能在返回是master的那台机器执行,因为它是整个cluster中的主节点。 b)创建共享磁盘组 # vxdg -s init DB2DB c0t0d0; s就是共享(share)的意思; c)将新建的磁盘组以共享模式加入到system1和system2: # vxdg deport DB2DG # vxdg

23、-s import DB2DG 注意:如果在这里没有用s参数,那么磁盘组将被第一个执行导入的系统使用,其他系统的导入操作将会失败。必须以共享模式导入才能被多个系统使用。 d)创建卷: # vxassist -g DB2DG make DB2Vol 5g e)创建文件系统: # mkfs -F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol f)将新建的文件系统以共享模式加载到两台机器上面: # mkdir /home/db2 # mount -F vxfs -o cluster /dev/vx/dsk/DB2DG/DB2Vol /home/db2 3.

24、在两台机器创建相同的数据库管理组和管理员,并且加上DB2的注册码(配置方法见入门篇): 4.安装DB2的程序到两台机器上,将数据文件指定到共享盘所在的目录/home/db2下面; 5.修改db2nodes.cfg文件; 这里我想详细的讲述一下这个文件的格式,因为这个文件的配置正确与否之间关系到了配置能否成功,而对于这个文件的内容,即使很多DB2的老用户也不是很清楚: 这个文件的一个常见配置如下所示: 0 sysA 0 1 sysA 1 2 sysB 0 3 sysC 0 4 sysD 0 这个文件的每一行是一个节点的信息,其中第一列数字是唯一编号,表示后面的系统分区是一个集群的成员;第二列是主

25、机的名称,一般就是系统的名称,表示这个成员是运行在哪台主机上的;第三列是端口偏移量,如果某个系统上面部署了多个分区提供数据库服务的话,DB2将通过不同的端口服务来区别不同的分区。 所以,根据上述解释,将该文件修改如下: 0 system1 0 1 system2 1 6.确认数据库安装配置正常: 在每一台机器执行下列命令: # su - db2inst1 $ db2start $ db2stop 如果配置正确,那么下列命令在各个系统都能工作正常。 这样,数据库的配置就已经完成了。VCS的配置1.配置集群文件系统服务组: 在安装了SFCFS之后,VCS自动为集群文件系统创建一个原始的服务组,我们

26、只需要稍微改变它一下即可。 a)在该磁盘组下面创建Cluster Disk group资源和Cluster Volume资源;并修改其属性,让它们控制DB2DG和DB2Vol的状态; b)在原有的集群挂载点资源(CFSMount)上设置依赖属性,让其依赖于集群卷;在设置集群卷依赖与集群磁盘组; c)设置后的关系图如图所示:图3,集群文件系统依赖关系图 2.配置DB2服务组: a)创建DB2资源,IP资源和网卡资源,分别设定其属性,IP就是各个系统的主机IP地址; b)设置资源间的依赖关系:DB2数据库依赖IP资源,IP资源依赖网卡资源; c)设置好的关系图如图所示:图4,DB2数据库的依赖关系

27、 3.建立集群服务组和DB2服务组之间的依赖关系: a)右键点击VCS界面左侧新建的DB2服务组; b)选择“link”,然后选择CFS服务组,选择online local以及soft模式; c)这样DB2服务组就依赖与CFS服务组的状态了,如果CFS在某台系统故障,则其上的数据库服务就会停止,对其资源的请求将会被DB2转移到其他数据库节点上面; 4.测试工作状态: 让DB2服务组在两台机器同时上线,如果成功,则说明配置已经生效,并能正常使用。 数据库作为现在数据管理不可或缺的一个部分,在生产环境中有着重要的地位。因此,如何能够使数据库能够稳定,高效的工作,成为每一个数据库管理员和系统管理员重

28、要的工作。所以配置数据库双机互备和双机热备的配置方法,是每一个数据库管理员的基础。 通过本文及一些相关文章大家已经了解到DB2数据库的管理和配置方法,下面我们还将为大家介绍oracle和sybase的集群的配置方法,并可以比较这些主流数据库的不同之处。实战:高手教你用Symantec VCS配置Oracle双机【IT168 专稿】前期我们通过一系列文章为大家介绍了Symantec的Veritas Storage Foundation存储管理软件,并向大家介绍了Symantec公司专业的集群管理软件Veritas Cluster Server(VCS)。参考链接:高手教你用Symantec VC

29、S配置DB2双机-入门高手教你用Symantec VCS配置DB2双机-高级 将Oracle的双机放在DB2双机后面讲有两个原因:一是DB2的配置相对于oracle的配置来说比较简单,数据库的模式也比较容易理解,而其中相似的地方可以参照DB2的配置;二是DB2双机的配置,也只能说是oracle双机配置的子集,在了解DB2的双机配置之后,oracle双机配置的很多相似的地方简单说明一下即可。此外,读者可以比较一下这两种模式的异同,有利于读者选择更合适自己的双机配置模式。 我们随后还将介绍Sybase双机的配置,将Sybase放在最后并不是因为它更复杂,而是因为在这三种数据库之中,Sybase的用

30、户群相对比较少,需要的人不多。比较DB2与Oracle数据库 DB2和Oracle有很多的不同,要想了解清楚,那个不是一朝一夕的功夫了。幸运的是,因为我们现在只是需要做双机配置,所以我们只是在可能会影响配置的概念上,做一个简单的比较。1.配置结构的不同: DB2数据库的双机热备只支持一种模式,就是DB2的程序在两台机器上各有一份,只有数据文件存放在共享存储中,如下图所示:图1,DB2双机配置结构图 这种配置模式的优点是有利于数据库的升级,当其中systemA需要升级的时候,就把服务切换到systemB上运行,升级A的DB2程序,之后还可以把服务切换回到A来,然后升级B的DB2程序。这个升级过程

31、不会影响用户的DB2使用,因为总有一台机器可以使用DB2程序来响应用户的服务请求。 对于oracle来说不但可以支持这种程序存放在不同机器上的做法,而且支持把oracle的程序文件也同时放在共享盘上,其结构图如下所示:图2,oracle双机结构图程序在各个服务器上图3,oracle双机结构图程序和数据都在共享盘上 将数据与程序同时放在共享盘上的优点有两个:一是节省磁盘空间,用户只需要保留一份数据库备份;二是有利于程序的一致性,不会因为数据库版本的不同,产生差异,可以避免产生一些莫名的问题。2. 数据库的工作模式不同 DB2数据库是以实例为基础的:多个硬盘或者服务器组成一个实例,一个实例下面可以

32、划分多个数据库,一个数据库只能属于一个实例。Oracle可以理解为以用户为基础的数据库,不同的用户访问不同的实例,不同的实例其实就是不同的数据库。配置Oracle双机系统 闲话少说,现在开始介绍一下利用VCS来配置oracle双机的过程: a)创建数据文件使用的共享存储(在system1上面执行下列5个命令): i.# vxdg init oracleDG c0t0d0; 创建磁盘组oracleDG,使用c0t0d0这个硬盘; ii.# vxassist -g oracleDG make oracleVol 5g; 在磁盘组上创建5G大小的卷oracleVol; iii.# mkfs -F v

33、xfs -o largefiles /dev/vx/rdsk/oracleDG/oracleVol; 创建文件系统; iv.# mkdir /oracle; 创建mount点,共享磁盘将mount到这里; v.# mount -F vxfs /dev/vx/dsk/oracleDG/oracleVol /oracle; 将共享盘mount到本机; b)在两台机器上面分别执行下列命令,创建相同的用户组和用户: vi.# groupadd -g 500 dba; 创建oracle管理组; vii.# useradd -g dba -u 500 -d /home/oracle -m oracle;

34、创建oracle管理用户;注意:组ID或者用户ID可以是任意尚未被使用的数值,但是一定要保证多台机器必须一致。 c)安装oracle程序 到oracle安装文件的目录下,运行下列命令安装oracle程序 #. /runInstaller 在安装过程中,指定oracle用户为“oracle”。注意:如果需要在多台机器安装oracle,则需要在多台机器运行该程序;如果仅仅想把程序安装在共享盘上面,则仅仅需要在一台机器安装。注意:安装过程中有一步会问用户是否需要配置数据库,我们选择“仅仅安装软件”,我们会在稍后配置数据库文件到共享磁盘。 d)配置数据库: oracle程序安装完毕后,我们需要配置数据

35、库到共享磁盘上,这样多台机器才能够共享其数据资源; # dbca 运行数据库配置助手来帮助用户安装数据库,注意需要将路径指明到共享磁盘中。 e)设置环境变量 在各个机器的/home/oracle/.profile文件中,设置两个全局变量: $ORACLE_HOME=/oracle该变量指明数据库的安装位置; $ORACLE_SID=oracle该变量指明访问哪个数据库实例; f)安装VCS的oracle代理软件:(以redhat为例) # rpm -ivh VRTSvcsor # rpm -ivh VRTScsocw 这样,oracle的安装就完成了。测试Oracle双机配置 在安装结束之后,

36、我们需要测试一下oracle能否在多台机器上正常工作。 a)将共享盘mount到第一台机器(步骤可以参考DB2双机配置) b)从这台机器登陆数据库并创建一个表 i.su oracle将系统用户切换到oracle用户; ii.export $ORACLE_HOME=/oracle;导出全局变量; export $ORACLE_SID=oracle; iii.$ORACLE_HOME/bin/sqlplus /nolog进入数据库模式; iv.connect / as sysdba以系统管理员身份登陆数据库; v.create user tester identified by 123456 de

37、fault tablespace USERS temporary tablespace TEMP quota 100K on UERS;创建一个新用户tester; vi.grant create session to tester;赋予新用户tester创建表的权限; vii.create table tester.mytime ( tstamp date );在tester用户空间下创建一个新表; viii.insert into tester.mytime (tstamp) values (SYSDATE); 在新表中插入数据; ix.disconnect;断开连接; c)测试其他集群节

38、点可以工作: i.connect tester/123456以新用户身份登陆数据库; ii.update tester.mytime set ( tstamp ) = SYSDATE;更新表的内容; iii.select TO_CHAR(tstamp, MON DD, YYYY HH:MI:SS AM) from tester.mytime; 确认表的内容已经被更新; iv.exit推出。 在经过这个检查之后,就说明数据库已经正确安装并可以被每个节点正常的访问,测试成功。配置VCS的oracle代理 这个过程与DB2的非常相似,唯一的不同在于DB2只有一个主进程工作,监控DB2是否正常工作只需

39、监控这个进程即可。在oracle中有两个进程,一个是数据库运行的主进程,另一个是监控用户请求的进程,两个进程同时工作才能确保oracle的正常运行。所以在oracle代理的配置过程中,需要多添加一个lsnr的资源,用来保证oracle监控进程的正常工作。 配置好的oracle代理结构如图所示:图4,oracle代理的配置结构 按照该图所示,配置oracle代理需要下列资源: NIC:提供oracle相应的网卡; IP:提供oracle服务的IP地址;DiskGroup:共享磁盘组; Volume_data:存放oracle共享数据的卷; Volume_binary:存放oracle程序的卷(如

40、果程序不是放在共享磁盘,该资源可以忽略); Mount_data:数据库共享数据的访问路径; Mount_binary:数据库程序的访问路径(如果程序不是放在共享磁盘,该资源可以忽略); Oracle:监控oracle进程是否正常工作; Netlnsr:监控oracle监听进程是否工作。 在这些资源都配置好之后,打开VCS的图形界面,可以让该服务组执行上线、下线或者切换,这样,VCS就会自动监控oracle的工作情况,并在某台机器发生故障的时候,自动切换到其他节点继续提供服务。这样,oracle的双机配置就完成了。实战:如何用VCS构筑双机的基础【IT168 专稿】前面我们通过系列的文章讲述了

41、用Veritas Cluster Server (VCS)配置DB2双机入门,DB2双机高级配置,以及用VCS配置Oracle双机。通过以上三篇文章,可以快速的使用VCS进行双机配置,但是本文将涉及一些VCS双机软件的工作方式和基础原理,帮助用户更好地了解VCS的工作原理,在使用中可以更为灵活。 参考链接:高手教你用VCS配置DB2双机高手教你用VCS DB2双机高级配置 高手教你用Symantec VCS配置Oracle双机 VCS是一个机群管理软件,最大的特点在于多平台和产品的兼容性,同时也提供了集群环境的全面的可用性管理,降低计划的和非计划的停机时间。集群软件的分类 一般来讲,集群软件分

42、为三种: 高性能集群(High performance cluster,HPC),它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多; 负载均衡集群(Load balance cluster, LBC),它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的相应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能相应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负

43、载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系统的可用性和稳定性。这类集群在网站中使用较多; 高可用性集群(High availability cluster,HAC),它是利用集群中系统 的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用。 VCS是属于其中的高可用性的集群,它能够在最短的时间内保证服务的可用性。对于当机时间有严格要求的需求来说,VCS可以提供良好的服务保证。VCS环境的搭建与逻辑结

44、构 与所有的集群软件一样,VCS需要内部心跳线来通信,监控整个集群中所有节点的状态,为了保证高可用性,一般选择两条心跳线,以免某条网线发生故障影响系统的使用。 心跳线的连接有两种方法,直连或者通过通过交换机连接。如果使用的是交换机连接的方式,需要配置两个交换机分别接在不同的心跳上面。这样可以避免因为交换机故障而破坏系统使用。此外,心跳线使用的网卡最好不是公网网卡,因为心跳信息是每时每刻都要往外面发送数据,如果用公网网卡作为心跳网卡,第一可能会影响公网的使用速率;第二是可能在公网网络中增加了大量的垃圾信息,增加网络负载。 如果需要连接SAN存储,那么光纤卡也是不可或缺的。虽然一般的光纤卡上面都配

45、置有两个光纤口,但是尽快选择两块不同的光纤卡以免单一光纤卡成为了高可用环境的瓶颈所在。 VCS 使用的心跳协议叫做LLT(低延迟传输协议,Low Latency Transport),LLT运行在IP之下。这个协议比IP更快且更可靠。这能确保集群成员保持同步和在集群中能马上联系对方; 在LLT上方的协议是GAB(组成员服务和广播,Group Membership Services/Atomic Broadcast),它负责发送广播,接收集群中所有节点的相应,得出集群中节点的状态信息;它也能接受上层服务的注册,将上层服务发出的命令通过LLT发送到各个节点中去。 HAD(高可用进程, hign a

46、vailability daemon)就是VCS的主要进程,它在gab上注册之后,可以监控管理整个集群中节点的状态。 Agent是veritas提供或者个人用户自己实现的代理,用来实现用户特定的应用。举例来说,oracle服务就可以是一个代理,该代理可以通过监控oracle数据库的进程来判断oracle数据库的运行状态。VCS了解到判断方法后,会通过GAB和LLT服务来监控集群中所有节点上这些进程,从而监控oracle数据库的状态以及切换。 从下图可以看出VCS逻辑结构的关系图:VCS逻辑结构图VCS的使用启动VCS的图形界面,/opt/VRTSvcs/bin/hagui,默认的用户名和密码分

47、别是admin、password,在安装过程中可以选择添加其他的用户。 VCS中有两个概念,一个是服务组(service group),另外一个是资源(resource)。资源是监控的最小单位,可以监控某个特定的硬件或者软件的状态。多个资源可以构成一个服务组,共同监控一个应用的运行。多个组也可以组成一个更大的服务组。 举例说起来比较容易,以oracle应用为例来说明一下: 首先应该创建一个oracle服务组,然后在该组里面添加所需的节点,oracle服务将在这些节点中进行切换,保证服务的高可用性。 另外,如果需要启动oracle,那么至少需要以下资源能够正常工作: 网卡:提供oracle服务所

48、需的IP地址所在的网卡;网卡设置必须指明设备名称;IP地址:提供oracle服务的IP地址必须在该主机上时刻存在;IP地址必须指明IP地址和设备,掩码和广播地址是可选的; 目录1:$ORACLE_HOME所在的目录必须存在;目录必须指明目录名,如果是共享磁盘,还需要指明设备地址和文件系统类型; 目录2:Oracle数据做存放的位置必须存在; Oracle代理:监控oracle进程的存在以及系统表空间可以访问;Oracle代理必须指明SID,数据库的owner,$ORACLE_HOME这些变量; 除此之外,如果oracle数据需要放在共享磁盘上面,那么还要添加磁盘组资源和 卷资源。建立各个资源的

49、依赖关系添加了resource之后还不够,VCS无法了解到用户的具体的需求,所以不能做出合适的判断。这时需要在各个资源直接建立起依赖关系。这个以来关系是很好建立的: Oracle服务的正常使用依赖其他三个资源:IP地址存在,数据库程序所在目录存在和数据库文件所在目的的存在。所以它有三个以来关系,我们可以在VCS中将oracle资源分别与其他的三个资源link起来。 IP资源的存在必须依赖网卡的正常,所以需要将IP资源与网卡资源link起来。 如果oracle文件目录或者数据目录是存放在共享磁盘上,那么该文件目录(mount point)依赖卷,卷依赖与磁盘组,也需要link起来。 这样,如下图

50、所示,所有的资源都有机的联系到一起了,在左边的oracle服务组上点击右键,可以选择oracle online到某一个节点,然后还可以选择从该节点切换(switch to)到其他节点。这样,整个VCS的配置就完成了。实战:巧用磁盘管理工具给oracle提速【IT168 专稿】今天,数据库的使用已经深入到了各个行业的方方面面,随着大型数据库应用的增加,动辄涉及到TB级数据量的存储与读取,数据库的读写效率日益成为整体系统的瓶颈所在。越来越多的系统管理员已经意识到:提高数据库的读写速度,走出海量数据和访问量压力的瓶颈,是提高整体系统的运行效率的关键。 在这里,笔者将向大家介绍使用磁盘管理工具给Ora

51、cle提速的一些方法。当我们希望给Oracle提速的时候,我们首先必须了解在oracle运行过程中,瓶颈来自于哪些方面,我们通过哪些方面去给Oracle提速。瓶颈来自于哪里一、操作系统的单写锁 首先我们知道,Unix系统是一个多用户的操作系统,为了保持文件的一致性,操作系统一般会在某个用户对数据库进行读写操作的时候,为该文件加一个单写锁(single write lock),这样可以避免其它人继续操作这个文件,可以保证数据文件的可靠性。 但是加锁和解锁的过程如此复杂,在获得文件一致性和安全性的同时,牺牲掉了大量的系统性能,有什么办法可以既保证数据库系统的文件一致性,又不致于浪费掉大量的系统性能

52、呢?二、写缓存和磁盘读写 我们知道,在数据库的数据在读写的时候,首先都需要经过缓存,缓存命中率对于数据库的读写效率起着至关重要的作用。那么我们如何提高缓存的命中率呢? 一般数据库在读写的时候都会保存一份cache,然而文件系统在读写系统文件的时候也会生成一份cache,这样缓存中就会留有冗余的数据,影响缓存使用的利用率。我们怎样消除缓存中这部分冗余的数据呢?三、提高磁盘读写效率 在Oracle 9i版本以后,Oracle本身都自带有磁盘管理组件(Oracle disk manager)来管理数据文件,提高I/O吞吐量,不过本文将为大家介绍另外一种磁盘管理工具,能够进一步优化磁盘数据结构,提高数

53、据吞吐量。大家有兴趣,可对两种系统优化工具进行一下对比测试。优化磁盘文件系统和数据分布 由于数据库的读写与磁盘文件系统、数据分布等等规则密切相关,我们可以使用一些磁盘管理工具来优化磁盘的文件系统和数据分布规则。 对于Unix系统的单写锁问题造成数据库读写效率低下的情况,我们知道,为了提高读写速度,Unix操作系统在提供单写锁功能的同时,还提供了异步读写(asynchronous I/O)和直接读写(direct I/O)的API,允许应用程序不加锁的写入文件。因此,一些磁盘管理工具软件可以利用这个特点, 让数据库文件跳过这些单写锁,按照裸设备的读写方式写这些文件,从而提高数据库的读写性能。 同

54、时,大多数磁盘管理工具都能够自动监控数据读写存取的频度,选择将一些读写频繁的数据文件直接加载到内存中,这样,磁盘管理工具软件能保证读出和写入这些文件,整个过程对于Oracle是完全透明的。 笔者在这里将以2个2000行的相同的数据库更新来进行测试,以Vetitas storage foundation为例,来测试Veritas Storage Foundation对Oracle数据库的提速效果。Quick I/O系统优化实例介绍 Veritas Storage Foundation本身是一个管理软件的套件,其中的Quick I/O与cache I/O功能组件能够分别解决单写锁和缓存命中率问题。利用Quick I/O这个特性来读写文件,需要将VxFS文件系统的文件转换成Quick IO文件,然后storage foundation才能减少这些文件的读写的锁

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论