使用 VMware 在 Linux 5.4 上安装、升级及维护 Oracle 10gR2 RAC

使用 VMware Linux 5.4 上安装、升级及维护 Oracle 10gR2 RAC

 

---- 实验名称
使用 VMware Server 2.0 Linux Enterprise 5.4 安装 升级 维护 Oracle 10gR2 RAC

 

---- 实验时间
2010
1

 

---- 实验内容
1.
Windows 操作系统上使用 VMware 建立 Oracle 两节点 RAC
2.
完成 10201 版本到 10204 版本的升级;
3.RAC
验证、维护。

----
实验环境
1.DELL M4400
笔记本电脑( 4GB 内存, 250GB 硬盘, 64 WIN7 操作系统)
2.Vmware Server 2.0
( E:/Tools/ 虚拟机 VMWare/Server2.0/VMware-server-2.0.2-203138.exe )
3.Linux Enterprise 5.4
(E:/ [ 红帽企业 Linux.5.4].rhel-server-5.4-i386-dvd.iso )
# uname -a
Linux rac1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
4.Oracle 10g for linux(10.2.0.1)(
E:/Oracle 10g R2 for linux )
5.Oracle 10.2.0.4 patch(E:/Oracle 10g R2 for linux/p6810189_10204_Linux-x86.zip )

----
创建所需要的目录
1.
D 盘根目录上创建 VMRAC 目录,在 VMRAC 目录下面创建三个目录,分别为 RAC1,RAC2,raw_disk
2.
验证
        X:/>tree D:/VMRAC
        D:/VMRAC
        ├─RAC1
        ├─RAC2
        └─raw_disk

 

 

---- 新建虚拟机
1.
打开 vmware Server ,点击 "Create Virtual Machine" ,在安装向导的帮助下创建一个新的虚拟机

2.”Name and Location” 选择一个数据库,点击 "Next"
3.Guest operating system
选择 "Linux operating system " Version 选择 "Red Hat Linux " ,点击 "Next"

4.”Memory and Processors” 调整使用内存大小到 "1024MB ", 选择 CPU 个数,这里我们只用一个即可,点击 "Next"

5.”Hard Disk” 选择 Create a New Virtual Disk ”, 点击 "Next"

6.”Properties” 页面, ”Capacity” 给新建的虚拟磁盘分配空间, Disk size(GB):"15.0 " 的空间(最少也要 8GB 的磁盘空间) ,”Location” 选择 "D:/VMRAC/RAC1/ RAC1.vmdk " ”File Options” 取消 "Allocate all disk space now." 选中 "split disk into 2 gB files " ,然后点击 "Next"

7.”Network Adapter” 选择 Add a Network Adapter ,然后点击 "Next";”Properties” 页面, ”Network Connection” 选择 Bridged ”,”Connect at Power On” 选择 Yes ,然后点击 "Next"

8.”CD/DVD Drive” 选择 Use an ISO Image ,然后点击 "Next",”Properties” 页面 ”Image File” 选择 E:/ [ 红帽企业 Linux.5.4].rhel-server-5.4-i386-dvd.iso ” ,”Connect at Power On” 选择 Yes ,然后点击 "Next"

9.”Floppy Drive” 选择 Don’t Add a Floppy Drive ,然后点击 "Next"

10.”USB Controller” 选择 Add a USB Controller ,然后点击 "Next"
11. ”Ready to Complete”,
点击 "Finish" ,完成新建虚拟机

----
配置虚拟机
1.
点击左中位置的 "Edit virtual machine settings "
2.
通过 "Add" "Remove" 按钮来对实验所需设备进行简单的添加或删除,首先我们要添加两块网卡,点击 "Add"
3.
点击 "Next"
4.
Hardware types 下面选中 "Ethernet Adapter" ,然后点击 "Next"
5.
添加后的第二块网卡 Ethernet 2 用于两节点内部通讯( cache fusion ),所以这里选择 "Host-only " ,当然选择桥接方式也是可以的,在 "Connect at power on " 里面打勾,然后点击 "Finish" ,这样一块新网卡就添加完毕;
6.
添加所需的磁盘,添加后总共 5 块硬盘,一块为本地磁盘,两块用作 ocr vote 作为 clusterware 安装所需,另外两块作为 ASM 磁盘,下面是具体步骤
7."Add"
"Next" "Hardware type" 里面选择硬盘图标 "Hard Disk" ,然后点击 "Next"
8.
选择地一项 "Create a new virtual disk " 创建一块新的虚拟磁盘,点击 "Next"
9.Virtual Disk Type
虚拟磁盘类型切记一定要选择 "SCSI (Recommended) " 方式
10.Disk size (GB):"0.1"
分配 100M 的空间,并选择 "Allocate all disk space now. " 立即分配方式,点击 "Next"
11.
注意,这里输入磁盘地址为 "D:/VMRAC/raw_disk/ocr.vmdk " 点击 "Advanced" Virtual device node 选择一个与本地磁盘不同的全新总线 "SCSI 1:1 " Mode 选择 "Independent " ,选择 "Persistent " ,然后点击 "Finish" 。强烈说明一下,我们在建立除本地硬盘之外的四块磁盘的时候,路径上一定要注意 ,不要把本地硬盘和其他四块磁盘放到一个目录下。 本地磁盘位于一个目录,裸设备磁盘位于另一个独立的目录,这样做主要是为实验后期磁盘克隆作考虑
12.
点击 "Finish" 之后,系统会进行磁盘的格式化操作,在磁盘创建时所分配的 100MB 空间会全部给予这块磁盘
14.D:/VMRAC/raw_disk/vote.vmdk
重复上述过程,创建的第二块磁盘,总线 "SCSI 1:2 " ,分配 100MB 空间大小
15.D:/VMRAC /raw_disk/asm1.vmdk
D:/VMRAC/raw_disk/asm2.vmdk 重复上述过程创建接下来的两块 ASM 磁盘,总线 "SCSI 1:3 " 和总线 "SCSI 1:4 " ,每块磁盘分配 2GB 大小,这两块磁盘主要用来存放 ORACLE 数据
16.
我们点击光驱图标,选择 "Use ISO image" 点击 "Browse" 指定到 linux 镜像介质对应的路径 " E:/ [ 红帽企业 Linux.5.4].rhel-server-5.4-i386-dvd.iso "
17.
所有设备创建完毕,具体清单如下 1024MB 内存、 5 块磁盘(分别位于两条 SCSI 总线)、两块网卡、光驱以及处理器

----Linux
操作系统安装
1.
启动虚拟机,回车, skip 自检的画面
2.
来到 linux 操作系统的安装界面,选择 "Next"
3.
选择英文为系统默认语言环境,适当的键盘,点击 "OK"
4.
初始化驱动器界面,选择 "Yes" ,共点击 5 次,选择 "Next"
5.
这一步很重要!一个是一定将除本地磁盘 /dev/sda 之外所有磁盘标识符前面小方框里面的勾给取消 掉,二是在 "Review and modify partitioning layout " 前面打勾,便于后期的系统分区与规划,点击 "Next" ,点击 "Yes"
6.
从这里可以看出,前面选择了的磁盘 /dev/sda 这里为可编辑状态,前面没有选上的磁盘从 /dev/sdb /dev/sde 为不可编辑状态,空白区域里面显示的分区信息属于 /dev/sda 磁盘
7.
使用默认分区,无误后点击 "OK" ,文件系统规划完毕,点击 "Next"
8.
使用系统默认,点击 "Next"
9.
接下来这张图片比较重要,前期我添加了两块网卡,所以这里对两块网卡的配置都要一一到位, Edit 编辑过程中主要遵循以下几个原则
        a
使用 IPv4 支持方式,不使用 IPv6 支持方式
        b
、网卡一 eth0 使用 DHCP ,网卡二 eth1 使用静态 IP 分配,且都使用私有地址( 192.168.1.100 /255.255.255.0 );
        c
、在 Hostname 中选择 manually 输入 "rac1 " 主机名字
10.
区域选择里面我们选择 " 上海 "
11.
设置系统 管理 员密码,这里设置为 "redhat "
12.
选择系统安装包,非常的重要!这里选上 "Software Development/Web Server " 俩个组建,然后选上下方的 "Customize now " ,点击 "Next"
13.
选择需要的安装包, FTP 必选
14.
在语言组建这块,只选上需要的 " 中文支持 "
15.
下面显示的是包的自检过程
16.
自检过程完毕之后,点击 "Next" 进行系统组建的安装,这个安装的过程非常的长,在这里可以休息一下等它自动完成
17.
点击 "Reboot" 重启
18.
在左边的列表中可以看到需要配置的具体清单,点击 "Forward"
19.
确认协议,然后点击 "Forward"
20.Disable
掉防火墙设置,点击 "Forward"
21.Disable
SELinux 的配置,点击 "Forward"
22.
取消 Kdump 的配置,继续 "Forward"
23.
设置系统日期和时间,继续 "Forward"
24.
给系统设置一个普通用户,跳过
25.
声卡设置,继续 "Forward"
26.
配置的最后一步,如果不安装附加的 CD ,这里就可以直接点击 "Finish"
27.
这时系统要求重启,点击 "OK" 即可
28.
输入超级用户帐号密码( root/redhat )登陆到 Linux 操作系统桌面
29.
到此操作系统安装完毕

30 .安装 VMWare Tools 。(可选安装)

 

 

---- 主节点的设置
1.
在配置 linux 系统之前,首先到主节点 RAC1 目录下,打开 .vmx 文件,添加下列内容:
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
scsi1:4.deviceType = "disk"

2.
修改 /etc/hosts 文件,这里一定要注意:系统主机名不能出现在环路地址中
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
##Public Network - (eth0)
10.0.210.210  rac1
10.0.210.220  rac2
##Private Interconnect - (eth1)
192.168.1.100  rac1-priv
192.168.1.101  rac2-priv
##Public Virtual IP (VIP) addresses - (eth0)
10.0.210.208  rac1-vip
10.0.210.209  rac2-vip

3.
创建组 oinstall,dba, 用户 oracle
# groupadd -g 500 oinstall
# groupadd -g 501 dba
# useradd -m -u 500 -g oinstall -G dba  -d /home/oracle  -s /bin/bash -c "Oracle Software Owner" oracle
# passwd oracle

4.
开通 FTP 功能(因为系统默认并没有打开 FTP 功能)
验证
# ifconfig eth0    
# netstat -rn      
# ping 10.0.210.254
手工开启服务
# service vsftpd start
调整配置文件(在 root 前添加 "#" 注释掉),使 windows 用户可以 ftp 登陆到 root 用户
# vi /etc/vsftpd/ftpusers
# vi /etc/vsftpd/user_list
Windows
上上传文件过程: ( 这里使用 ftp 软件上传 )

上传内容如下:

E:/rpm/rsh      ->    /home/oracle/rpm/rsh

E:/rpm/Oracle ASMLib 2.0/Drivers for kernel 2.6.18-164.el5/Intel IA32 (x86) Architecture ->    /home/oracle/rpm

E:/rpm/Oracle ASMLib 2.0/Enterprise Linux ->    /home/oracle/rpm

E:/Oracle 10g R2 for linux         ->    /home/oracle

5.
修改 oracle 用户的初始化参数文件
# vi /home/oracle/.bash_profile
##################################################
# User specific environment and startup programs
##################################################
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export CRS_HOME=/u01/app/crs
export ORA_CRS_HOME=/u01/app/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin

##################################################
# Each RAC node must have a unique ORACLE_SID. (i.e. orcl1, orcl2,...)
##################################################
export ORACLE_SID=RACDB1

export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin:$ORA_CRS_HOME/bin:/sbin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp

##################################################
# set NLS_LANG to resolve messy code in SQLPLUS
##################################################
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

##################################################
# Shell setting.
##################################################
umask 022
set -o vi
# stty erase ^H
#export PS1="/${ORACLE_SID}@`hostname` /${PWD}$ "
export SQLPATH=/home/oracle/sql

# auto add env parameter $PROMPT_COMMAND when use non-Linux tty login by ssh.
if [ "$SSH_CONNECTION" != '' ]; then
   export HOSTIP=`echo $SSH_CONNECTION |awk '{print $3}' |awk -F: '{if ($1 == "") print $4; else print $1}'`
   export PROMPT_COMMAND='echo -ne "/033]0;${USER}@'$HOSTIP':[${HOSTNAME%%.*}]:${PWD/#$HOME/~}  /007"'
fi

##################################################
# Oracle Alias
##################################################
alias vi=vim
alias base='cd $ORACLE_BASE'
alias home='cd $ORACLE_HOME'
alias alert='tail -200f $ORACLE_BASE/admin/RACDB/bdump/alert_$ORACLE_SID.log'
alias tnsnames='vi $ORACLE_HOME/network/admin/tnsnames.ora'
alias listener='vi $ORACLE_HOME/network/admin/listener.ora'

6.
创建 /u01/app 目录,要注意该目录所有者或 oracle 用户的权限
# mkdir -p /u01/app/crs
# chown -R oracle:oinstall /u01/app/crs
# chmod -R 775 /u01/app/crs
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle

7.
配置内核参数
# cat >> /etc/sysctl.conf << EOF
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
EOF

sysctl -p     ##
使用该命令使上述设置生效

8.
提高 Oracle 用户的 shell 限制
# cat >> /etc/security/limits.conf <<EOF
* soft nproc  2047
* hard nproc  16384
* soft nofile 1024
* hard nofile 65536
EOF

9.
修改安全限制
# cat >> /etc/pam.d/login << EOF
session required /lib/security/pam_limits.so
EOF

10.
配置 Hangcheck 计时器
# cat >> /etc/rc.local << EOF
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
EOF

11.
磁盘分区
# fdisk -l           ##
列出磁盘分区情况
# fdisk /dev/sdb     ##
操作顺序: n --- p --- 1 -- 回车 -- 回车 --  w
# fdisk /dev/sdc     ##
操作顺序: n --- p --- 1 -- 回车 -- 回车 --  w
# fdisk /dev/sdd     ##
操作顺序: n --- p --- 1 -- 回车 -- 回车 --  w
# fdisk /dev/sde     ##
操作顺序: n --- p --- 1 -- 回车 -- 回车 --  w
                     ##
经过上面的步骤,裸设备就创建好了。之所以称之为裸设备,就是因为自身不带任何文件系统。

                    
12.
打补丁

## 因为这些 安装 包存在依赖关系,所以需要严格按照下面的顺序进行打补丁

A :安装 oracle 软件需要的 rpm 包:

rpm -q binutils compat-db control-center gcc libstdc++ gcc-c++ glibc libXp /

libstdc++-devel make openmotif /

setarch compat-gcc

光盘上的安装包 :

binutils-2.17.50.0.6-12.el5.i386.rpm

gcc-4.1.2-46.el5.i386.rpm

compat-db-4.2.52-5.1.i386.rpm

libstdc++-devel-4.1.2-46.el5.i386.rpm

gcc-c++-4.1.2-46.el5.i386.rpm

libXp-1.0.0-8.1.el5.i386.rpm

libstdc++-4.1.2-46.el5.i386.rpm

libstdc++-4.1.2-46.el5.i386.rpm

openmotif-2.3.1-2.el5.i386.rpm

compat-libstdc++-296-2.96-138.i386

 

下载的安装包 :

compat-gcc-7.3-2.96.128

 

: 安装失败的话 , 先卸载老版本的相关插件包

B :安装 RAC 需要的 rpm 包:

rpm -q compat-binutils215 compat-libcwait compat-libstdc++-egcs openmotif21-debuginfo /

  xorg-x11-libs-compat oracleasm-support oracleasm-2.6.18-164.el5-2.0.5-1.el5 /

  oracleasm-2.6.18-164.el5xen oracleasm-2.6.18-164.el5debug /

  oracleasm-2.6.18-164.el5PAE libXp openmotif21 oracleasmlib

以上补丁包在 /home/oracle/rpm 目录下

  ( 注意: compat-libstdc++-33-3.2.3-61.i386.rpm 必须安装,而且要后安装。该包和 compat-libstdc++-7.3-2.96.128.i386.rpm 有冲突 )

/usr/lib 目录下:

lrwxrwxrwx 1 root root     18 Jan 25  2010 libstdc++.so.5 -> libstdc++.so.5.0.7

-rwxr-xr-x 1 root root 733456 Aug 21  2006 libstdc++.so.5.0.7

2 个文件是必须的,如果没有请检测安装的 rpm 包是否正确。

 

13. 配置裸设备:
# cat >> /etc/udev/rules.d/60-raw.rules << EOF
ACTION=="add", KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", KERNEL=="/dev/sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add", KERNEL=="/dev/sdd1",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"
ACTION=="add", KERNEL=="/dev/sde1",RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw /dev/raw/raw4 %M %m"
KERNEL=="raw[1-4]", OWNER="oracle", GROUP="oinstall", MODE="660"
EOF

重启服务:
# start_udev
Starting udev: [ OK ]
验证一下
[root@rac1 udev]# ls -al /dev/raw

total 0

drwxr-xr-x  2 root   root        120 Jan 21 16:52 .

drwxr-xr-x 13 root   root       4200 Jan 21 16:53 ..

crw-r-----  1 root   oinstall 162, 1 Jan 22 08:22 raw1

crw-r-----  1 oracle oinstall 162, 2 Jan 22 08:23 raw2

crw-r-----  1 oracle oinstall 162, 3 Jan 22 08:23 raw3

crw-r-----  1 oracle oinstall 162, 4 Jan 22 08:23 raw4

使用 raw –qa 查看是否已挂上设备

(注:如果所属用户和组不对,使用 chown 更改 chown -R oracle:oinstall /dev/raw/

Oracle Clusterware fails to start after a reboot due to permissions on raw devices reverting to default values, How to fix?
After a successful installation of Oracle Clusterware a simple reboot and the Clusterware fails to start. This is because the permissions on the raw devices for the OCR and voting disks e.g. /dev/raw/raw{x} revert to their default values (root:disk) and are inaccessible to Oracle. This change of behavor started with the 2.6 kernel; in RHEL4, OEL4, RHEL5, OEL5, SLES9 and SLES10. In RHEL3 the raw devices maintained their permissions across reboots so this symptom was not seen.

The way to fix this is on RHEL4, OEL4 and SLES9 is to create /etc/udev/permission.d/40-udev.permissions (you must choose a number that's lower than 50). You can do this by copying /etc/udev/permission.d/50-udev.permissions, and removing the lines that are not needed (50-udev.permissions gets replaced with upgrades so you do not want to edit it directly, also a typo in the 50-udev.permissions can render the system non-usable). Example permissions file:
# raw devices
raw/raw[1-2]:root:oinstall:0640
raw/raw[3-5]:oracle:oinstall:0660

Note that this applied to all raw device files, here just the voting and OCR devices were specified.

On RHEL5, OEL5 and SLES10 a different file is used /etc/udev/rules.d/99-raw.rules, notice that now the number must be (any number) higher than 50. Also the syntax of the rules is different than the permissions file, here's an example:

KERNEL=="raw[1-2]*", GROUP="oinstall", MODE="640"
KERNEL=="raw[3-5]*", OWNER="oracle", GROUP="oinstall", MODE="660"

This is explained in details in Note: 414897.1.


14.
关闭不需要的系统启动耗时服务
# chkconfig cups off
# chkconfig sendmail off
# chkconfig isdn off
# chkconfig smartd off
# chkconfig iptables off
# chkconfig pcmcia off

 

 

---- 副节点的设置
1.
关闭主节点
# shutdown -hy 0
2.
RAC1 目录中的所有文件 copy RAC2 目录中
3.
修改 RAC2 下的 vmx 文件,将其中出现的 "RAC1" 全部替换为 "RAC2"
4.
RAC1.VMDK 这个文件改为 RAC2.VMDK split 出来的其他文件的名字不能修改文件名字)

5. 在虚拟机的菜单 ”Virtual Machine” 点击 ”Add Virtual Machine to Inventory” ,选择 RAC2 目录下的 RAC1.vmx
6.
点击 绿色 启动按钮启动副节点 RAC2 ,在弹出来的对话框中选择 "I copied it"
7.
启动进入系统后,修改主机名
# hostname rac2
# vi /etc/sysconfig/network   ## 
其中需要修改的内容为: HOSTNAME=rac2
8.
然后将网卡的 MAC 地址修改为正确形式,通过 ifconfig 命令获得正确的网卡 MAC 地址,同时更新文件中设计的 IP 及主机名信息
# cd /etc/sysconfig/network-scripts
# mv ifcfg-eth0.bak ifcfg-eth0 -f
# mv ifcfg-eth1.bak ifcfg-eth1 -f
# ifconfig eth0
# ifconfig eth1
# vi ifcfg-eth0
# vi ifcfg-eth1
9.
切换到 oracle 用户下修改 ORACLE_SID 环境变量
# su - oracle
$ vi .bash_profile     ##
ORACLE_SID 修改为 RACDB2
10.
至此,副节点的设置完毕,重启系统,让主机名、 IP 地址生效。

 

 

---- 集群的配置
. 设置 SSH
1.
在主节点 RAC1 上以 oracle 用户身份生成用户的公匙和私匙
# ping rac2-eth0
# ping rac2-eth1
# su - oracle
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
$ ssh-keygen -t dsa

2.
在副节点 RAC2 上执行相同的操作,确保通信无阻
# ping rac1-eth0
# ping rac1-eth1
# su - oracle
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
$ ssh-keygen -t dsa

3.
在主节点 RAC1 oracle 用户执行以下操作
$ cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

4.
主节点 RAC1 上执行检验操作
$ ssh rac1 date
$ ssh rac2 date
$ ssh rac1-priv date
$ ssh rac2-priv date

5.
在副节点 RAC2 上执行检验操作
$ ssh rac1 date
$ ssh rac2 date
$ ssh rac1-priv date
$ ssh rac2-priv date

. 设置 RSH

(注意:安装 10g 版本的 数据库 的时候,只需要配置 SSH RSH 是早期版本安装需要的,因为 安全性 的问题渐渐不被人使用)
1.
首先,确保集群中的两个 Oracle RAC 节点上都 安装 rsh E:/rpm/rsh
# rpm -q rsh rsh-server
2.
如果未安装 rsh ,则运行以下命令
# su -
# rpm -ivh rsh-0.17-25.4.i386.rpm rsh-server-0.17-25.4.i386.rpm
3.
两个节点分别执行下面的命令,因为要启用 "rsh" "rlogin" 服务,必须将 /etc/xinetd.d/rsh 文件中的 "disable" 属性设置为 "no" 并且必须重新加载 xinetd
# su -
# chkconfig rsh on
# chkconfig rlogin on
# service xinetd reload
4.
两个节点上分别创建 /etc/hosts.equiv 文件,使 "oracle" 用户帐户在 RAC 节点中获得信任
# su -
# touch /etc/hosts.equiv
# chmod 600 /etc/hosts.equiv
# chown root:root /etc/hosts.equiv
5.
将两个节点添加到集群中类似于以下示例的两个 Oracle RAC 节点的 /etc/hosts.equiv 文件中:
# cat >> /etc/hosts.equiv << EOF
+RAC1 oracle
+RAC2 oracle
+RAC1-priv oracle
+RAC2-priv oracle
EOF
6.
尝试 测试 rsh 命令前,确保使用的是正确版本的 rsh 。在默认情况下, Red Hat Linux /usr/kerberos/sbin 放在 $PATH 变量的前面。这会导致执行 rsh Kerberos 版本。
我通常会重命名 rsh Kerberos 版本,以便使用正常的 rsh 命令。使用以下命令:
# su -
# which rsh
/usr/kerberos/bin/rsh
# mv /usr/kerberos/bin/rsh /usr/kerberos/bin/rsh.original
# mv /usr/kerberos/bin/rcp /usr/kerberos/bin/rcp.original
# mv /usr/kerberos/bin/rlogin /usr/kerberos/bin/rlogin.original
# which rsh
/usr/bin/rsh
7.
在两个节点( RAC1 RAC2 )使用如下命令进行验证
# su - oracle
$ rsh rac1 ls -l /etc/hosts.equiv
$ rsh rac1-priv ls -l /etc/hosts.equiv
$ rsh rac2 ls -l /etc/hosts.equiv
$ rsh rac2-priv ls -l /etc/hosts.equiv


. 配置共享磁盘
1.
主节点 RAC1 配置共享磁盘

#su -
#/etc/init.d/oracleasm configure
依据提示信息输入: oracle --> dba --> y --> y

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 <ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

 

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver:                     [  OK  ]

Scanning the system for Oracle ASMLib disks:               [  OK  ]
2. 副节点 RAC2 配置共享磁盘

#su -
# /etc/init.d/oracleasm configure
依据提示信息输入: oracle --> dba --> y --> y

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 <ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

 

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver:                     [  OK  ]

Scanning the system for Oracle ASMLib disks:               [  OK  ]
3.
仅在主节点 RAC1 上操作,创建卷组 VOL1/VOL2 ,分别对应 /dev/sdd /dev/sde ,对应 ORACLE RAC 所需磁盘 asm1 以及 asm2
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1

Marking disk "VOL1" as an ASM disk:                        [  OK  ]
# /etc/init.d/oracleasm createdisk VOL2 /dev/sde1

Marking disk "VOL2" as an ASM disk:                         [  OK  ]
4.
主节点 RAC1 扫描,显示
# /etc/init.d/oracleasm scandisks
# /etc/init.d/oracleasm listdisks
VOL1
VOL2

5.
副节点 RAC2 扫描,显示
# /etc/init.d/oracleasm scandisks
# /etc/init.d/oracleasm listdisks
VOL1
VOL2


----Clusterware
安装
注意:安装这步之前确保两个节点的时间一致!
1.
unzip 命令解压 clusterware 软件,赋予正确的权限和属主,再以 oracle 身份登陆进行图形界面安装
# cd /home/oracle
# chown -R oracle:oinstall clusterware
# chmod -R 777 clusterware
2.
打开一个终端窗口
3.
打开图形化限制
# xhost +
4.
在安装之前 oracle 用户下要检查当前的环境,有一些 软件 包缺失类的报错可以忽略
# su - oracle
$ cd /home/oracle/clusterware/cluvfy
$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 –verbose

cluvfy comp crs -n node-1,node-2 -verbose
cluvfy stage -pre crsinst -n node-1,node-2 -verbose
cluvfy stage -pre dbinst -n node1,node2 -verbose

. VIP 查找一组适合的接口有关,错误信息如下:
错误信息如下:
ERROR:
Could not find a suitable set of interfaces for VIPs.

这是一个 bug Metalink 中有详细说明, doc.id:338924.1 ,如说明中所述,可以忽略该错误,没什么问题。

5. oracle 用户进入到 clusterware 目录,以不进行系统环境检查的机制运行 runInstaller ,因为默认 redhat-5 是不支持 clusterware 的安装

# su –

# ls –l /dev/raw/ # 如果所有者 / 组不是 oracle oinstall 更改之
# su - oracle
$ cd /home/orcle/clusterware/
$ ./runInstaller -ignoreSysPreReqs
6.
稍微等上三、五秒钟,就能看到 clusterware 的安装界面,点击 "Next"
7.
根据我在 oracle 环境变量中的定义,系统默认将 oraInventory 目录安装到 /u01/app/oracle/oraInventory 下,点击 "Next"
        Enter the full path of the inventory directory: /u01/app/oracle/oraInventory
                   Specify Operation System group name: oinstall
8.
定义 clusterware 的安装路径,点击 "Next"
        Name: OraCrs10g_home
        Path: /u01/app/crs
9.
又到了安装前期的环境检查,这里需要把握的就是,凡是系统检查没有报告 "failed" ,那么就不用管, "warning" 或者 "not executed" 都没有关系,只要我们在对应的小方框里面打勾就可以了
10.Specify Cluster Configuration
这个地方系统默认只显示一个节点,另一个节点需要我们手工添加进来
        
点击 "Add..."
         Public Node Name: rac2
        Private Node Name: rac2-priv
        virtual Host Name: rac2-vip
11.
指定网卡类型,这里系统把所有可用的网卡都扫描进来,我们只用到 eth0 eth1 ,除了手工屏蔽掉 virbr0 之外(设置为 not use ),还需要把 eth0 设置为 public 方式, eth1 设置为 Private
12.
导入 ocr 所对应裸设备路径,点击 "Next"
        
选择 "External Redundancy"
        Specify OCR Location: /dev/raw/raw1
13.
导入 "vote" 所对应裸设备路径,点击 "Next"
        
选择 "External Redundancy"
        Voting Disk Location: /dev/raw/raw2
14.
磁盘、网络、安装路径设置完之后,下面开始正式的安装过程,点击 "Install " ,主节点安装完成后,系统会自动往 RAC2 对应目录下拷贝 clusterware 的所有文件。
15.
安装过程完成之后,需要两个节点各自以 root 身份运行一些小脚本
16.RAC1
节点执行 orainstRoot.sh
# cd /u01/app/oracle/oraInventory/
# ./orainstRoot.sh
17.RAC2
节点执行 orainstRoot.sh
# cd /u01/app/oracle/oraInventory/
# ./orainstRoot.sh
18.RAC1
节点执行 root.sh
# cd /u01/app/crs/
# ./root.sh

Checking to see if Oracle CRS stack is already configured

/etc/oracle does not exist. Creating it now.

 

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

assigning default hostname rac1 for node 1.

assigning default hostname rac2 for node 2.

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 1: rac1 rac1-priv rac1

node 2: rac2 rac2-priv rac2

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

Now formatting voting device: /dev/raw/raw2

Format of 1 voting devices complete.

Startup will be queued to init within 90 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

        rac1

CSS is inactive on these nodes.

        rac2

Local node checking complete.

Run root.sh on remaining nodes to start CRS daemons.


19.RAC2
节点上执行 root.sh 之前需要编辑两个文件 ,这两个文件都位于 /u01/app/crs/bin 下,文件名分别为 vipca srvctl ,需要 unset LD_ASSUME_KERNEL
# vi /u01/app/crs/bin/vipca
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
#End workaround
fi 后新添加一行:
unset LD_ASSUME_KERNEL

然后编辑 srvctl 文件,找到如下内容:
# vi /u01/app/crs/bin/srvctl
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
同样在其后新增加一行:
unset LD_ASSUME_KERNEL

对应的报错信息是:
/u01/app/product/10.2.0/crs_1/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0:
cannot open shared object file: No such file or directory

20.
然后到 RAC2 节点下用 root 用户身份执行 /u01/app/crs 下的 root.sh
1).
这里还会报错,处理方法如下 :
# cd /u01/app/crs/bin
# ./oifcfg iflist
# ./oifcfg setif -global eth0/10.0.210.192:public
# ./oifcfg setif -global eth1/192.168.1.0:cluster_interconnect
# ./oifcfg getif

eth0  10.0.210.192  global  public

eth1  192.168.1.0  global  cluster_interconnect


2).
图形界面 RAC2 副节点(此步骤亦可以在 RAC1 主节点进行操作):
# cd /u01/app/crs/bin
# ./vipca
点击 "Next
3).
系统自动找到 public eth0 ,点击 "Next"
4).
在空白处填写各节点对应的 vip 名称以及 IP 地址(其实只要填写 RAC1 vip 名称 "rac1-vip" ,再点其他空白处,就自动获取出来了),点击 "Next"
输入后信息如下:
Node name IP Alias Name IP address Subnet Mask
rac1 rac1-vip 192.168.1.200 255.255.255.0
rac2 rac2-vip 192.168.1.201 255.255.255.0
5).
点击 "Finish" ,开始安装
        
提示信息如下:
        Creating VIP application resource on (2) nodes
        Creating GSD application resource on (2) nodes
        Creating ONS application resource on (2) nodes
        Starting VIP application resource on (2) nodes
        Starting GSD application resource on (2) nodes
        Starting ONS application resource on (2) nodes

( 中间有个错误警告,可以忽略:

CRS1006:No more members to consider

CRS-0215:Could not start resource ‘ora.rac1.vip’.Check the log file “/u01/app/crs/log/rac1/racg/ora.rac1.vip.log” for more details)


6).
安装完之后就可以点击 "ok" 退出了

21.vipca
执行成功后,那么相当于 RAC2 root.sh 也顺利完成使命,下一步需要做的就是返回到 RAC1 节点,执行剩下的步骤
        
涉及到下面的三个配置和验证 , 通常,第三部的验证如果不通过不影响后续的安装,不过如果严格按照前面的步骤进行操作这里是不会出现问题的。
        Oracle Notification Server Configuration Assistant
        Oracle Private Interconnect Configuration Assistant
        Oracle cluster Verification Utility
22.
收到 "The installation of Oracle Clusterware was successful." 提示信息后,点击 "Exit" "Yes" 推出整个的 clusterware 的安装过程
23.
验证安装成功的方法
[root@rac1 ~]# cd /u01/app/crs/bin
[root@rac1 bin]# ./crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    ONLINE    ONLINE    rac1        
ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    ONLINE    ONLINE    rac2


[root@rac2 ~]# cd /u01/app/crs/bin
[root@rac2 bin]# ./crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    ONLINE    ONLINE    rac1        
ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    ONLINE    ONLINE    rac2

24.
到此集群软件的安装结束。

 

 

----Oracle Software 安装
注意:安装这步之前确保两个节点的时间一致!
1.
unzip 命令解压 10201_database_linux32.zip 软件,赋予正确的权限和属主,再以 oracle 身份登陆进行图形界面安装
# cd /home/oracle
# chown -R oracle:oinstall database
# chmod -R 777 database
2.
如下操作后,弹出 oracle 安装界面
# xhost +
# su - oracle
$ cd /u01/oracle/database
$ ./runInstaller ignoreSysPreReqs
3.
点击 "Next"
4.oraInventory
仍然使用系统默认的路径,点击 "Next"
        Enter the full path of the inventory directory: /u01/app/oracle/oraInventory
                   Specify Operation System group name: oinstall
5.
选择 企业 版安装方式, Enterprise Edition (1.24GB) ,点击 "Next"
6.
选择 ORACLE 数据库的安装路径,点击 "Next"
        Name: OraDb10g_home1
        Path: /u01/app/oracle/product/10.2.0/db_1
7.
选中两个节点,点击 "Next"        
8.
执行系统级检查
9.
"warning" "not executed" 的小方框里面打勾,点击 "Next"
10."Install database Software only"
,这里只安装 database 软件,实例在后期安装
11.
点击 "Install" 进行数据库 软件 的安装,时间相对比较长
12.
安装快结束的时候提示在 root 用户执行几个脚本
13.
分别到 RAC1 RAC2 个节点分别执行 root.sh 脚本
# cd /u01/app/oracle/product/10.2.0/db_1
# ./root.sh

Running Oracle10 root.sh script...

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

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

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

   Copying dbhome to /usr/local/bin ...

   Copying oraenv to /usr/local/bin ...

   Copying coraenv to /usr/local/bin ...

 

 

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.
14.
点击 "Exit" 进行退出, database 软件部分安装结束

 

 

----listener 安装配置
1.
oracle 用户的图形化界面的终端运行 netca ,打开网络配置界面,选择 "Cluster configuration" 配置方式,点击 "Next"
2.
选中两个节点 "Select all nodes" ,点击 "Next"
3.
选择监听配置模式 "Listener configuration" ,点击 "Next"
4.
选择 "Add" ,点击 "Next"
5.
给监听起一个名称,可以使用系统默认的 LISTENER ,然后点击 "Next"
6.
选择可使用的协议,这里选择 TCP 协议,点击 "Next"
7.
使用 1521 端口,点击 "Next"
8.
系统问是否还要配置其他监听,选择 "No" ,点击 "Next"
9.
监听配置完毕,点击 "Next" 退出
10.
在终端窗口可以看到监听的配置情况
11.
/u01/app/crs/bin 下运行命令 crs_stat -t ,可以看到刚配置好的两个监听进程已经启动
[root@rac1 bin]# ./crs_stat -t

Name           Type           Target    State     Host       

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

ora....C1.lsnr application    ONLINE    ONLINE    rac1       

ora.rac1.gsd   application    ONLINE    ONLINE    rac1       

ora.rac1.ons   application    ONLINE    ONLINE    rac1       

ora.rac1.vip   application    ONLINE    ONLINE    rac1       

ora....C2.lsnr application    ONLINE    ONLINE    rac2       

ora.rac2.gsd   application    ONLINE    ONLINE    rac2       

ora.rac2.ons    application    ONLINE    ONLINE    rac2       

ora.rac2.vip   application    ONLINE    ONLINE    rac2
12.
到此,监听部分的配置过程结束。

 

 

----ASM instance database instance 的安装
1.
确保三个条件
    1).
要确保两个节点的 CRS 进程都已经起来
    2).
要确保两个节点的监听进程都已经启动
    3).
要确保 vip 都运行在各自的节点上
2.
RAC1 主节点上,以 oracle 用户登陆图形界面,打开一个终端,运行 dbca
3."Oracle Real Application Clusters database"
选择 RAC 方式创建数据库,点击 "Next"
4.
选择 "Create a Database" ,点击 "Next"
5."Select All"
选上两个节点 RAC1 RAC2 ,点击 "Next"
6.
选择 "Custom Database" ,点击 "Next"
7.
创建数据库名为 "RACDB" ,点击 "Next"
    Global Database Name: RACDB
              SID Prefix: RACDB
8.Enterprise Manager
(图形化 管理 界面)这个地方可选可不选,点击 "Next" 继续           
9.
输入管理员密码,点击 "Next"
10.
选择 "Automatic Storage Management (ASM)" 方式,点击 "Next"
11.
输入 ASM 实例的密码,以及相关的参数文件类型( IFILE ),点击 "Next"
    {ORACLE_BASE}/admin/+ASM/pfile/init.ora
12.
系统提示即将创建 ASM 实例,点击 "OK" 进行 ASM 实例的创建
13.
点击 "CREATE NEW" 来创建共享卷组
14.
点击创建卷组之后,系统会扫描可用的裸设备,因为前期创建了 2GB 大小的 /dev/sdd /dev/sde 两块盘,这里被系统扫描出来。选中两块磁盘,给卷组命名为 "rac_disk" ,冗余方式选择 "External" ,然后点击 "OK"
15.
创建共享卷组 "rac_disk" 过程     
16.
创建好后,卷组会自动在两个节点 mount
    
若在创建共享卷组的时候出现错误提示说 RAC2 上的监听没有生效,因此无法在 RAC2 节点上 mount 卷组。遇到这种情况的解决方法是在 RAC2 节点上停掉 CRS 进程重启一次,然后再回到 RAC1 图形界面下点击 "Mount All" 可以解决
17."Use Oracle-Managed Files" Database Area:+RAC_DISK
,点击 "Next" 即可     
18.
是否设置 flashback 跟启用归档模式,为了节省系统开销,就不选择,点击 "Next"
19.Database Components
选择,可以少选或者全部取消选,点击 "Next"
20.
点击 "Add" ,输入 "racdb_taf " 服务名,右侧选择 "Preferred" ,右下方选择 "Basic" ,点击 "Next"
21.Memory
部分给一个合理的百分比,一般用系统默认即可
22.Sizing
部分也使用系统默认
23.Character Sets
字符部分我把数据库字符集修改成 ZHS16GBK 方式,这也是比较通用的字符集,国家字符集保持系统默认
24.Connection Mode
连接模式保持系统默认,点击 "Next"
25.
选择是否保存创建模板和创建的脚本,全部选择上,点击 "Finish"
26.
点击 "OK" 进入到一个相当漫长的等待时间,在这段时间里可以使用 crs_stat -t 命令实时观察实例是否已经创建完成。
27.
安装完毕后,在提示框中点击 "Exit" ,进入到实例启动的过程, "Starting cluster database "RACDB" and its instances "RACDB1,RACDB2" in progress ..."
28.
看到如下的状态后,表示数据库创建全部完成
$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    rac1        
ora....B2.inst application    ONLINE    ONLINE    rac2        
ora.RACDB.db   application    ONLINE    ONLINE    rac1        
ora....DB1.srv application    ONLINE    ONLINE    rac1        
ora....DB2.srv application    ONLINE    ONLINE    rac2        
ora...._taf.cs application    ONLINE    ONLINE    rac1        
ora....SM1.asm application    ONLINE    ONLINE    rac1        
ora....C1.lsnr application    ONLINE    ONLINE    rac1        
ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    ONLINE    ONLINE    rac1        
ora....SM2.asm application    ONLINE    ONLINE    rac2        
ora....C2.lsnr application    ONLINE    ONLINE    rac2        
ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    ONLINE    ONLINE    rac2
      


----10201RAC
数据库 升级 10204 版本
First of all
:在升级之前一定要做好 备份 ,包括数据库的备份和集群软件和数据库软件的备份。

1.
RAC1 RAC2 两个节点停掉 EM isqlplus
$ emctl stop dbconsole
$ isqlplusctl stop

2.
RAC1 节点执行以下命令,停止数据库实例和 asm 实例还有监听
$ srvctl stop database -d RACDB
$ crs_stop ora.rac1.ASM1.asm
$ crs_stop ora.rac2.ASM2.asm
$ crs_stop ora.rac1.LISTENER_RAC1.lsnr
$ crs_stop ora.rac2.LISTENER_RAC2.lsnr

3.
达到下面的状态开始升级:
$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....B1.inst application    OFFLINE   OFFLINE               
ora....B2.inst application    OFFLINE   OFFLINE               
ora.RACDB.db   application    OFFLINE   OFFLINE               
ora....DB1.srv application    OFFLINE   OFFLINE               
ora....DB2.srv application    OFFLINE   OFFLINE               
ora...._taf.cs application    OFFLINE   OFFLINE               
ora....SM1.asm application    OFFLINE   OFFLINE               
ora....C1.lsnr application    OFFLINE   OFFLINE               
ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    ONLINE    ONLINE    rac1        
ora....SM2.asm application    OFFLINE   OFFLINE               
ora....C2.lsnr application    OFFLINE   OFFLINE               
ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    ONLINE    ONLINE    rac2        

4.
图形界面升级 cluster
1).
RAC1 主节点图形化界面中完成升级补丁的安装
# xhost +
# su - oracle
$ cd /home/oracle/Disk1
$ ./runInstaller -ignoreSysPreReqs

2).
点击 “Next”

3).
输入 crs 的名字和目录,点击 “Next”
Name: OraCrs10g_home
Path: /u01/app/crs

4).
系统检测,点击 “Next”

5).
点击 “Install” 进行安装,这步骤安装时间较长。

6).
两个节点先后执行界面提示的脚本,停止 crs 相关的服务并执行 root102.sh 脚本
[root@rac1 ~]# crsctl stop crs
[root@rac2 ~]# crsctl stop crs
[root@rac1 ~]# cd /u01/app/crs/install
[root@rac1 install]# ./root102.sh
[root@rac2 ~]# cd /u01/app/crs/install
[root@rac2 install]#./root102.sh

5.
升级数据库软件,满足下面这个状态后才可以升级:
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....B1.inst application    OFFLINE   OFFLINE               
ora....B2.inst application    OFFLINE   OFFLINE               
ora.RACDB.db   application    OFFLINE   OFFLINE               
ora....DB1.srv application    OFFLINE   OFFLINE               
ora....DB2.srv application    OFFLINE   OFFLINE               
ora...._taf.cs application    OFFLINE   OFFLINE               
ora....SM1.asm application    OFFLINE   OFFLINE               
ora....C1.lsnr application    OFFLINE   OFFLINE               
ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    ONLINE    ONLINE    rac1        
ora....SM2.asm application    OFFLINE   OFFLINE               
ora....C2.lsnr application    OFFLINE   OFFLINE               
ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    ONLINE    ONLINE    rac2        
                                                                                                               
6.
图形界面安装。
1).
进入到 RAC1 主节点图形界面,开启一个终端窗口
2).
开启图形限制
# xhost +
3).
进入到软件的安装目录
# su - oracle
$ cd /home/oracle/Disk1/
4).
执行下面命令进入到安装界面
$ ./runInstaller -ignoreSysPreReqs
5).
点击 “Next”
6).Specify Home Details
这里按照默认值,点击 “Next”
Name: OraDb10g_home1
Path: /u01/app/oracle/product/10.2.0/db_1
7).
看到两个节点都是默认被选中的,点击 “Next”
8).
系统自检,可以忽略无关紧要的报错信息,这一步基本不会出现自检不通过的情况,点击 “Next”
9).Oracle Configuration Manager Registration
这里直接点击 “Next”
10).Summary
,点击 “Install” 进行安装,很长时间的等待
11).RAC1
RAC2 两个节点分别执行 root.sh 脚本
# cd /u01/app/oracle/product/10.2.0/db_1
[root@rac1 db_1]# ./root.sh
[root@rac1 db_1]# ./root.sh


7.
数据字典升级,只在一个节点,这里选择 RAC1 主节点进行操作。
[root@rac1 db_1]# crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora....B1.inst application    OFFLINE   OFFLINE              
ora....B2.inst application    OFFLINE   OFFLINE              
ora.RACDB.db   application    OFFLINE   OFFLINE              
ora....DB1.srv application    OFFLINE   OFFLINE              
ora....DB2.srv application    OFFLINE   OFFLINE              
ora...._taf.cs application    OFFLINE   OFFLINE              
ora....SM1.asm application    OFFLINE   OFFLINE              
ora....C1.lsnr application    OFFLINE   OFFLINE              
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora....SM2.asm application    OFFLINE   OFFLINE              
ora....C2.lsnr application    OFFLINE   OFFLINE              
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2       

$ srvctl start listener -n RAC1
$ export ORACLE_SID=+ASM1
$ sqlplus / as sysdba
SQL> startup;
SQL> exit;
$ export ORACLE_SID=RACDB1
$ sqlplus / as sysdba
SQL> startup nomount;
SQL> alter system set cluster_database=false scope=spfile;
SQL> shutdown immediate;
SQL> startup upgrade ;
SQL> spool upgrade.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> spool off
SQL> alter system set cluster_database=true scope=spfile;
SQL> shutdown immediate;

8.
RAC1 RAC2 两个节点进行下面的操作:
$ cd $ORACLE_HOME/install
$ ./changePerm.sh     --
这里运行时间比较长

9.
检查无效的对象,对无效的对象进行编译:
SQL> startup;
SQL> select count(*) from dba_objects where status='INVALID';
SQL> set lin 120
SQL> set pages 0
SQL> col OBJECT_NAME for a50
SQL> select owner,object_name from dba_objects where status='INVALID';
SQL> @?/rdbms/admin/utlrp.sql
SQL> shutdown immediate;

10.
升级后检查:
$ crsctl query crs softwareversion
$ ocrcheck
$ olsnodes
$ crsctl query crs activeversion
$ crsctl check crs
$ crs_stat -t

11.
启动数据库,整个升级结束。

 

 

----RAC 数据库验证、 维护
1.
状态查询
1).
所有实例和服务的状态
RACDB1@rac1 /home/oracle$ srvctl status database -d RACDB
Instance RACDB1 is not running on node rac1
Instance RACDB2 is not running on node rac2

2).
单个实例的状态
RACDB1@rac1 /home/oracle$ srvctl status instance -d RACDB -i RACDB1
Instance RACDB1 is running on node rac1
RACDB1@rac1 /home/oracle$ srvctl status instance -d RACDB -i RACDB2
Instance RACDB2 is running on node rac2

3).
数据库 全局命名服务的状态
 $ srvctl status service -d RACDB -s racdb_taf
Service RACDB_taf is running on instance(s) RACDB2, RACDB1

4).
特定节点上节点应用程序的状态
 
$ srvctl status nodeapps -n rac1
VIP is running on node:rac1
GSD is running on node: rac1
Listener is running on node: rac1
ONS daemon is running on node: rac1

5).ASM
实例的状态
$ srvctl status asm -n rac1
ASM instance +ASM1 is running on node rac1.

6.)
列出配置的所有数据库
$ srvctl config database
RACDB

7).
显示 RAC 数据库的配置
$ srvctl config database -d RACDB
rac1 RACDB1 /u01/app/oracle/product/10.2.0/db_1
rac2 RACDB2 /u01/app/oracle/product/10.2.0/db_1

8).
显示指定集群数据库的所有服务
 $ srvctl config service -d RACDB
RACDB_taf PREF:RACDB2 RACDB1 AVAIL:

9).
显示节点应用程序的配置 VIP GSD ONS 、监听器)
$ srvctl config nodeapps -n rac1 -a -g -s -l
VIP exists.:/rac1-vip/192.168.1.200/255.255.255.0/eth0:eth1
GSD exists.
ONS daemon exists.
Listener exists.

10).
显示 ASM 实例的配置
$ srvctl config asm -n rac1
+ASM1 /oracle/app/oracle/product/10.2.0/db_1

2.
启动 / 停止集群
1).
停止 Oracle RAC 10g 环境
$ export ORACLE_SID=RACDB1
$ emctl stop dbconsole
$ srvctl stop instance -d RACDB -i RACDB1
$ srvctl stop asm -n rac1
$ srvctl stop nodeapps -n rac1

2).
启动 Oracle RAC 10g 环境
$ export ORACLE_SID=RACDB1
$ srvctl start nodeapps -n rac1
$ srvctl start asm -n rac1
$ srvctl start instance -d RACDB -i RACDB1
$ emctl start dbconsole

3).
使用 SRVCTL 启动 / 停止所有实例
$ srvctl start database -d RACDB
$ srvctl stop database -d RACDB

4).
停止 unknowned 状态服务的脚本
RACDB1@rac1 /home/oracle$ cat shutdown_services.sh
crs_stop ora.RACDB.RACDB1.inst
crs_stop ora.RACDB.RACDB2.inst
crs_stop ora.RACDB.db
crs_stop ora.RACDB.racdb_taf.RACDB1.srv
crs_stop ora.RACDB.racdb_taf.RACDB2.srv
crs_stop ora.RACDB.racdb_taf.cs
crs_stop ora.rac1.ASM1.asm
crs_stop ora.rac1.LISTENER_RAC1.lsnr
crs_stop ora.rac1.gsd
crs_stop ora.rac1.ons
crs_stop ora.rac1.vip
crs_stop ora.rac2.ASM2.asm
crs_stop ora.rac2.LISTENER_RAC2.lsnr
crs_stop ora.rac2.gsd
crs_stop ora.rac2.ons
crs_stop ora.rac2.vip

----
参考文档
《在 Linux x86 上安装 Oracle RAC 10g
作者: John Smiley
http://www.oracle.com/technology/global/cn/pub/articles/smiley_rac10g_install.html

《在 Oracle Enterprise Linux iSCSI 上构建您自己的 Oracle RAC 集群》
作者: Jeffrey Hunter
http://www.oracle.com/technology/global/cn/pub/articles/hunter_rac10gr2_iscsi.html

[ 三思笔记 ]- 手把手教你用 vmware 安装 oracle10g RAC
作者:君三思
http://www.itpub.net/thread-1009235-1-1.html

《使用 VMware Linux 5.1 上安装、升级及维护 Oracle 10gR2 RAC
作者: secooler
http://space.itpub.net/?uid-519536-action-viewspace-itemid-557694


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Comer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值