分享

使用 CRS 在同一集群上配置 Oracle9i RAC 和 Oracle RAC 10g

 定义幸福 2011-01-22

使用 CRS 在同一集群上配置 Oracle9i RAC 和 Oracle RAC 10g
作者:Ashok Singh,Fastenal Corp 的数据库管理员。

发布日期:2005 年 3 月

Oracle 数据库 10g 包含许多增强功能,但最值得注意的功能之一是 Oracle 集群就绪服务 (CRS) 的引入,它是 Oracle 的整套集群件。

Oracle CRS 是 Oracle 自身的集群件,它与 Oracle 真正应用程序集群 (RAC) 紧密互补。必须在安装 RAC 之前安装 CRS。它还可以在任何第三方集群软件上工作,但已经不再要求购买和部署这些软件。

简而言之,Oracle CRS 用途为通过集群就绪服务后台程序 (CRSD)、Oracle 集群同步服务器后台程序 (OCSSD) 和事件管理器后台程序 (EVMD) 来管理 Oracle RAC 的高可用性 (HA) 体系结构。CRSD 通过启动、停止和故障切换应用程序资源以及在 Oracle 集群注册表 (OCR) 中维护配置文件和当前状态来管理 HA 功能,而 OCSSD 通过使用表决磁盘来管理参与的节点。OCSSD 还通过强制性计算机重启来防止由“裂脑”而导致的可能的数据损坏。

尽管 Oracle CRS 取代了 Oracle9i RAC 中的 Oracle 集群管理器 (ORACM),但它仍然支持全局服务后台程序 (GSD),后者在 Oracle9i 中用于与 RAC 数据库进行通信。在 Oracle 10g 中,GSD 的唯一用途是为 Oracle9i 客户端(如 SRVCTL、数据库配置助手以及 Oracle 企业管理器)提供服务。从经济的角度来看,这是非常好的,因为您不必再购买新的客户端许可证和硬件来支持 Oracle10g 数据库。

本文要介绍的重要好处是 Oracle9i (9.2.0.4) RAC 客户可以使用他们现有的开发实例在相同的集群节点组上安装和评估 Oracle RAC 10g—这将有助于进行移植工程。

在本技术说明中,我将逐步介绍如何使用 Oracle 集群文件系统 (OCFS) 版本 1 以及用于 Oracle 集群注册表 (OCR) 和表决磁盘的原始设备在双节点 Linux (Red Hat Enterprise Linux 3 U2) 集群上实现这样一个配置。(注意,Oracle 建议您实施配置时采用顺序为 Oracle 自动存储管理、OCFS、NFS 和原始设备。)

还需要指出的是,此实现对于 Linux 和 Windows 平台的适用性要高于 Unix 平台,这是因为后者并不受益于 Oracle9i 中的 ORACM。只有在使用 Oracle CRS 时,才不需要供应商特定的集群件。

第 1 步:启动 ORACM
应在所有节点上启动并运行 ORACM,但为了便于安装,最好关闭所有节点上的所有数据库和监听器。请注意,如果您忘记在所有节点上启动 ORACM 进程,则必须取消安装 CRS 并在启动 ORACM 后重新安装。

第 2 步:创建一个新的 VIP 和 CRS 根目录
配 置中所需的唯一更改是为 CRS 安装添加一个虚拟 IP 地址 (VIP) 和新的根目录。VIP 在 /etc/hosts 文件或 DNS(建议使用它)中配置,并使用逻辑公共 IP 地址。CRS 使用它来管理故障切换。(有关 RAC 中的 VIP 配置的更多信息,请参阅 MetaLink 注释 264847。)

环境变量 $ORA_CRS_HOME 应指向 ORACLE_HOME 以外的目录。安装程序将把 CRS 的所有二进制文件安装到此目录中。可以按如下所示对它进行设置:

export ORACLE_HOME==/oracle/app/oracle/product/10g
export ORA_CRS_HOME=/oracle/app/orausr/product/10g/crs

安装 CRS 时请务必将安装程序中的根目录位置更改为指向 $ORA_CRS_HOME!

第 3 步:为 OCR 和表决磁盘创建原始设备
开始安装 CRS 之前,需要为 OCR 和表决磁盘创建原始设备。这些原始设备必须位于集群的所有节点都可以访问的共享设备上。

OCR 和表决磁盘的建议大小分别为 100MB 和 20MB。如果决定使用原始设备,则在执行下列命令创建和初始化原始设备之前,请将它们的所有权由 root 更改为 oracle。

% dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=25600 
% dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=2560

% ln -s /dev/raw/raw1 /usr01/oradata/WMST/ocr.dbf
% ln -s /dev/raw/raw2 /usr01/oradata/WMST/voting.dbf

如果选择直接在 OCFS 而非原始设备上安装 CRS(这是 Oracle 的建议做法),则此过程甚至更为简单。当安装程序提示您提供 OCR 和 voting 磁盘的详细信息时,您只需提供共享文件位置(假设已经安装并配置了 OCFS):

Eg   Specify OCR location     :/usr01/oradata/WMST/ocr.dbf 
(when prompted by the installer )

在分区上创建文件系统并将它安装到 /usr01 上之后,从集群的所有参与节点上,使用同一设备通过 ocfstool 将此分区安装到相同的安装点上。

第 4 步:安装 CRS
我们现在可以开始进行安装了。如果正确完成了上述配置,则安装过程将非常快速,10 分钟内就可在所有节点上完成。

安装完成后,在所有节点上执行 root.sh;此过程将显示 CRS 所需的所有后台程序(crsd、ocssd、evmd 等)。它还将运行虚拟 IP 配置助手,虚拟 IP 配置助手只在第一个需要 VIP 的集群节点上作为 GUI 执行。此脚本还将在 /etc/inittab 中生成条目,以便 CRS 在系统每次重新启动时自动启动。

此时,CRS 已经完全安装并可以正常工作。以下每个命令将输出 10 行以上信息,用于确认 CRS 正在正常运行。还将自动启动 GSD(它只由 Oracle9i RAC 使用)。

% ps -ef --cols 500 |grep ocssd.bin
% ps -ef --cols 500 |grep crsd.bin
% ps -ef --cols 500 |grep evmd.bin

由于了解 CRS 的内部机制需要很深的概念知识,因此有关所有这些后台程序的功能的详细信息超出了本文讨论范畴。请不要终止这些后台程序,因为这样做将自动重新启动计算 机,这一点不用多说,您也会清楚。建议的 CRS 启动方法是重新启动计算机,但您还可以使用以下命令停止和启动所有服务:

% crs_stop -all (as oracle) 
% init.crs stop (as root)

% init.crs start
% crs_start -all

如果必须重新安装 CRS,请执行 MetaLink 注释 239998.1 中描述的步骤。

第 5 步:安装二进制文件
现在,请准备安装用于创建 Oracle 10g 数据库的二进制文件。Oracle 10g DBCA 的执行毫无差错;如果数据库是使用 DBCA 创建的,则安装程序将在 OCR 中注册数据库。(否则,您将必须使用 srvctl 手动在 OCR 中注册服务。)由于在安装 CRS 之前我们已经停止了监听器在 Oracle9i 根目录中的运行,因此还将使用缺省 1521 端口自动配置监听器。

此时,如果您执行 crs_stat,它将提输出以下内容:

NAME=ora.WMST.WMST1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1

NAME=ora.WMST.WMST2.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2

NAME=ora.WMST.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2

NAME=ora.racnode1.LISTENER_RACNODE1.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1

NAME=ora.racnode1.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1

NAME=ora.racnode1.ons
TYPE=application
TARGET=OFFLINE
STATE=OFFLINE

NAME=ora.racnode1.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode1

NAME=ora.racnode2.LISTENER_RACNODE2.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2

NAME=ora.racnode2.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2

NAME=ora.racnode2.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2

NAME=ora.racnode2.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on racnode2

在执行进一步操作之前,state 和 target 应匹配。如果要停止和启动这些资源,请分别使用 crs_stop -allcrs_start -all。从一个节点执行它们将影响到所有节点。

第 6 步:配置 OCR
接下来,请将环境更改为 Oracle9i RAC。我们现在准备使用 srvctl 在 OCR 中注册 Oracle9i 数据库。

%  srvctl -V
srvctl version: 9.2.0.1.0

% srvctl config
WMST ?10g instance

% srvctl add database -d WMSN -o $ORACLE_HOME
% srvctl add instance -d WMSN -i WMSN1 -n racnode1
% srvctl add instance -d WMSN -i WMSN2 -n racnode2
% srvctl config
WMST ?10g Database
WMSN ?9i Database

要将环境更改为 Oracle 10g,请执行以下命令:

%  srvctl -V
srvctl version: 10.1.0.2.0
% srvctl config
WMST
WMSN

请注意,尽管在 OCR 中注册了不同的数据库,但要使用 srvctl 管理它们,您必须移动到它们各自的根目录。

第 7 步:了解 OCR

请执行以下命令以获取 OCR 的详细信息。

% ocrcheck

Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 200660
Used space (kbytes) : 3608
Available space (kbytes) : 197052
Cluster registry integrity check succeeded

或者,可以 root 的身份使用 ocrdump 命令转储 OCR 的内容。

% cd $ORA_CRS_HOME/bin
% ocrdump ${HOST}_OCRDUMP

转储文件是用 ocrdump 所在的同一目录中的数千行代码编写的。随后,您可以使用任何文本编辑器打开此文件并搜索所需的字符串。还可以对此文件执行 grep 命令,以确认 srvctl 是否将所请求的有关任何资源的信息写入到注册表中。

% cat racnode1.dump |grep WMST |wc -l
179

此命令确认 srvctl 已经写入与 WMST 相关的 OCR 信息。

配置现已完成。至此,您可能已经体验了 OCR 的某些特性。例如,CRSD 后台程序定期备份 OCR(时间间隔为四个小时),您可以使用这些备份恢复丢失的 OCR(它是一个重要文件,必须防止其出现介质故障)。要查找备份,请使用以下命令:

% ocrconfig -showbackup 

racnode1x 2005/02/17 13:21:47 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/17 09:21:45 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/17 05:21:44 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/15 21:21:40 /oracle/app/orausr/product/10g/crs/cdata/crs
racnode1x 2005/02/04 13:21:01 /oracle/app/orausr/product/10g/crs/cdata/crs

备份的位置为 $ORA_CRS_HOME/cdata/<集群名称>;集群名称在安装时提供。备份只在当前为主节点的节点上执行。它在给定时间段中保留多个备份副本(如以下输出所示)。

% ls -alt /oracle/app/orausr/product/10g/crs/cdata/crs

-rw-r----- 1 root root 5664768 Feb 17 13:21 backup00.ocr
-rw-r----- 1 root root 5664768 Feb 17 09:21 backup01.ocr
-rw-r----- 1 root root 5664768 Feb 17 05:21 backup02.ocr
-rw-r----- 1 root root 5664768 Feb 16 21:21 day_.ocr
-rw-r----- 1 root root 5664768 Feb 15 21:21 day.ocr
-rw-r----- 1 root root 5664768 Feb 11 13:21 week_.ocr
-rw-r----- 1 root root 5566464 Feb 4 13:21 week.ocr

恭喜您!您已经使用 Oracle CRS 在同一集群上安装了 Oracle9i RAC 和 Oracle RAC 10g

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多