在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(11)
(2007-10-16 18:01:15)

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)运行即可。
以下是必须安装的程序包(请记住您的 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 节点上。这意味着您将需要在 linux1 和 linux2 上安装 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 开发人员是否打算对此进行修复。