RHCS+Oracle配置实战图解.docx

上传人:b****8 文档编号:9871219 上传时间:2023-02-07 格式:DOCX 页数:55 大小:538.07KB
下载 相关 举报
RHCS+Oracle配置实战图解.docx_第1页
第1页 / 共55页
RHCS+Oracle配置实战图解.docx_第2页
第2页 / 共55页
RHCS+Oracle配置实战图解.docx_第3页
第3页 / 共55页
RHCS+Oracle配置实战图解.docx_第4页
第4页 / 共55页
RHCS+Oracle配置实战图解.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

RHCS+Oracle配置实战图解.docx

《RHCS+Oracle配置实战图解.docx》由会员分享,可在线阅读,更多相关《RHCS+Oracle配置实战图解.docx(55页珍藏版)》请在冰豆网上搜索。

RHCS+Oracle配置实战图解.docx

RHCS+Oracle配置实战图解

12.6.3RHCS+Oracle配置实战图解

(1)

 2010-06-1815:

52 何世晓/杜朝辉 清华大学出版社 我要评论(0)

∙摘要:

《Linux系统案例精解》第12章Linux集群服务的安装部署,本章将通过Oracle在Linux中的高可用集群安装部署,以及Apache在Linux下的负载均衡部署来进行实例讲解,深入浅出地阐述集群概念,希望能解决Linux管理员遇到的实际问题。

本节为大家介绍RHCS+Oracle配置实战图解。

∙标签:

Linux  Linux系统案例精解

12.6.3 RHCS+Oracle配置实战图解

(1)

在RHCS中,最难理解的是Fence机制,下面的配置过程将首先以"手动Fence"为例进行讲解,以更深入地描述Fence在集群运行过程中的运行步骤及作用,最后再换成真实的Fence设备。

需要注意的是,虽然通过"手动Fence"可以完整地配置RHCS,但在生产环境中不推荐这样做,因为一旦出现硬件级故障的话,"手动Fence"需要管理员通过人工干预方式进行系统切换。

1.安装红帽集群套件RHCS

安装RHCS主要有以下3个途径:

通过RHEL5AP高级平台版介质进行安装,并在安装过程中输入通过网站激活后得到的InstallNumber,选中相应的"Cluster(集群)"组件。

通过RHCSS(RedHatClusterSolutionSuite,红帽集群解决方案套件)的安装光盘进行安装,RHCSS的好处是已经附带了多种流行数据库的支持接口,并可以提供磁盘镜像(Mirro)及企业系统备份功能。

注意:

购买RHCSS订阅时就已经包括了上门安装服务,会有专人为客户进行生产环境下的安装配置。

通过RHEL5AP高级平台版介质进行手动安装,将安装介质挂载到/media/cdrom,然后进行以下操作:

(1)建立文件/etc/yum.repos.d/mycdrom.repo,内容如下:

1.[Base] 

2.name=RHEL5 ISO Base 

3.baseurl=file:

///media/cdrom/Server 

4.enabled=1 

5.gpgcheck=0 

6.[Cluster] 

7.name=RHEL5 ISO Cluster 

8.baseurl=file:

///media/cdrom/Cluster 

9.enabled=1 

10.gpgcheck=0 

(2)执行yum命令进行集群组件的安装:

1.# yum install cman rgmanager system-config-cluster luci ricci 

2.红帽集群套件RHCS配置前的准备

在两台服务器中分别安装RHCS,并按照表12-1所示配置服务器。

表12-1 RHCS集群配置说明

Server1

Server2

hostname(/etc/sysconfig/hostname)

/etc/hosts

127.0.0.1localhost.localdomainlocalhost

192.168.100.11server1

192.168.100.12server2

Fence设备(例如通过IBM服务器的RSAII接口

实现Fence功能,如果没有此类设备则可以跳过)

192.168.100.21/24

Account:

USERID

Password:

PASSW0RD

这里的0为“零”

192.168.100.22/24

Account:

USERID

Password:

PASSW0RD

这里的0为“零”

eth0(用于内部网,作为心跳)

192.168.100.11/24

192.168.100.12/24

eth1(用于外部网,提供服务,与将要设置的虚拟IP在同一网段)

192.168.101.11/24

192.168.101.12/24

网络连接

连接方案1:

两台服务器的Fence设备及

eth0、eth1连接到同一网络中

连接方案2:

两台服务器的Fence设备及eth0

连接到同一私有网络中,eth1与外网相连

Oracle安装

ORACLE_HOME:

/u01/app/oracle/product/10.2.0/db_1

ORACLE_SID:

TESTDB

Oracle数据目录(DatabaseArea)

OracleDatabaseArea:

/u02/oradata

两个服务器通过命令fdisk-l,可以看到

相同的外部存储磁盘,如/dev/sdc

在/dev/sdc中建立ext3文件系统,并挂载到

目录/u02中,将Oracle数据安装到/u02/oradata

由于数据存放在外部存储中,因此系统进行

Failover切换后数据不会丢失,保证了数据的一致性

具体的Oracle安装步骤请参考本书第11章内容

3.通过system-config-cluster配置RHCS

打开一个终端并通过root用户身份运行命令system-config-cluster,或通过"系统"|"管理"|"服务器设置"|"system-config-cluster"来打开集群配置界面。

建立新集群

建立一个新的集群,命名为"new_cluster"。

请注意:

集群的名称要求少于16个字符,否则集群启动时会出现问题,如图12-3所示。

对于双节点的集群来说,"CustomConfigureMulticast"和"UseaQuorumDisk"都可以不作设置。

CustomConfigureMulticast:

用于指定一个用于本集群的多播地址。

UseaQuorumDisk:

当多个节点要求仲裁机制时,指定仲裁策略。

在实际应用中,超过两个节点的集群应用相对还是比较少,因此本书只涉及到RHCS双节点的配置。

有兴趣了解"QuorumDisk"的读者可以参考红帽公司的官方文档。

添加节点

(1)在图12-4左边的树状目录中选中"ClusterNodes",单击"AddaClusterNode"添加集群节点。

(2)在"NodeProperties"窗口中填入两个节点的机器名,分别为和,如图12-5所示。

此处不但添加了节点,还同时指定了集群的"心跳"。

由于在/etc/hosts中已经指定了两个节点名称对应的IP分别为192.168.100.11和192.168.100.12,因此两台服务器通过此网络接口对连即可成为"心跳线"。

 

图12-3 新建集群

 

(点击查看大图)图12-4 添加集群节点

12.6.3 RHCS+Oracle配置实战图解

(2)

添加Fence设备

(1)在图12-4左边的树状节点中选中"FenceDevices",单击"AddaFenceDevice"打开Fence配置窗口。

(2)在"AddaNewFenceDevice"下拉菜单中选中"ManualFencing"以手动Fencing。

(3)在"Name"处为Fence设备自定义一个名称,如"m_fencing",如图12-6所示。

 

图12-5 加入节点

 

图12-6 添加手动Fence设备

节点与Fence设备绑定

(1)在图11-7左边的树状目录中选中"",单击"ManageFencingForThisNode"。

(2)为节点添加一个"FenceLevel"(注:

为进一步保证集群"脑裂"时的有效切换,RHCS允许对一个节点添加多个Fence设备并建立分级的Fence操作)。

 

(点击查看大图)图12-7 为节点添加FenceLevel

(3)选中"Fence-Level-1",单击"AddaNewFencetothisLevel",在"FenceProperties"窗口的"AddaNewFence"下拉菜单中选择刚才建立的名为"m_fencing"的设备,如图12-8所示。

 

图12-8 指定FenceLevel使用的Fence设备

(4)在节点上重复以上步骤,将其与名为"m_fencing"的设备绑定。

新建FailoverDomain

(1)在图12-4左边的树状目录中选中"FailoverDomains",单击"CreateaFailoverDomain"。

(2)在"NamefornewFailoverDomain"文本框中指定自定义的FailoverDomain名称,如ora_domain,如图12-9所示。

 

图12-9 新建FailoverDomain

(3)通过"AvailableClusterNodes"下拉菜单将及server2.加入到当前的FailoverDomain中,如图12-10所示。

RestrictFailoverToThisDomainsMembers:

指派给这个FailoverDomain的Service只可以在当前加入的成员上执行;如果不选此项,Service将允许在本集群中的任何节点进行Failover切换。

为保证系统的严谨性,建议选中此项。

PrioritizedList:

用于调整FailoverDomain中节点的优先级别,指定Service优先在哪个节点中运行。

(注:

对于双节点情况,如果,两台服务器的性能相同,那么一般不需要设置它们的优先关系,先启动服务器为主服务器,后启动的的为备用服务器。

当主服务器出现故障,备用服务器进行Service接管后,即使主服务器通过检修重新加入集群,由于主/备服务器性能相同,因此没有必要再浪费时间进行Service切换)

添加Resource-IPAddress

(1)在图12-4左边的树状目录中选中"Resources",单击"CreateaResource"。

(2)在"SelectaResourceType"下拉菜单中选中"IPAddress"并填入IP地址,如192.168.101.10,如图12-11所示。

此地址就是上面提到的"虚拟IP",对于每一个通过网络进行连接的Service来说,都要求至少有一个独立的"虚拟IP"。

 

图12-10 为FailoverDomain添加节点

 

图12-11 添加IPAddress资源

12.6.3 RHCS+Oracle配置实战图解(3)

添加Resource-FileSystem

(1)在图12-4左边的树状目录中选中"Resources",单击"CreateaResource"。

(2)在"SelectaResourceType"下拉菜单中选中"FileSystem",并按图12-12所示指定文件系统资源的名称、文件系统类型、挂载点及使用的磁盘设备。

Options:

执行mount指令时的特殊参数,与mount指令的"-o"参数相同。

FileSystemID:

RHCS中要求每个FileSystem都有一个唯一的ID号,此项一般不用指定,系统会自动进行分配。

Forceunmount-一旦服务要求切换,在进行umount操作时使用-f参数

Reboothostnodeifunmountfails-若umount失败,则尝试对此系统进行重启操作。

Checkfilesystembeforemounting-挂载文件系统前通过fsck命令对文件系统进行检查,这可以更好地保证文件系统的完整性,但对于大文件系统来说,这将花费很长的时间。

添加Resource-Script

(1)在图12-4左边的树状目录中选中"Resources",单击"CreateaResource"。

(2)在"SelectaResourceType"下拉菜单中选中"Script",为此资源定义一个"Name"为ora_script、以/etc/init.d/dbora为脚本文件的Scrgt资源,如图12-13所示。

/etc/init.d/dbora是一个用于对Oracle进行启动(start)、停止(stop)及状态检查(status)的脚本,RHCS要求每个脚本都支持这3种参数操作,并根据应用的实际运行情况返回"0(表示正常)"或"非0(表示运行异常)"。

RHCS就是靠这些参数及返回值来判断应用程序运行得正常与否,以保证当应用软件由于自身或其他原因而导致异常时进行Failover切换(本书将在后面的章节中为读者详细分析/etc/init.d/dbora脚本的运行过程)。

 

图12-12 添加FileSystem资源

 

图12-13 添加Script资源

建立Service

(1)在图12-4左边的树状目录中选中"Services",单击"CreateaService",新建一个名为ora_serivce的服务,如图12-14所示。

 

图12-14 新建Service

(2)在"ServiceManagement"窗口的"FailoverDomain"中选择之前建立的ora_domain,此窗口用于指定FailoverDomain与Service之间的关系,以及Service与Resrouces之间的关系,是集群配置中最重要的一环。

(3)单击"AddSharedResourcetothisservice",在列表框中选择之前建立的IPAddress资源:

192.168.101.10。

单击"OK"按钮,使之添加到本Service的资源列表中,如图12-15所示。

也可以通过"Createanewresourceforthisservice"建立对应本Service的私有资源属性,这些属性将不可以再在其他Service中使用。

有些资源要求体现出一定的层次关系,如:

通常系统都要求确认虚拟IP及文件系统都已经正常连接及挂载后,才可以运行某个应用程序,这个顺序一旦调转,将会使应用程序运行出错。

通过选中"192.168.101.10 IPAddress Shared",然后单击"AttachaSharedResourcetotheselection"可以将其他共享资源添加为此资源的子项,以实现顺序地启动及关闭,如图12-16所示。

 

(点击查看大图)图12-15 向Service加入IPAddress资源

 

(点击查看大图)图12-16 向IPAddress加入下级资源

(4)在列表框中选择之前建立的名为ora_fs的FileSystem资源,单击"OK"按钮将它加入为IPAddress的下级资源,如图12-17所示。

 

(点击查看大图)图12-17 向IPAddress加入下级FileSystem资源

(5)选中"ora_fs FileSystem Shared",然后单击"AttachaSharedResourcetotheselection",将ora_script加入,作为它的子资源,如图12-18所示。

 

(点击查看大图)图12-18 向FileSystem加入下级Script资源

12.6.3 RHCS+Oracle配置实战图解(4)

至此,资源添加完成,服务启动时将先尝试对IP进行接管,然后尝试挂载文件系统,最后运行应用所需的脚本中的start方法,如/etc/init.d/dborastart。

如果这3个资源均被正常启动,则服务启动成功;否则,任何一个资源启动异常,都将导致服务起动失败。

此时RHCS会尝试在FailoverDomain中的其他节点启动服务。

同理,停止服务是启动顺序的反过程:

先通过脚本中的stop方法停止应用,然后卸载文件系统,最后清除IP。

RecoveryPolicy:

指定进行切换时所使用的策略,通过RHCS的rgmanager可以在运行时对服务中的各个资源进行检测,一旦检查到某个资源的status操作发生异常,就按照此策略进行操作。

Restart-如果发现资源出现异常,则先在本地尝试重启服务,如果重启失败则执行Relocate操作。

Relocate-停止当前节点中与本服务相关的所有资源,由另一台服务器进行服务及资源的接管。

Disable-在所有节点中停止服务,不进行任何操作。

一般建议在测试环境中使用"Relocate",因为这样可以很好地展示系统切换的过程;在生产环境中则建议使用"Restart",因为有不少异常通过本地重启服务是可以解决的,这样可以最大限度缩短系统切换所消耗的时间。

其他选项:

AutostartThisService-rgmanager启动时自动启动此Service。

RunExclusive-指定此Service以独占方式运行,一旦此Service运行在某个服务器之上,集群就将拒绝其他的Service在此服务器上运行。

完成后的集群如图12-19所示。

 

(点击查看大图)图12-19 完成后的集群效果

保存配置文件

通过File|Save,保存配置文件为/etc/cluster/cluster.conf。

4.Oracle集群脚本讲解

以下是一个用于在RHCS中实现Oracle启停及状态管理的脚本,使用时请对应实际环境自行修改ORACLE_HOME、ORACLE_SID等参数。

另外,此脚本只作为学习及练习的参考,不能保证在生产环境上的运行稳定性。

1.#!

/bin/bash 

2.# 

3.# /etc/init.d/dbora 

4.# 

5.# chkconfig:

 2345 02 98 

6.# description:

 oracle is meant to run under Linux Oracle Server 

7.# Source function library. 

8.. /etc/rc.d/init.d/functions 

9. 

10.ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 

11.ORACLE_SID=TESTDB 

12.ORACLE_NAME=oracle 

13.LOCKFILE="$ORACLE_HOME/.oracle.lock" 

14.RESTART_RETRIES=3 

15.DB_PROCNAMES="pmon" 

16.LSNR_PROCNAME="tnslsnr" 

17. 

18.#RETVAL=0 

19.#Start the oracle Server 

20. 

21.#The following command assumes that the oracle login will not prompt the password 

22.start() { 

23. 

24.        echo  "Starting Oracle10g Server... " 

25.        tmpfile=/home/oracle/'basename $0'-start.$$ 

26.        logfile=/home/oracle/'basename $0'-start.log 

27.        # 

28.        # Set up our sqlplus script.  Basically, we're trying to  

29.        # capture output in the hopes that it's useful in the case 

30.        # that something doesn't work properly. 

31.        # 

32.        echo "startup" > $tmpfile 

33.        echo "quit" >> $tmpfile 

34. 

35.        su - $ORACLE_NAME -c "sqlplus \"/ as sysdba\" < $tmpfile &> $logfile" 

36.        if [ $?

 -ne 0 ]; then 

37.                echo "ORACLE_HOME Incorrectly set?

38.                echo "See $logfile for more information." 

39.                return 1 

40.        fi 

41. 

42.        #  

43.        # If we see:

 

44.        # ORA-.....:

 failure, we failed 

45.        # 

46.        rm -f $tmpfile 

47.        grep -q "failure" $logfile 

48.        if [ $?

 -eq 0 ]; then 

49.                rm -f $tmpfile 

50.                echo "ORACLE_SID Incorrectly set?

51.                echo "See $logfile for more information." 

52.                return 1 

53.        fi 

54. 

55.         echo "Starting listern..." 

56.         ((su - $ORACLE_NAME -c "$ORACLE_HOME/bin/lsnrctl start") >> $logfile  

57.2>&1) || return 1 

58.         #return $?

 

59.        if [ -n "$LOCKFILE" ]; then 

60.                touch $LOCKFILE 

61.        fi 

6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1