Oracle 11.2.0.4 RAC installation guide for RHEL 6.4 - 64bits

更新时间:2024-04-23 12:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Oracle 11.2.0.4 RAC installation guide of RHEL 6.4_64bits

第1章 实施软硬件配置 ................................................................................................................. 3

1.1 硬件 ................................................................................................................................... 3 1.2 软件 ................................................................................................................................... 3 1.3 其他软件包 ........................................................................................................................ 3 1.4 Oracle RAC 节点和网络存储服务器配置如下 ................................................................. 3 第2章 安装RHEL6.4_64bits 系统 ................................................................................................ 4

2.1 分区建议............................................................................................................................ 4 2.2 关闭防火墙及关闭selinux ............................................................................................... 5 2.3 在第二个节点上进行相同的安装 .................................................................................... 5 2.4 制作本地yum server(两个节点) ................................................................................. 5 第3章 安装RAC所需Linux程序包 .............................................................................................. 6 第4章 使用StarWind配置ISCSI卷 .............................................................................................. 7

4.1 简介 ................................................................................................................................... 7 4.2 Starwind服务端安装 ......................................................................................................... 7 4.3 创建虚拟磁盘 .................................................................................................................. 11 第5章 在 Oracle RAC 节点上配置 ISCSI卷 .............................................................................. 19

5.1 安装ASM的rpm包 ....................................................................................................... 19 5.2 配置oracleasm ................................................................................................................ 20

5.2.1 配置及加载iscsi模块 .......................................................................................... 20 5.2.2 使用configure选项初始化oracleasm ................................................................ 21 5.3 给磁阵分区 ...................................................................................................................... 22

5.3.1 为 Oracle 创建 ASM 磁盘 ................................................................................. 23 5.3.2 挂载ASM磁盘组 ................................................................................................. 24

第6章 为ORACLE配置Linux主机 ............................................................................................. 25

6.1 修改主机hosts文件 ....................................................................................................... 25 6.2 创建任务角色划分操作系统权限组、用户和目录 ...................................................... 25

6.2.1 创建grid、oracle用户和组 ................................................................................. 27 6.2.2 修改grid用户.bash_profile登录脚本 ................................................................ 28 6.2.3 修改oracle用户.bash_profile登录脚本 ............................................................. 29 6.2.4 验证nobody用户存在 ........................................................................................ 30 6.3 创建oracle安装路径 ...................................................................................................... 30 6.4 为Oracle 软件安装用户设置资源限制 ........................................................................ 31 6.5 配置内核参数 .................................................................................................................. 32 第7章 配置oracle、grid用户双机互信 ..................................................................................... 33

7.1 配置oracle用户双机互信 .............................................................................................. 33 7.2 配置grid用户双机互信 ................................................................................................. 35

第8章 下载并解压缩所需的 Oracle 软件包 ............................................................................ 36

8.1 获取软件包 ...................................................................................................................... 36 8.2 集群的 Oracle Grid Infrastructure 的安装前任务 ........................................................ 37

8.2.1 安装用于 Linux 的 cvuqdisk 程序包 ................................................................ 37 8.2.2 使用 CVU 验证是否满足 Oracle 集群件要求 .................................................. 37 8.2.3 使用 CVU 验证硬件和操作系统设置 ................................................................ 51

第9章 安装 Oracle Grid Infrastructure部分请参见word文档 ................................................ 53

9.1 安装 Oracle Grid Infrastructure ...................................................................................... 53 9.2 集群的 Oracle Grid Infrastructure 的安装后任务 ........................................................ 54

9.2.1 验证 Oracle Clusterware 安装 ............................................................................ 54 9.2.2 检查 CRS 状态 ..................................................................................................... 54 9.2.3 检查 Clusterware 资源 ....................................................................................... 54 9.2.4 检查集群节点 ....................................................................................................... 55 9.2.5 检查两个节点上的 Oracle TNS 监听器进程 ..................................................... 55 9.2.6 确认针对 Oracle Clusterware 文件的 Oracle ASM 功能 ................................. 55 9.2.7 检查 Oracle 集群注册表 (OCR) ......................................................................... 55 9.2.8 检查表决磁盘 ....................................................................................................... 56

第10章 使用ASMCA创建其他ASM磁盘 ................................................................................. 56 第11章 Oracle软件安装 ............................................................................................................. 56 第12章 DBCA建库 ...................................................................................................................... 57

12.1 创建集群化数据库 ........................................................................................................ 57 12.2 验证集群化数据库是否已开启 .................................................................................... 57

第1章 实施软硬件配置

1.1 硬件

服务器: HP DL380 G5 RAM 2G HDD 72G. 共享存储: starwind 51G * 1

1.2 软件

操作系统:rhel-server-6.4-x86_64-dvd.iso

GRID :p13390677_112040_Linux-x86-64_3of7.zip DB :

p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip

1.3 其他软件包

cvuqdisk-1.0.9-1.rpm

kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm oracleasmlib-2.0.4-1.el6.x86_64.rpm

oracleasm-support-2.1.8-1.el6.x86_64.rpm

1.4 Oracle RAC 节点和网络存储服务器配置如下

节 点 节点名称 实例名称 数据库名称 处理器 Intel(R) ucs1 ucs1 ucs.domain ucs2 ucs2 Xeon(R) CPU 5110 1.60GHz Intel(R) Xeon(R) CPU 5110 1.60GHz 2GB 2GB RAM 操作系统 RHEL6.4 - (x86_64) RHEL6.4 - (x86_64) 网络配置 节点名称 ucs1 ucs2 公共 IP 地址 192.168.10.141 192.168.10.142 专用 IP 地址 192.168.0.1 192.168.0.2 虚拟 IP 地址 192.168.10.143 192.168.10.144 SCAN 名称 ucs-scan SCAN IP 地址 192.168.10.140

Oracle 软件组件 操作软件组件 系统用户 dba、Grid Infrastructure grid oinstall asmadmin、asmdba、asmoper dba、oper、Oracle RAC oracle oinstall asmadmin、asmdba /home/oracle /home/grid 主组 辅助组 主目录 Oracle 基目录/Oracle 主目录 /bee/app/grid /bee/app/11.2.0/grid /bee/app/oracle /bee/app/oracle/product/11.2.0/db_1 存储组件 存储组件 OCR/表决磁盘 数据库文件 快速恢复区 文件系统 ASM ASM ASM 卷大小 2GB*3 15GB*2 5GB*3 ASM 卷组名 +CRSVote +DATA +FRA ASM 冗余 normal normal normal

第2章 安装RHEL6.4_64bits 系统

2.1 分区建议

随后安装程序将允许您查看(如果需要还可以修改)它自动选择的磁盘分区。对于大多数自动布局,安装程序将为 /boot 分配 100MB 空间,为交换分区分配 RAM 的双倍数量(系统 RAM <= 2,048MB 时)或 RAM 的同等数量(系统 RAM > 2,048MB 时),而将剩余空间分配给根 (/) 分区。

分区建议: /boot 200M

/swap 4G (实际RAM只有2G,所以配置4G就够了) / 剩余全部空间

在分区阶段,主要是要确保为 Oracle 分配了足够的交换空间(可用 RAM 的倍数)。下面是 Oracle 的最小交换空间要求: 可用 RAM 介于 1,024MB 和 2,048MB 之间 介于 2,049MB 和 8,192MB 之间 超过 8,192MB

所需交换空间 RAM 大小的 1.5 倍 与 RAM 大小相同 RAM 大小的 0.75 倍

2.2 关闭防火墙及关闭selinux

Firewall在该屏幕上,确保选中 [Disabled] 选项,然后单击 [Forward] 继续。

系统将显示一个警告对话框,提示您未设置防火墙。显示该对话框之后,单击 [Yes] 继续。

SELinux在 SELinux 屏幕上,选中 [Disabled] 选项,然后单击 [Forward] 继续。

系统将显示一个警告对话框,提示您更改 SELinux 设置需要重新引导系统以便重新标记整个文件系统。显示该对话框之后,单击 [Yes] 确认在第一次引导(安装后向导)完成后将重新引导系统。

Kdump 接受 Kdump 屏幕上的默认设置(禁用),然后单击 [Forward] 继续。

2.3 在第二个节点上进行相同的安装

在第一个节点上安装完 Linux 后,在第二个节点 (ucs2) 上重复上述步骤。确保计算机名和网络进行了正确配置。网络配置部分根据之前网络规划修改。

2.4 制作本地yum server(两个节点)

1.

创建iso存放目录和挂载目录

mkdir /mnt/iso mkdir /mnt/cdrom

2. 3.

将iso镜像文件rhel-server-6.4-x86_64.iso上传到/mnt/iso文件夹下 将/mnt/iso/下的iso文件挂载到/mnt/cdrom目录 mount -o loop /mnt/iso/rhel-server-6.4-x86_64.iso /mnt/cdrom/

<注:如果挂载完之后对其操作会提示设备繁忙,此时需要umount解开挂载才行>

查看是否挂载成功: df -h <用来查看系统中所有挂载的,mount也可以,我们建议将上述mount语句加入到/etc/rc..local文件里面,这样系统每次自动都会自动加载> 4.

<最关键的一步>更新文件/etc/yum.repos.d/rhel-source.repo文件内容成如下

[Server]

name=Red Hat Enterprise Linux Server baseurl=file:///mnt/cdrom enabled=1 gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

第3章 安装RAC所需Linux程序包

install rpm packages for REHL6.4_64bits on all nodes by following command:

yum -y install binutils-* compat-libstdc++-* elfutils-libelf-* elfutils-libelf-devel-* elfutils-libelf-devel-static-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libstdc++-* libstdc++-devel* make-* sysstat-* unixODBC-* unixODBC-devel-* iscsi-initiator-utils-* pdksh* readline* ksh*

----两个节点--------------------校验并安装RPM包 BEGIN-------------------------------- /////检查安装所需RPM包

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\\n' \\ binutils \\

compat-libstdc++-33 \\ elfutils-libelf \\ elfutils-libelf-devel \\ gcc \\ gcc-c++ \\ glibc \\ glibc-common \\ glibc-devel \\ glibc-headers \\ libaio-devel \\ libaio \\ libgcc \\ libstdc++ \\ libstdc++-devel \\ make \\ numactl \\ sysstat \\ unixODBC \\ unixODBC-devel\\ iscsi-initiator-utils\\

上述iscsi-initiator-utils软件包不是永远必需的,只有用到ISCSI服务才需要安装

第4章 使用StarWind配置ISCSI卷

4.1 简介

通过使用Starwind模拟磁盘阵列作为共享存储实现数据库软件的安装,同时模拟非双机模式,在一台服务器上安装数据库后将其拷贝到第二台服务确上,确保这两台服务器在数据库上是对等的。

可以通过starwind模拟裸设备供客户机使用,物理架构如下

4.2 Starwind服务端安装

192.168.8.159是win7系统,安装Starwind的服务器端后,通过创建虚拟磁盘模拟裸设备供多个服务器共享访问,为了不必要的麻烦,请将服务端的防火墙关闭。

首先安装iSCSIInitiatorSetup.exe, 安装过程比较简单,按照默认配置一路下一步即可完成安装,完成后,“运行”,敲入services.msc命令,将服务Microsoft iSCSI Initiator Service启动并且设置为自动启动.

完成了iSCSIInitiatorSetup.exe的安装后才可以安装Starwind.exe,因为后者要求使用前者的Microsoft iSCSI Initiator Service服务,在安装时会检测该条件,同上,该程序的安装过程也是一路下一步,不需要修改默认配置。

服务器端配置

双击该图标,进入控制台

加载完成后看到如下界面

点击菜单Host->add host

Host 填写192.168.8.159即可,点击确认。

那么控制界面如下

右键点击192.168.8.159:3261的,选择connect,弹出登录框

输入默认的用户名密码 root/starwind,即可登录,如下图所示,开始添加虚拟磁盘。

4.3 创建虚拟磁盘

设置Target 别名,点击next

选择harddisk,下一步

这里选择basic virtual, 然后点击next

选择image file device, 点击next

选择创建一个新的虚拟磁盘,然后点击下一步

点击下一步

看到如下页面后,点击choose,选择路径和填写img文件名,手工填写,软件后续会自动生成该文件。

点击ok看到如下,设置要创建的虚拟磁盘大小为3G

点击next

其中Allow multiple concurrent iSCSI connections 一定要选中,否则一次仅只能被一个客户连接,点击next

默认设置,继续next

点击next

点击及完成创建。第一块磁盘创建完成。 同样操作,创建其他2块磁盘,大小均为32G

全部创建完成后,可以看到磁阵块的基本信息

正常挂载如上图!

第5章 在 Oracle RAC 节点上配置 ISCSI卷

5.1 安装ASM的rpm包

开启iscsi服务,设置开机启动(以root用户在暗ucs1和ucs2上操作) service iscsi restart chkconfig iscsi on chkconfig oracleasm on 使用如下命令都可以查看系统内核版本

[root@ucs1 /]# uname -a

Linux ucs1 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux [root@ucs1 /]# lsb_release -a LSB Version:

:base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarc

RedHatEnterpriseServer

Red Hat Enterprise Linux Server release 6.4 (Santiago)

h:printing-4.0-amd64:printing-4.0-noarch Distributor ID: Description: Release:

6.4

Codename: Santiago [root@ucs1 /]# cat /etc/issue

Red Hat Enterprise Linux Server release 6.4 (Santiago) Kernel \\r on an \\m

[root@ucs1 /]#

从 oracle 官方下载如下其他软件包.

cvuqdisk-1.0.9-1.rpm

kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm oracleasmlib-2.0.4-1.el6.x86_64.rpm

oracleasm-support-2.1.8-1.el6.x86_64.rpm

使用ftp上传,然后安装配置。安装过程如下:

[root@RHEL6 rpms]# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm oracleasm-support-2.1.8-1.el6.x86_64.rpm --nodeps warning: oracleasmlib-2.0.4-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY warning: oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 1e5e0159: NOKEY Preparing... ########################################### [100%] 1:oracleasm-support ########################################### [ 33%] 2:oracleasm-2.6.18-194.el########################################### [ 67%] 3:oracleasmlib ########################################### [100%] [root@RHEL6 rpms]# 5.2 配置oracleasm

现在,您已安装了用于 Linux 的 ASMLib 程序包,接下来您需要配置并加载 ASM 内核模块。需要在两个 Oracle RAC 节点上作为 root 用户帐户执行该任务。

5.2.1 配置及加载iscsi模块

[root@racnode1 ~]# service iscsid start

Turning off network shutdown. Starting iSCSI daemon: [ OK ] [ OK ] [root@racnode1 ~]# chkconfig iscsid on [root@racnode1 ~]# chkconfig iscsi on

[root@racnode1 ~]# iscsiadm -m discovery -t sendtargets –p 192.168.10.33 iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 192.168.10.33 –l

[root@racnode1 ~]# iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 192.168.2.195 --op update -n node.startup -v automatic

[root@ucs1 iscsi]# service iscsi restart

Logging out of session [sid: 1, target: iqn.2008-08.com.starwindsoftware:ipm-1-pc.smb.com-mtn, portal: 192.168.10.33,3260]

Logout of [sid: 1, target: iqn.2008-08.com.starwindsoftware:ipm-1-pc.smb.com-mtn, portal: 192.168.10.33,3260]: successful Stopping iSCSI daemon:

iscsid dead but pid file exists [ OK ]

Starting iSCSI daemon: [ OK ] [ OK ] Setting up iSCSI targets: Logging in to [iface: default, target: iqn.2008-08.com.starwindsoftware:ipm-1-pc.smb.com-mtn, portal: 192.168.10.33,3260]

Login to [iface: default, target: iqn.2008-08.com.starwindsoftware:ipm-1-pc.smb.com-mtn, portal: 192.168.10.33,3260]: successful

[ OK ] [root@ucs1 init.d]# fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/sda1 * 1 25 200781 83 Linux

/dev/sda2 26 547 4192965 82 Linux swap / Solaris /dev/sda3 548 5221 37543905 83 Linux

Disk /dev/sdb: 54.5 GB, 54525952000 bytes 64 heads, 32 sectors/track, 52000 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 52000 53247984 5 Extended /dev/sdb5 1 15361 15729632 83 Linux /dev/sdb6 15362 30722 15729648 83 Linux /dev/sdb7 30723 46083 15729648 83 Linux /dev/sdb8 46084 50180 4195312 83 Linux /dev/sdb9 50181 52000 1863664 83 Linux

5.2.2 使用configure选项初始化oracleasm

对集群中要安装 Oracle RAC 的所有节点都需要执行此配置过程。

[root@ucs1 ~]# /usr/sbin/oracleasm configure -i Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting without typing an answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface [oracle]: grid

Default group to own the driver interface [dba]: asmadmin Start Oracle ASM library driver on boot (y/n) [y]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done

[root@ucs1 ~]# /usr/sbin/oracleasm enable

Writing Oracle ASM library driver configuration [ OK ] Scanning system for ASM disks [ OK ] [root@ucs1 ~]#

该脚本完成以下任务:

1. 创建 /etc/sysconfig/oracleasm 配置文件 2. 创建 /dev/oracleasm 挂载点 3. 挂载 ASMLib 驱动程序文件系统

注: ASMLib 驱动程序文件系统并非常规的文件系统。它只用于自动存储管理库与自动存储管理驱动程序的通讯。

5.3 给磁阵分区

配置完成后,在其中一个节点对存储进行分区。 首先对 disk01进行分区,分区计划。 1) 先建立1个扩展分区。

2) 从扩展分区中建立 1个3G的分区 过程如下:

[root@ucs1 ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 3062. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n Command action e extended

p primary partition (1-4) e

Partition number (1-4): 1

First cylinder (1-2610, default 1): Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): Using default value 2610 Command (m for help): n Command action l logical (5 or over) . p primary partition (1-4) l

First cylinder (1-2610, default 1): 回车 Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-3062, default 3062): 回车 Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table. Syncing disks.

然后对 disk02/disk03进行分区,分区计划。 1) 先建立1个扩展分区。

2) 从扩展分区中建立1个32G的分区 操作同理!

5.3.1 为 Oracle 创建 ASM 磁盘

创建 ASM 磁盘只需在 RAC 集群中的一个节点上以 root 用户帐户执行。我将在 ucs1 上运行这些命令。在另一个 Oracle RAC 节点上,您将需要执行 scandisk 以识别新卷。该操作完成后,应在两个 Oracle RAC 节点上运行 oracleasm listdisks 命令以验证是否创建了所有 ASM 磁盘以及它们是否可用。

在“在 iSCSI 卷上创建分区”一节中,我们对 ASM 要使用的三个 iSCSI 卷进行了配置(分区)。ASM 将用于存储 Oracle Clusterware 文件、Oracle 数据库文件(如联机重做日志、

数据库文件、控制文件、存档重做日志文件)和快速恢复区。在配置三个 ASM 卷时,使用 udev 创建的本地设备名。

要使用 iSCSI 目标名到本地设备名映射创建 ASM 磁盘,以root用户键入以下命令:

/usr/sbin/oracleasm createdisk OCR_VOTE01 /dev/sdb5 /usr/sbin/oracleasm createdisk OCR_VOTE02 /dev/sdb6 /usr/sbin/oracleasm createdisk OCR_VOTE03 /dev/sdb7

/usr/sbin/oracleasm createdisk FRA01 /dev/sdb8 /usr/sbin/oracleasm createdisk FRA02 /dev/sdb9 /usr/sbin/oracleasm createdisk FRA03 /dev/sdb10

/usr/sbin/oracleasm createdisk DATA01 /dev/sdb11 /usr/sbin/oracleasm createdisk DATA02 /dev/sdb12

5.3.2 挂载ASM磁盘组

为 Oracle 创建 ASM 磁盘

创建 ASM 磁盘只需在 RAC 集群中的一个节点上以 root 用户帐户执行。我将在 ucs1 上运行这些命令。在另一个 Oracle RAC 节点上,您将需要执行 scandisk 以识别新卷。该操作完成后,应在两个 Oracle RAC 节点上运行 oracleasm listdisks 命令以验证是否创建了所有 ASM 磁盘以及它们是否可用。

我们对 ASM 要使用的三个 iSCSI 卷进行了配置(分区)。ASM 将用于存储 Oracle Clusterware 文件、Oracle 数据库文件(如联机重做日志、数据库文件、控制文件、存档重做日志文件)和快速恢复区。在配置三个 ASM 卷时,使用 udev 创建的本地设备名。 要使用 iSCSI 目标名到本地设备名映射创建 ASM 磁盘,键入以下命令:

要使磁盘可用于集群中其他节点 (ucs1),以 root 用户身份在每个节点上输入以下命令:

[root@ucs1 ~]# /usr/sbin/oracleasm scandisks

要使磁盘可用于集群中其他节点 (ucs2),以 root 用户身份在每个节点上输入以下命令:

[root@ucs2 ~]# /usr/sbin/oracleasm scandisks

现在,我们可以使用以下命令在 RAC 集群中的两个节点上以 root 用户帐户测试是否成功创建了 ASM 磁盘。此命令指出连接的节点的、标记为自动存储管理磁盘的共享磁盘:

[root@ucs1 ~]# /usr/sbin/oracleasm listdisks

[root@ucs2 ~]# /usr/sbin/oracleasm listdisks

第6章 为ORACLE配置Linux主机

6.1 修改主机hosts文件

----两个节点--------------------修改hosts文件 BEGIN-------------------------------- vim /etc/hosts

# Do not remove the following line, or various programs # that require network functionality will fail. #127.0.0.1 localhost.localdomain localhost #::1 localhost6.localdomain6 localhost6

# Public Network - (eth0) 192.168.10.141 ucs1 192.168.10.142 ucs2

# Private Interconnect - (eth1) 建议私有IP使用不同网段! 192.168.0.1 ucs1-priv 192.168.0.2 ucs2-priv

# Public Virtual IP (VIP) addresses - (eth0:1) 192.168.10.143 ucs1-vip 192.168.10.144 ucs2-vip

# Single Client Access Name (SCAN) 192.168.8.83 ucs-scan

----两个节点--------------------修改hosts文件 END--------------------------------

6.2 创建任务角色划分操作系统权限组、用户和目录

在集群的两个 Oracle RAC 节点上针对 grid 和 oracle 用户执行以下用户、组和目录配置并设置 shell 限制的任务。 我们将创建以下 O/S 组: 描述 Oracle 清单和软件所有者 Oracle 自动存储管理组 ASM 数据库管理员组 ASM 操作员组 数据库管理员 OS 组名 oinstall asmadmin asmdba asmoper dba 分配给该组的 OS 用户 grid、oracle grid Oracle 权限 SYSASM Oracle 组名 OSASM grid、oracle grid oracle ASM 的 SYSDBA ASM 的 SYSOPER SYSDBA OSDBA for ASM OSOPER for ASM OSDBA

数据库操作员

oper oracle SYSOPER OSOPER ? Oracle 清单组(一般为 oinstall)

OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时,OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。

如果不存在 oraInventory 组,默认情况下,安装程序会将集群的网格基础架构的安装所有者的主组列为 oraInventory 组。确保所有计划的 Oracle 软件安装所有者都使用此组作为主组。就本指南来说,必须将grid 和 oracle 安装所有者配置为以 oinstall 作为其主组。

Oracle 自动存储管理组(一般为 asmadmin)

此组为必需组。如果想让 Oracle ASM 管理员和 Oracle Database 管理员分属不同的管理权限组,可单独创建此组。在 Oracle 文档中,OSASM 组是其成员被授予权限的操作系统组,在代码示例中,专门创建了一个组来授予此权限,此组名为 asmadmin。

OSASM 组的成员可通过操作系统身份验证使用 SQL 以 SYSASM 身份连接到一个 Oracle ASM 实例。SYSASM 权限是在 Oracle ASM 11g 第 1 版 (11.1) 中引入的,现在,在 Oracle ASM 11g 第 2 版 (11.2) 中,该权限已从 SYSDBA 权限中完全分离出来。SYSASM 权限不再提供对 RDBMS 实例的访问权限。用 SYSASM 权限代替 SYSDBA 权限来提供存储层的系统权限,这使得 ASM 管理和数据库管理之间有了清晰的责任划分,有助于防止使用相同存储的不同数据库无意间覆盖其他数据库的文件。SYSASM 权限允许执行挂载和卸载磁盘组及其他存储管理任务。

ASM 数据库管理员组(OSDBA for ASM,一般为 asmdba)

ASM 数据库管理员组(OSDBA for ASM)的成员是 SYSASM 权限的一个子集,拥有对 Oracle ASM 管理的文件的读写权限。Grid Infrastructure 安装所有者 (grid) 和所有 Oracle Database 软件所有者 (oracle) 必须是该组的成员,而所有有权访问 Oracle ASM 管理的文件并且具有数据库的 OSDBA 成员关系的用户必须是 ASM 的 OSDBA 组的成员。

ASM 操作员组(OSOPER for ASM,一般为 asmoper)

该组为可选组。如果需要单独一组具有有限的 Oracle ASM 实例管理权限(ASM 的

SYSOPER 权限,包括启动和停止 Oracle ASM 实例的权限)的操作系统用户,则创建该组。默认情况下,OSASM 组的成员将拥有 ASM 的 SYSOPER 权限所授予的所有权限。 要使用 ASM 操作员组创建 ASM 管理员组(该组拥有的权限比默认的 asmadmin 组要少),安装 Grid Infrastructure 软件时必须选择 Advanced 安装类型。这种情况下,OUI 会提示您指定该组的名称。在本指南中,该组为 asmoper。

如果要拥有一个 OSOPER for ASM 组,则集群的 Grid Infrastructure 软件所有者 (grid) 必须为此组的一个成员。

数据库管理员(OSDBA,一般为 dba)

?

?

? ?

?

OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关闭实例。该组的默认名称为 dba。SYSDBA系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。

不要混淆 SYSDBA 系统权限与数据库角色 DBA。DBA 角色不包

?

括 SYSDBA 或 SYSOPER 系统权限。

数据库操作员组(OSOPER,一般为 oper)

OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。该组的默认名称为 oper。SYSOPER系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。

6.2.1 创建grid、oracle用户和组

分别在两个节点上创建grid、oracle用户和组用户

groupadd -g 501 oinstall groupadd -g 502 dba groupadd -g 503 oper groupadd -g 504 asmadmin groupadd -g 506 asmdba groupadd -g 507 asmoper

useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid useradd -u 502 -g oinstall -G dba,asmdba,asmadmin,oper oracle id oracle id grid

passwd oracle passwd grid

设置 grid 帐户的口令:

[root@ucs1 ~]# passwd grid Changing password for user grid. New UNIX password: -------grid BAD PASSWORD: it is too short

Retype new UNIX password: -------grid

passwd: all authentication tokens updated successfully.

设置 oracle 帐户的口令:

[root@ucs1 ~]# passwd oracle

Changing password for user oracle. New UNIX password: -------oracle BAD PASSWORD: it is too short

Retype new UNIX password: -------oracle

passwd: all authentication tokens updated successfully.

6.2.2 修改grid用户.bash_profile登录脚本

---两个节点--------切换到grid用户,修改.bash_profile BEGIN-------------------

以 grid 用户帐户分别登录到两个 Oracle RAC 节点并创建以下登录脚本 (.bash_profile): 注: 在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的 Oracle SID。对于此示例,我使用: ucs1:ORACLE_SID=+ASM1 ucs2:ORACLE_SID=+ASM2

vim /home/grid/.bash_profile

export ORACLE_SID ORACLE_SID=+ASM1; #export ORACLE_SID ORACLE_SID=+ASM1; export ORACLE_BASE=/bee/app/grid export ORACLE_HOME=/bee/app/11.2.0/grid

export ORACLE_PATH ORACLE_PATH=/bee/app/oracle/product/11.2.0/db_1/bin;

export ORACLE_TERM=xterm; export JAVA_HOME=/usr/local/java;

export NLS_DATE_FORMAT=\ export TNS_ADMIN=$ORACLE_HOME/network/admin; export ORA_NLS11=$ORACLE_HOME/nls/data; export NLS_LANG=\export EDITOR=vim export LANG=en_us.UTF-8 export THREADS_FLAG=native;

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin PATH=${PATH}:/u01/app/common/oracle/bin export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

#for the first node #for the second node

export CLASSPATH export TEMP=/tmp export TMPDIR=/tmp

umask 022

----两个节点--------切换到grid用户,修改.bash_profile END---------------------

6.2.3 修改oracle用户.bash_profile登录脚本

----两个节点--------切换到oracle用户,修改.bash_profile BEGIN---------------------

以 oracle 用户帐户分别登录到两个 Oracle RAC 节点并创建以下登录脚本 (.bash_profile):

注: 在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的 Oracle SID。对于此示例,我使用:

ucs1:ORACLE_SID=ucsucs1 ucs2:ORACLE_SID=ucsucs2

[root@ucs1 /]# su - oracle

[oracle@ucs1 ~]$ vim .bash_profile export ORACLE_HOSTNAME=ucsucs1 export ORACLE_UNQNAME=ucs

export ORACLE_SID=ucs1 #for the first node #export ORACLE_SID=ucs2 #for the second node export ORACLE_BASE=/bee/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_PATH ORACLE_PATH=/bee/app/oracle/product/11.2.0/db_1/bin;

export JAVA_HOME=/usr/local/java;

export NLS_LANG=\export LANG=en_us.UTF-8 export EDITOR=vim

export NLS_DATE_FORMAT=\export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$PATH

#export ORACLE_PATH ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_TERM=xterm;

export TNS_ADMIN=$ORACLE_HOME/network/admin; export ORA_NLS11=$ORACLE_HOME/nls/data;

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin PATH=${PATH}:/u01/app/common/oracle/bin export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export CLASSPATH

export THREADS_FLAG=native; export TEMP=/tmp export TMPDIR=/tmp

umask 022

----两个节点--------切换到oracle用户,修改.bash_profile END---------------------

6.2.4 验证nobody用户存在

----两个节点--------验证用户 nobody 存在 BEGIN--------------------- 验证用户 nobody 存在

安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用户 nobody:

要确定该用户是否存在,输入以下命令:

# id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)

如果该命令显示了 nobody 用户的信息,则无需创建该用户。

如果用户 nobody 不存在,则输入以下命令进行创建:

# /usr/sbin/useradd nobody

在集群中的所有其他 Oracle RAC 节点上重复此过程。

----两个节点--------验证用户 nobody 存在 END---------------------

6.3 创建oracle安装路径

----两个节点--------创建 Oracle 基目录路径 BEGIN---------------------

最后一步是配置 Oracle 基路径,要遵循最佳灵活体系结构 (OFA) 的结构及正确的权限。需

要以 root 用户身份在集群的两个 Oracle RAC 节点上完成此任务。

mkdir -p /bee/app/11.2.0/grid

mkdir -p /bee/app/oracle/product/11.2.0/db_1 mkdir -p /bee/app/grid mkdir -p /bee/app/oraInventory chown -R oracle.oinstall /bee

chown -R grid.oinstall /bee/app/11.2.0/grid/ chown -R grid.oinstall /bee/app/grid/ chown -R grid.oinstall /bee/app/oraInventory chmod –R 755 /bee

----两个节点--------创建 Oracle 基目录路径 END---------------------

6.4 为Oracle 软件安装用户设置资源限制

----两个节点--------为Oracle 软件安装用户设置资源限制 BEGIN-----------------

要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户(grid、oracle)增加以下资源限制: Shell 限制 打开文件描述符的最大数 可用于单个用户的最大进程数 进程堆栈段的最大大小 limits.conf 中的条目 nofile nproc stack 硬限制 65536 16384 10240 要进行这些更改,以 root 用户身份运行以下命令:

1、在每个 Oracle RAC 节点上,在 /etc/security/limits.conf 文件

中添加以下几行代码(下面的示例显示软件帐户所有者 oracle 和 grid):

cat >> /etc/security/limits.conf <

grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 EOF

2、在每个 Oracle RAC 节点上,在 /etc/pam.d/login 文件中添加或编辑下面一行内容(如果不存在此行):

[root@ucs1 ~]# cat >> /etc/pam.d/login <

EOF

3、根据您的 shell 环境,对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装所有者的 ulimit 设置(注意这里的示例显示 oracle 和 grid 用户):

对于 Bourne、Bash 或 Korn shell,通过运行以下命令将以下行添加到 /etc/profile 文件:

[root@ucs1 ~]# cat >> /etc/profile <

if [ \\$USER = \ if [ \\$SHELL = \ ulimit -p 16384 ulimit -n 65536 else

ulimit -u 16384 -n 65536 fi umask 022 fi

EOF

对于 C shell(csh 或 tcsh),通过运行以下命令将以下行添加到 /etc/csh.login 文件:

[root@ucs1 ~]# cat >> /etc/csh.login <

EOF

----两个节点--------为Oracle 软件安装用户设置资源限制 END-----------------

6.5 配置内核参数

RHEL6 上的 Oracle Database 11g 第 2 版需要如下/etc/sysctl.conf所示的内核参数设置,下面给出的值都是最小值,因此如果您的系统使用更大的值,则不要更改。 kernel.shmall = 4294967296 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152

kernel.shmmax = 4294967295 kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576

仔细核对以上内核参数

通过在两个 Oracle RAC 节点上运行以下命令来验证新的内核参数值: [root@ucs1 ~]# /sbin/sysctl –p net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0

kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536

kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152

kernel.shmmax = 4294967295 kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576

第7章 配置oracle、grid用户双机互信

7.1 配置oracle用户双机互信

请以oracle用户登陆,用户在两台主机ucs1和ucs2之间相互登陆,会在/home/oracle/下生成.ssh目录。

在ucs1上执行:

[root@ucs1 ~]# su - grid

[grid@ucs1 ~]$ mkdir ~/.ssh

[grid@ucs1 ~]$ chmod 700 ~/.ssh [grid@ucs1 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/grid/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:

Your identification has been saved in /home/grid/.ssh/id_rsa. Your public key has been saved in /home/grid/.ssh/id_rsa.pub. The key fingerprint is:

33:5f:68:9f:cc:33:35:14:74:7c:f8:d1:0b:f7:63:2d grid@ucs1 The key's randomart image is:

[grid@ucs1 ~]$ ssh-keygen -t dsa

[grid@ucs1 ~]$ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys [grid@ucs1 ~]$ cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

在ucs2重复上执行上面的过程 mkdir ~/.ssh

chmod 700 ~/.ssh ssh-keygen -t rsa ssh-keygen -t dsa

cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

然后在ucs1上

ssh ucs2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys ssh ucs2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys scp ~/.ssh/authorized_keys ucs2:~/.ssh/authorized_keys

验证ssh对等性是否成功

在ucs1上 ssh ucs1 date ssh ucs2 date

第一次需要口令,以后不需要就表示成功了。 ssh ucs1 date ssh ucs2 date

在ucs 2同上步骤。

此时建立双机之间oracle用户的信任关系。 验证oracle用户双机互信,在ucs1节点分别ssh一下节点名ucs1、ucs1-priv、ucs2、ucs2-priv,在ucs2节点上同样需要通过ssh来验证,直到最后ssh这些节点可以直接切换而不需要输入密码。

7.2 配置grid用户双机互信

请以grid用户登陆,用户在两台主机ucs1和ucs2之间相互登陆,会在/home/grid/下生成.ssh目录。

在ucs1上执行:

[root@ucs1 ~]# su - grid [grid@ucs1 ~]$ mkdir ~/.ssh

[grid@ucs1 ~]$ chmod 700 ~/.ssh [grid@ucs1 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/grid/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:

Your identification has been saved in /home/grid/.ssh/id_rsa. Your public key has been saved in /home/grid/.ssh/id_rsa.pub. The key fingerprint is:

33:5f:68:9f:cc:33:35:14:74:7c:f8:d1:0b:f7:63:2d grid@ucs1 The key's randomart image is:

[grid@ucs1 ~]$ ssh-keygen -t dsa

[grid@ucs1 ~]$ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys [grid@ucs1 ~]$ cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

在ucs2重复上执行上面的过程 mkdir ~/.ssh

chmod 700 ~/.ssh ssh-keygen -t rsa ssh-keygen -t dsa

cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

然后在ucs1上

ssh ucs2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys ssh ucs2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys scp ~/.ssh/authorized_keys ucs2:~/.ssh/authorized_keys

验证ssh对等性是否成功

在ucs1上 ssh ucs1 date ssh ucs2 date

第一次需要口令,以后不需要就表示成功了。 ssh ucs1 date ssh ucs2 date

在ucs 2同上步骤。

此时建立双机之间grid用户的信任关系。

验证grid用户双机互信,在ucs1节点分别ssh一下节点名ucs1、ucs1-priv、ucs2、ucs2-priv,在ucs2节点上同样需要通过ssh来验证,直到最后ssh这些节点可以直接切换而不需要输入密码。

第8章 下载并解压缩所需的 Oracle 软件包

8.1 获取软件包

从公司192.168.10.243服务器获取,地址如下: \\\\192.168.10.243\\share\\tools\\database\\oracle\\11g

以相应软件所有者的身份登录到要执行所有 Oracle 安装的节点 (ucs1)。例如,以 grid 用户身份登录后将 Oracle Grid Infrastructure 软件下载到 /home/grid 目录。然后,以oracle 用户身份登录,将 Oracle Database 软件下载到/home/oracle/目录。

以 grid 用户身份解压缩 Oracle Grid Infrastructure 软件:

[grid@ucs1 ~]$ mv linux.x64_11gR2_grid.zip /home/grid [grid@ucs1 ~]$ cd /home/grid

[grid@ucs1 oracle]$ unzip linux.x64_11gR2_grid.zip

以 oracle 用户身份解压缩 Oracle Database 和 Oracle Examples 软件:

[oracle@ucs1 ~]$ mv linux.x64_11gR2_database_1of2.zip /home/oracle

[oracle@ucs1 ~]$ mv linux.x64_11gR2_database_2of2.zip /home/oracle

[oracle@ucs1 ~]$ mv linux.x64_11gR2_examples.zip /home/oracle [oracle@ucs1 ~]$ cd /home/oracle

[oracle@ucs1 oracle]$ unzip linux.x64_11gR2_database_1of2.zip [oracle@ucs1 oracle]$ unzip linux.x64_11gR2_database_2of2.zip

8.2 集群的 Oracle Grid Infrastructure 的安装前任务

8.2.1 安装用于 Linux 的 cvuqdisk 程序包

cvuqdisk RPM 包含在 Oracle Grid Infrastructure 安装介质上的 rpm 目录中。对于本文,Oracle Grid Infrastructure 介质已由 grid 用户解压缩到 racnode1 节点的 /home/grid/software/oracle/grid目录中。 要安装 cvuqdisk RPM,执行以下步骤: 1.

找到 cvuqdisk RPM 程序包,位于 racnode1 节点中安装介质的 rpm 目录下:

[root@ucs1 ~]# cd /home/grid/grid/rpm/ [root@ucs1 rpm]# ls

2.

cvuqdisk-1.0.7-1.rpm以 grid 用户帐户将 cvuqdisk 程序包从 racnode1 复制

到 racnode2:

[grid@ucs1 rpm]$ scp /home/grid/grid/rpm/cvuqdisk-1.0.7-1.rpm ucs2:/home/grid cvuqdisk-1.0.7-1.rpm 100% 8173 8.0KB/s 00:00 以 root 用户身份分别登录到两个 Oracle RAC 节点: [grid@racnode1 rpm]$ su [grid@racnode2 rpm]$ su

3.

设置环境变量 CVUQDISK_GRP,使其指向作为 cvuqdisk 的所有者所在的组(本文为 oinstall):

[root@racnode1 rpm]# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP [root@racnode2 rpm]# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP

4.

在保存 cvuqdisk RPM 的目录中,使用以下命令在两个 Oracle RAC 节点上安装 cvuqdisk 程序包:

[root@racnode1 rpm]# rpm -iv cvuqdisk-1.0.7-1.rpm Preparing packages for installation... cvuqdisk-1.0.7-1

[root@racnode2 rpm]# rpm -iv cvuqdisk-1.0.7-1.rpm Preparing packages for installation... cvuqdisk-1.0.7-1

8.2.2 使用 CVU 验证是否满足 Oracle 集群件要求

在满足了运行 CVU 实用程序的所有前提条件后,可以在安装之前手动检查集群配置,并生成修复脚本以在开始安装前更改操作系统。

[grid@ucs1 ~]$ cd /home/grid/software/oracle/grid

[grid@ucs1 grid]$ ./runcluvfy.sh stage -pre crsinst -n ucs1,ucs2 -fixup -verbose

查看 CVU 报告。 在本文所述配置情况下,应该只发现如下的唯一一个错误:

Check: Membership of user \

Node Name User Exists Group Exists User in Group Comment ---------------- ------------ ------------ ------------ ----------------

racnode2 yes yes no failed racnode1 yes yes no failed Result: Membership check for user \

该检查失败的原因是,本指南通过 任务角色划分 配置创建了以角色分配的组和用户,而 CVU 不能正确识别这种配置。我们在创建任务角色划分操作系统权限组、用户和目录一节中讲述了如何创建任务角色划分配置。CVU 不能识别此类配置,因而假定 grid 用户始终是 dba 组的成员。可以放心地忽略这个失败的检查。CVU 执行的所有其他检查的结果报告应该为“passed”,之后才能继续进行 Oracle Grid Infrastructure 的安装。

注:如果要想要通过这个错误,在每个节点按下面来添加以下grid用户的附属组就可以了

[root@ucs1 ~]# usermod -a -G dba grid [root@ucs1 ~]# id grid

uid=1100(grid) gid=1000(oinstall)

groups=1000(oinstall),1200(asmadmin),1201(asmdba),1202(asmoper),1300(dba)

时间同步:

[root@ucs1 ~]# service ntpd stop

Shutting down ntpd: [FAILED] [root@ucs1 ~]# ntpdate 192.168.8.253

31 Aug 18:40:08 ntpdate[9437]: step time server 192.168.8.253 offset -0.625356 sec

---删除ntpd服务-----两个节点------- [root@ucs1 ~]# /sbin/service ntpd stop [root@ucs1 ~]# chkconfig ntpd off

[root@ucs1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original 还要删除以下文件(没有就不要理会): [root@ucs1 ~]# rm /var/run/ntpd.pid

---删除ntpd服务----两个节点--------

具体校验结果:

./runcluvfy.sh stage -pre crsinst -n ucs1,ucs2 -fixup -verbose Performing pre-checks for cluster services setup

Checking node reachability...

Check: Node reachability from node \

Destination Node Reachable? ------------------------------------ ------------------------

ucs1 yes ucs2 yes Result: Node reachability check passed from node \

Checking user equivalence...

Check: User equivalence for user \

Node Name Comment ------------------------------------ ------------------------

ucs2 passed ucs1 passed Result: User equivalence check passed for user \

Checking node connectivity...

Checking hosts config file...

Node Name Status Comment ------------ ------------------------ ------------------------

ucs2 passed ucs1 passed

Verification of the hosts config file successful

Interface information for node \

Name IP Address Subnet Gateway Def. Gateway HW Address MTU

------ --------------- --------------- --------------- --------------- ----------------- ------

eth0 192.168.10.142 192.168.8.0 0.0.0.0 192.168.8.200 00:19:BB:CE:D9:10 1500

eth1 192.168.0.2 192.168.56.0 0.0.0.0 192.168.8.200 00:19:BB:CE:D9:0E 1500

Interface information for node \

Name IP Address Subnet Gateway Def. Gateway HW Address MTU

------ --------------- --------------- --------------- --------------- ----------------- ------

eth0 192.168.10.141 192.168.8.0 0.0.0.0 192.168.8.200 00:18:FE:80:55:56 1500

eth1 192.168.0.1 192.168.56.0 0.0.0.0 192.168.8.200

00:18:FE:80:55:54 1500

Check: Node connectivity of subnet \

Source Destination Connected? ------------------------------ ------------------------------ ----------------

ucs2:eth0 ucs1:eth0 yes Result: Node connectivity passed for subnet \

Check: TCP connectivity of subnet \

Source Destination Connected? ------------------------------ ------------------------------ ----------------

ucs1:192.168.10.141 ucs2:192.168.10.142 passed Result: TCP connectivity check passed for subnet \

Check: Node connectivity of subnet \

Source Destination Connected? ------------------------------ ------------------------------ ----------------

ucs2:eth1 ucs1:eth1 yes Result: Node connectivity passed for subnet \

Check: TCP connectivity of subnet \

Source Destination Connected? ------------------------------ ------------------------------ ----------------

ucs1:192.168.0.1 ucs2:192.168.0.2 passed Result: TCP connectivity check passed for subnet \

Interfaces found on subnet %ucs2 eth0:192.168.10.142 ucs1 eth0:192.168.10.141

Interfaces found on subnet \that are likely candidates for a private interconnect are:

ucs2 eth1:192.168.0.2 ucs1 eth1:192.168.0.1

Result: Node connectivity check passed

Check: Total memory

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 1.96GB (2057668.0KB) 1.5GB (1572864.0KB) passed ucs1 1.96GB (2059152.0KB) 1.5GB (1572864.0KB) passed Result: Total memory check passed

Check: Available memory

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 1.86GB (1949800.0KB) 50MB (51200.0KB) passed ucs1 1.7GB (1782908.0KB) 50MB (51200.0KB) passed Result: Available memory check passed

Check: Swap space

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 4GB (4192956.0KB) 2.94GB (3086502.0KB) passed ucs1 4GB (4192956.0KB) 2.95GB (3088728.0KB) passed Result: Swap space check passed

Check: Free disk space for \

Path Node Name Mount point Available Required Comment

---------------- ------------ ------------ ------------ ------------ ------------

/tmp ucs2 / 54.79GB 1GB passed

Result: Free disk space check passed for \

Check: Free disk space for \

Path Node Name Mount point Available Required Comment

---------------- ------------ ------------ ------------ ------------ ------------

/tmp ucs1 / 53.08GB 1GB passed

Result: Free disk space check passed for \

Check: User existence for \

Node Name Status Comment ------------ ------------------------ ------------------------

ucs2 exists passed ucs1 exists passed Result: User existence check passed for \

Check: Group existence for \

Node Name Status Comment ------------ ------------------------ ------------------------

ucs2 exists passed ucs1 exists passed Result: Group existence check passed for \

Check: Group existence for \

Node Name Status Comment ------------ ------------------------ ------------------------

ucs2 exists passed ucs1 exists passed Result: Group existence check passed for \

Check: Membership of user \

Node Name User Exists Group Exists User in Group Primary Comment

---------------- ------------ ------------ ------------ ------------ ------------

ucs2 yes yes yes yes passed

ucs1 yes yes yes yes passed

Result: Membership check for user \

Check: Membership of user \

Node Name User Exists Group Exists User in Group Comment ---------------- ------------ ------------ ------------ ----------------

ucs2 yes yes yes passed ucs1 yes yes yes passed Result: Membership check for user \

Check: Run level

Node Name run level Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 5 3,5 passed ucs1 5 3,5 passed Result: Run level check passed

Check: Hard limits for \

Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ----------------

ucs2 hard 65536 65536 passed ucs1 hard 65536 65536 passed Result: Hard limits check passed for \

Check: Soft limits for \

Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ----------------

ucs2 soft 1024 1024 passed ucs1 soft 1024 1024 passed Result: Soft limits check passed for \

Check: Hard limits for \

Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ----------------

ucs2 hard 16384 16384 passed ucs1 hard 16384 16384 passed Result: Hard limits check passed for \

Check: Soft limits for \

Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ----------------

ucs2 soft 2047 2047 passed ucs1 soft 2047 2047 passed Result: Soft limits check passed for \

Check: System architecture

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 x86_64 x86_64 passed ucs1 x86_64 x86_64 passed Result: System architecture check passed

Check: Kernel version

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 2.6.18-194.el5 2.6.18 passed ucs1 2.6.18-194.el5 2.6.18 passed Result: Kernel version check passed

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 250 250 passed ucs1 250 250 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

ucs2 32000 32000 passed ucs1 32000 32000 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 100 100 passed ucs1 100 100 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 128 128 passed ucs1 128 128 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 68719476736 536870912 passed ucs1 68719476736 536870912 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 4096 4096 passed ucs1 4096 4096 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 4294967296 2097152 passed ucs1 4294967296 2097152 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 6815744 6815744 passed

ucs1 6815744 6815744 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 between 9000 & 65500 between 9000 & 65500 passed ucs1 between 9000 & 65500 between 9000 & 65500 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 262144 262144 passed ucs1 262144 262144 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 4194304 4194304 passed ucs1 4194304 4194304 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 262144 262144 passed ucs1 262144 262144 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 1048576 1048576 passed ucs1 1048576 1048576 passed Result: Kernel parameter check passed for \

Check: Kernel parameter for \

Node Name Configured Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 1048576 1048576 passed ucs1 1048576 1048576 passed Result: Kernel parameter check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 make-3.81-3.el5 make-3.81 passed ucs1 make-3.81-3.el5 make-3.81 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 binutils-2.17.50.0.6-14.el5 binutils-2.17.50.0.6 passed ucs1 binutils-2.17.50.0.6-14.el5 binutils-2.17.50.0.6 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 gcc-4.1.2-48.el5 gcc-4.1.2 passed ucs1 gcc-4.1.2-48.el5 gcc-4.1.2 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libaio-0.3.106-5 (i386) libaio-0.3.106 (i386) passed ucs1 libaio-0.3.106-5 (i386) libaio-0.3.106 (i386) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libaio-0.3.106-5 (x86_64) libaio-0.3.106 (x86_64) passed ucs1 libaio-0.3.106-5 (x86_64) libaio-0.3.106 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 glibc-2.5-49 (i686) glibc-2.5-24 (i686) passed ucs1 glibc-2.5-49 (i686) glibc-2.5-24 (i686) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 glibc-2.5-49 (x86_64) glibc-2.5-24 (x86_64) passed ucs1 glibc-2.5-49 (x86_64) glibc-2.5-24 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 compat-libstdc++-33-3.2.3-61 (i386) compat-libstdc++-33-3.2.3 (i386) passed

ucs1 compat-libstdc++-33-3.2.3-61 (i386) compat-libstdc++-33-3.2.3 (i386) passed

Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 compat-libstdc++-33-3.2.3-61 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) passed

ucs1 compat-libstdc++-33-3.2.3-61 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) passed

Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 elfutils-libelf-0.137-3.el5 (x86_64) elfutils-libelf-0.125 (x86_64) passed ucs1 elfutils-libelf-0.137-3.el5 (x86_64) elfutils-libelf-0.125 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-devel-0.125 passed ucs1 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-devel-0.125 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 glibc-common-2.5-49 glibc-common-2.5 passed ucs1 glibc-common-2.5-49 glibc-common-2.5 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 glibc-devel-2.5-49 (i386) glibc-devel-2.5 (i386) passed ucs1 glibc-devel-2.5-49 (i386) glibc-devel-2.5 (i386) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 glibc-devel-2.5-49 (x86_64) glibc-devel-2.5 (x86_64) passed ucs1 glibc-devel-2.5-49 (x86_64) glibc-devel-2.5 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 glibc-headers-2.5-49 glibc-headers-2.5 passed ucs1 glibc-headers-2.5-49 glibc-headers-2.5 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 gcc-c++-4.1.2-48.el5 gcc-c++-4.1.2 passed ucs1 gcc-c++-4.1.2-48.el5 gcc-c++-4.1.2 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libaio-devel-0.3.106-5 (i386) libaio-devel-0.3.106 (i386) passed ucs1 libaio-devel-0.3.106-5 (i386) libaio-devel-0.3.106 (i386) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libaio-devel-0.3.106-5 (x86_64) libaio-devel-0.3.106 (x86_64) passed ucs1 libaio-devel-0.3.106-5 (x86_64) libaio-devel-0.3.106 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libgcc-4.1.2-48.el5 (i386) libgcc-4.1.2 (i386) passed ucs1 libgcc-4.1.2-48.el5 (i386) libgcc-4.1.2 (i386) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libgcc-4.1.2-48.el5 (x86_64) libgcc-4.1.2 (x86_64) passed ucs1 libgcc-4.1.2-48.el5 (x86_64) libgcc-4.1.2 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libstdc++-4.1.2-48.el5 (i386) libstdc++-4.1.2 (i386) passed ucs1 libstdc++-4.1.2-48.el5 (i386) libstdc++-4.1.2 (i386) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libstdc++-4.1.2-48.el5 (x86_64) libstdc++-4.1.2 (x86_64) passed ucs1 libstdc++-4.1.2-48.el5 (x86_64) libstdc++-4.1.2 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 libstdc++-devel-4.1.2-48.el5 (x86_64) libstdc++-devel-4.1.2 (x86_64) passed

ucs1 libstdc++-devel-4.1.2-48.el5 (x86_64) libstdc++-devel-4.1.2 (x86_64) passed

Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 sysstat-7.0.2-3.el5 sysstat-7.0.2 passed ucs1 sysstat-7.0.2-3.el5 sysstat-7.0.2 passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 unixODBC-2.2.11-7.1 (i386) unixODBC-2.2.11 (i386) passed ucs1 unixODBC-2.2.11-7.1 (i386) unixODBC-2.2.11 (i386) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 unixODBC-2.2.11-7.1 (x86_64) unixODBC-2.2.11 (x86_64) passed ucs1 unixODBC-2.2.11-7.1 (x86_64) unixODBC-2.2.11 (x86_64) passed Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 unixODBC-devel-2.2.11-7.1 (i386) unixODBC-devel-2.2.11 (i386) passed

ucs1 unixODBC-devel-2.2.11-7.1 (i386) unixODBC-devel-2.2.11 (i386) passed

Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 unixODBC-devel-2.2.11-7.1 (x86_64) unixODBC-devel-2.2.11 (x86_64) passed

ucs1 unixODBC-devel-2.2.11-7.1 (x86_64) unixODBC-devel-2.2.11 (x86_64) passed

Result: Package existence check passed for \

Check: Package existence for \

Node Name Available Required Comment ------------ ------------------------ ------------------------ ----------

ucs2 ksh-20100202-1.el5 ksh-20060214 passed ucs1 ksh-20100202-1.el5 ksh-20060214 passed Result: Package existence check passed for \

Checking for multiple users with UID value 0

Result: Check for multiple users with UID value 0 passed

Check: Current group ID

Result: Current group ID check passed

Checking Core file name pattern consistency...

本文来源:https://www.bwwdw.com/article/8c8p.html

Top