在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(11)

在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(11)  

在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(11)
(2007-10-16 18:01:15)
在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(11) - 轩辕剑 - 摸索着前进总比原地踏步好转载
var $tag=''; var $tag_code='c7043de167599596b117b3ba8bbc124a'; var $r_quote_bligid='4cbd76e501000b3c'; var $worldcup='0'; var $worldcupball='0'; 分类: oracle_rac


 19. Oracle10g 第 2 版安装前的准备工作

在集群中的两个 Oracle RAC 节点上执行以下检查!

安装 Enterprise Linux 时,您应验证已安装了 Oracle 所需的所有 RPM。如果您遵循我所提供的 Enterprise Linux 安装指导,则已经安装了所有内容,这时您将拥有所有必需的 RPM 程序包。但如果您执行了其他安装类型(即,高级服务器),则可能缺少某些程序包并需要安装它们。所有必需的 RPM 都位于 Enterprise Linux CD/ISO 上。

下一个安装前步骤是运行集群验证实用程序 (CVU)。CVU 是 Oracle 集群件安装介质上提供的一个命令行实用程序。它负责执行各种系统检查,以协助您确认 Oracle RAC 节点针对 Oracle 集群件和 Oracle 真正应用集群安装进行了正确的配置。CVU 只需从您将从其中执行 Oracle 安装的节点(本文中为 linux1)运行即可。

检查必需的 RPM

以下是必须安装的程序包(请记住您的 Linux 版本号可能略有不同):

binutils-2.15.92.0.2-22 compat-db-4.1.25-9 compat-gcc-32-3.2.3-47.3 compat-gcc-32-c++-3.2.3-47.3 compat-libstdc++-33-3.2.3-47.3 compat-libgcc-296-2.96-132.7.2 control-center-2.8.0-12.rhel4.5 cpp-3.4.6-8.0.1 gcc-3.4.6-8.0.1 gcc-c++-3.4.6-8.0.1 glibc-2.3.4-2.36 glibc-common-2.30.4-2.36 glibc-devel-2.3.4-2.36 glibc-headers-2.3.4-2.36 glibc-kernheaders-2.4-9.1.100.EL gnome-libs-1.4.1.2.90-44.2 libaio-0.3.105-2 libstdc++-3.4.6-8.0.1 libstdc++-devel-3.4.6-8.0.1 make-3.80-6.EL4 openmotif-2.2.3-10.1.el4 openmotif21-2.1.30-11.RHEL4.6 pdksh-5.2.14-30.3 setarch-1.6-1 sysstat-5.0.5-14.rhel4 xscreensaver-4.18-5.rhel4.13.0.1

注意,openmotif RPM 程序包只在安装 Oracle 演示时需要。本文不包括 Oracle 演示的安装。

要查询程序包信息(例如,gcc 和 glibc-devel),使用“rpm -q <程序包名> [, <程序包名>]”命令,如下所示:

# rpm -q gcc glibc-devel gcc-3.4.6-8.0.1 glibc-devel-2.3.4-2.36
如果需要安装以上任意程序包,使用“rpm -Uvh <程序包名.rpm>”。例如,要安装 GCC gcc-3.4.6-8.0.1 程序包,使用:
# rpm -Uvh gcc-3.4.6-8.0.1.i386.rpm 

使用集群验证实用程序的先决条件


JDK 1.4.2

必须先在系统上安装 JDK 1.4.2,然后才可以运行 CVU。如果系统上没有安装 JDK 1.4.2,则在尝试运行 CVU 时,您将收到一个类似下面的错误消息:


ERROR.Either CV_JDKHOME environment variable should be set or /stagepath/cluvfy/jrepack.zip should exist.

如果没有安装 JDK 1.4.2,请从 Sun 网站下载该软件并使用 Sun 的说明进行安装。以下网站提供有 JDK 1.4.2 下载:http://www.sun.com/java

如果安装了 JDK 1.4.2,那么您必须定义到 JDK 的路径的用户环境变量 CV_JDKHOME。例如,如果 JDK 1.4.2 安装在 /usr/local/j2re1.4.2_08 中,那么以您计划用于运行 CVU 的用户身份登录并输入以下命令:

CV_JDKHOME=/usr/local/j2re1.4.2_08 export CV_JDKHOME

安装 cvuqdisk RPM(仅适用于 RHEL 用户)

运行 CVU 的第二个先决条件是针对 Red Hat Linux 用户的。如果运行的是 Red Hat Linux,则必须下载 Red Hat 操作系统程序包 cvuqdisk 并将其安装到集群中的两个 Oracle RAC 节点上。这意味着您将需要在 linux1linux2 上安装 cvuqdisk RPM。如果没有 cvuqdisk,CVU 将无法发现共享磁盘,您在运行 CVU 时会收到错误消息“Package cvuqdisk not installed(程序包 cvuqdisk 未安装)”。

cvuqdisk RPM 可在 rpm 目录中的 Oracle 集群件安装介质中找到。考虑到本文的目的,将 Oracle 集群件介质解压缩到 linux1 上的 /u01/app/oracle/orainstall/clusterware 目录。注意,在安装 cvuqdisk RPM 之前,我们需要设置名为 CVUQDISK_GRP 的环境变量,使其指向将要拥有 cvuqdisk 实用程序的组。默认的组是 oinstall,这不是本文中我们用于 oracle UNIX 用户帐户的组。因为我们使用的是 dba 组,所以需要在尝试安装 cvuqdisk RPM 之前设置 CVUQDISK_GRP=dba

linux1 中找到 cvuqdisk RPM 并将其复制到 linux2,然后在两个 Oracle RAC 节点上执行以下步骤进行安装:

$ su - # cd /u01/app/oracle/orainstall/clusterware/rpm # CVUQDISK_GRP=dba; export CVUQDISK_GRP # rpm -iv cvuqdisk-1.0.1-1.rpm                                                      ls -l /usr/sbin/cvuqdisk -rwsr-x--- 1 root dba 4168 Jun 2 2005 /usr/sbin/cvuqdisk

验证远程访问/用户等效性

应该从 linux1(我们将在该节点运行所有的 Oracle 安装)运行 CVU。运行 CVU 之前,以 oracle 用户帐户登录并验证已针对集群中的所有节点配置了远程访问/用户等效性。使用安全 shell 方法时,需要首先在终端 shell 会话上启用用户等效性然后再尝试运行 CVU。要为当前的终端 shell 会话启用用户等效性,请执行以下步骤(记住为每个键输入在提示时生成的通行短语):

# su - oracle $ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add Enter passphrase for /u01/app/oracle/.ssh/id_rsa:xxxxx Identity added:/u01/app/oracle/.ssh/id_rsa (/u01/app/oracle/.ssh/id_rsa) Identity added:/u01/app/oracle/.ssh/id_dsa (/u01/app/oracle/.ssh/id_dsa)

在使用远程 shell 方法时,一般在 oracle 用户帐户的 /etc/hosts.equiv 文件中定义用户等效性,并在所有新终端 shell 会话上进行启用。


利用 CVU 检查 CRS 的安装前任务

满足了所有使用 CVU 的先决条件后,我们首先以“oracle”用户帐户(启用了用户等效性)从 linux1 运行以下命令,以检查 Oracle 集群件 (CRS) 的所有安装前任务是否完成:

$ cd /u01/app/oracle/orainstall/clusterware/cluvfy $ ./runcluvfy.sh stage -pre crsinst -n linux1,linux2 -verbose 

查看 CVU 报表。注意,报告中几个可以忽略的错误。

第一个错误有关“oinstall”组 [作为基本组] 中的用户“oracle”的成员资格。考虑到本文的目的,“oracle”用户帐户只能分配给“dba”组,因此可以忽略该错误,没什么问题。

第二个错误与为 VIP 查找一组适合的接口有关。这是 Metalink 说明 338924.1 中的一个错误文件:


Suitable interfaces for the private interconnect on subnet "192.168.2.0": linux2 eth1:192.168.2.101 linux1 eth1:192.168.2.100 ERROR: Could not find a suitable set of interfaces for VIPs. Result:Node connectivity check failed.

如说明中所述,可以忽略该错误,没什么问题。

最后一组可忽略的错误与处理 RHEL4 Update 4 中不存在的特定 RPM 程序包版本有关。例如:


compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128

这些特定的程序包在 CVU 报告中列为缺少,请确保在集群中的两个 Oracle RAC 节点上安装了正确版本的 compat-* 程序包。例如,在 RHEL4 Update 4 中,这些程序包应为:


compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-libstdc++-33-3.2.3-47.3

利用 CVU 检查硬件和操作系统设置

接下来要运行的 CVU 检查将验证硬件和操作系统设置。同样,从 linux1 以“oracle”UNIX 用户帐户运行以下命令:

$ cd /u01/app/oracle/orainstall/clusterware/cluvfy $ ./runcluvfy.sh stage -post hwos -n linux1,linux2 -verbose 

查看 CVU 报表。与之前的检查(CRS 的安装前任务)一样,为 VIP 查找一组合适的接口将失败,可将其忽略,没什么问题。

另请注意,检查共享存储可访问性将失败。


Checking shared storage accessibility... WARNING: Unable to determine the sharedness of /dev/sde on nodes:  linux2,linux2,linux2,linux2,linux2,linux1,linux1,linux1,linux1,linux1      Shared storage check failed on nodes "linux2,linux1".  

该警告也可忽略,没什么问题。虽然我们知道这些磁盘可见并在集群中的两个 Oracle RAC 节点中共享,但本身将失败。导致该错误的若干原因已得到证明。第一个原因来自 Metalink,指出 cluvfy 当前没有使用 SCSI 设备之外的其他设备。这将包括设备(如 EMC PowerPath)和卷组(如 Openfiler 中的卷组)。截至本文撰写之日,除了使用手动方法检测共享设备外没有其他解决方法。该错误的另一个原因由 Oracle Corporation 的 Bane Radulovic 提出。他的研究表明,CVU 在 Linux 上调用 smartclt 时,smartclt 不会从 iSCSI 设备返回序列号。例如,针对 /dev/sde 进行的检查显示:

# /usr/sbin/smartctl -i /dev/sde smartctl version 5.33 [i686-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Device:Openfile Virtual disk Version: 0 Serial number: Device type:disk Local Time is:Wed Oct 25 23:41:20 2006 EDT Device supports SMART and is Disabled Temperature Warning Disabled or Not Supported

截至本文撰写之日,我们还不知道 Openfiler 开发人员是否打算对此进行修复。

请使用浏览器的分享功能分享到微信等