在Redhat 平台上RAC 装过多次。 本来也没打算整理这篇文章。 但是在搭建这个环境的过程中有了一下新的体会。 而且RAC 架构也不一样。 搭建之后对RAC 也有更深的理解。
实验平台配置信息:
存储: openfiler
服务器: 2套虚拟机,内存900M,硬盘15GB
操作系统: radhat 5.4
用iscsi 和 Multipath 将存储连接到服务器上。
服务器主机名 |
rac1 |
rac2 |
公共IP地址(eth0) |
10.85.10.1 |
10.85.10.2 |
虚拟IP地址(eth0) |
10.85.10.3 |
10.85.10.4 |
私有IP地址(eth1) |
192.168.1.200 |
192.168.1.201 |
ORACLE RAC SID |
orcl1 |
orcl1 |
集群实例名称 |
orcl |
|
OCR |
/dev/raw/raw1 /dev/mapper/ocrp1 200M /dev/raw/raw2 /dev/mapper/ocrp2 200M |
|
voting disk |
/dev/raw/raw3 /dev/mapper/ocrp3 200M /dev/raw/raw4 /dev/mapper/ocrp4 200M /dev/raw/raw5 /dev/mapper/ocrp5 200M |
|
ASM |
/dev/mapper/DATAp1 10G Oracle Data /dev/mapper/FRAp2 5G FRA |
相关文档参考:
RAC 的一些概念性和原理性的知识
http://blog.csdn.net/xujinyang/article/details/6837273
RAW+ASM 的RAC 安装文档
http://blog.csdn.net/xujinyang/article/details/6829656
Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
http://blog.csdn.net/xujinyang/article/details/6837265
一. 准备工作
1.1 安装操作系统
按设计配置好IP,机器名,网关等信息。
1.2 连接存储,配置Multipath
参考:
openfiler 搭建虚拟存储 并 配置服务端
http://blog.csdn.net/xujinyang/article/details/6933090
Multipath实现LUN设备名称的持久化
http://blog.csdn.net/xujinyang/article/details/6933103
在Oracle raw 配置的文章中也有Multipath 配置的方法,参考:
Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5-OEL5 [ID 564580.1]
http://blog.csdn.net/xujinyang/article/details/6834880
1.3 同步时间:
1) 在rac1上启动time-stream 服务,并设置为自动动
[root@rac1 ~]# chkconfig time-stream on
在redhat 4中,是: #chkconfig time on
2)在rac2 上添加任务,每一分钟和rac1进行一次时间同步。
[root@rac2 ~]# crontab -l
*/1 * * * * rdate -s 10.85.10.1
rac 对节点间时间较敏感,RAC不能容忍节点间时钟不同步,否则RAC会Down掉,而且在安装vipca 的时候也会报错。 具体时间同步参考我的blog:
Linux 时间同步配置
http://blog.csdn.net/xujinyang/article/details/6924299
linux 下修改日期和时间
http://blog.csdn.net/xujinyang/article/details/6925658
1.4 设置IP
修改解析文件: /etc/hosts . 两个node都要一样. 注意,机器名和public名要一样。
127.0.0.1 localhost (必须要这样)
# Public Network - (eth0)
10.85.10.1 rac1
10.85.10.2 rac2
# Private Interconnect - (eth1)
192.168.1.200 rac1-priv
192.168.1.201 rac2-priv
# Public Virtual IP (VIP) addresses - (eth0:1)
10.85.10.3 rac1-vip
10.85.10.4 rac2-vip
1.5. 建立用户等效性
建立等效用户之后,2个结点直接Oracle 用户互相访问就不在需要密码了,
1) 在RAC1,RAC2两个节点上添加group add dba oinstall 组, 创建oracle 用户, 主组oinstall, 附加组是dba.
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
2) 建立等效用户
在rac1:
[oracle@rac1 ~]$ mkdir ~/.ssh
[oracle@rac1 ~]$ chmod 700 ~/.ssh
[oracle@rac1 ~]$ ssh-keygen -t rsa
[oracle@rac1 ~]$ ssh-keygen -t dsa
在rac2:
[oracle@rac2 ~]$ mkdir ~/.ssh
[oracle@rac2 ~]$ chmod 700 ~/.ssh
[oracle@rac2 ~]$ ssh-keygen -t rsa
[oracle@rac2 ~]$ ssh-keygen -t dsa
3) 切换回rac1,接着执行:
[oracle@raw1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@raw1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
提示:下列命令会提示你输入rac2 的oracle 密码,按照提示输入即可,如果失败可重新尝试执行命令。
Rac1 节点:
[oracle@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
Rac2节点:
[oracle@rac2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@rac2 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@rac2 ~]$ scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
4) 确保2个node都有相互的结点信息。两机相互执行。
[oracle@rac1 ~]$ ssh rac1 date
[oracle@rac1~]$ ssh rac2 date
[oracle@rac1 ~]$ ssh rac1-priv date
[oracle@rac1 ~]$ ssh rac2-priv date
切换至rac2 执行
[oracle@rac2 ~]$ ssh rac1 date
[oracle@rac2~]$ ssh rac2 date
[oracle@rac2 ~]$ ssh rac1-priv date
[oracle@rac2 ~]$ ssh rac2-priv date
1.6. 在2个结点上创建目录
[root@rac1 ~]# mkdir -p /u01/app/oracle
[root@rac1 ~]# chown -R oracle:oinstall /u01
[root@rac1 ~]# chmod -R 777 /u01
1.7. 修改/etc/sysctl.conf ,添加这些kernel 参数
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
kernel.shmall = 131072000
kernel.shmmax = 544288000 -官网提供的524288000. 这个值小了。检查时通不过
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
# sysctl -p 立刻生效
具体内容参考我的blog:
Linux 内核参数及Oracle相关参数调整
http://blog.csdn.net/xujinyang/article/details/6830493
1.8. 设置用户资源限制,2个节点都要执行
vi /etc/sysconfig/limits.conf
Oracle soft memlock 5242880
Oracle hard memlock 524280
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
将下面一行添加到/etc/pam.d/login文件中:
session required /lib/security/pam_limits.so
1.9. 配置 hangcheck-timer 模块,2个节点都要执行
Hangcheck-timer 是Linux 提供的一个内核级的IO-Fencing 模块, 这个模块会监控Linux 内核运行状态, 如果长时间挂起, 这个模块会自动重启系统。 这个模块在Linux 内核空间运行, 不会受系统负载的影响。 这个模块会使用CPU的Time Stamp Counter(TSC) 寄存器,这个寄存器的值会在每个时钟周期自动增加, 因此使用的是硬件时间,所以精度更高。
配置这个模块需要2个参数: hangcheck_tick 和 hangcheck_margin。
hangcheck_tick用于定义多长时间检查一次,缺省值是30秒。 有可能内核本身很忙, 导致这个检查被推迟, 该模块还允许定义一个延迟上限,就是hangcheck_margin, 它的缺省值是180秒。
Hangcheck-timer 模块会根据hangcheck_tick 的设置,定时检查内核。只要2次检查的时间间隔小于 hangcheck_tick + hangchec_margin, 都会认为内核运行正常,否则就意味着运行异常,这个模块会自动重启系统。
CRS本身还有一个MissCount 参数,可以通过crsctl get css miscount 命令查看。
当RAC结点间的心跳信息丢失时, Clusterware 必须确保在进行重构时,故障结点确实是Dead 状态,否则结点仅是临时负载过高导致心跳丢失,然后其他结点开始重构,但是结点没有重启,这样会损坏数据库。 因此MissCount 必须大于 hangcheck_tick+hangcheck_margin的和。
1) 查看模块位置:
[root@rac1 ~]# find /lib/modules -name "hangcheck-timer.ko"
/lib/modules/2.6.18-164.el5/kernel/drivers/char/hangcheck-timer.ko
/lib/modules/2.6.18-164.el5xen/kernel/drivers/char/hangcheck-timer.ko
2) 配置系统启动时自动加载模块,在/etc/rc.d/rc.local 中添加如下内容
[root@rac1 ~]# modprobe hangcheck-timer
[root@rac1 ~]# vi /etc/rc.d/rc.local
modprobe hangcheck-timer
3) 配置hangcheck-timer参数, 在/etc/modprobe.conf 中添加如下内容:
[root@rac1 ~]# vi /etc/modprobe.conf
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
4) 确认模块加载成功:
[root@rac1 ~]# grep Hangcheck /var/log/messages | tail -2
Sep 7 19:53:03 rac1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).
Sep 7 19:53:03 rac1 kernel: Hangcheck: Using monotonic_clock().
1.10 raw 设备配置
这一步是关键。 因为redhat 5上raw 与redhat 5有区别, 官网提供设置的Raw的方法。 按照上面的提示设置就好了。
Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5-OEL5 [ID 564580.1]
http://blog.csdn.net/xujinyang/article/details/6834880
先设置好multipath。 做好分区:
[root@rac2 ~]# ll /dev/mapper/
total 0
crw------- 1 root root 10, 62 Dec 1 13:53 control
brw-rw---- 1 oracle oinstall 253, 0 Dec 1 13:55 DATA
brw-rw---- 1 oracle oinstall 253, 9 Dec 1 14:09 DATAp1
brw-rw---- 1 oracle oinstall 253, 1 Dec 1 13:55 FRA
brw-rw---- 1 oracle oinstall 253, 8 Dec 1 14:09 FRAp1
brw-rw---- 1 root oinstall 253, 2 Dec 1 13:55 OCR
brw-rw---- 1 root oinstall 253, 3 Dec 1 13:55 OCRp5
brw-rw---- 1 root oinstall 253, 4 Dec 1 13:55 OCRp6
brw-rw---- 1 oracle oinstall 253, 5 Dec 1 13:55 OCRp7
brw-rw---- 1 oracle oinstall 253, 6 Dec 1 13:55 OCRp8
brw-rw---- 1 oracle oinstall 253, 7 Dec 1 13:55 OCRp9
将raw 的配置信息, 直接写入: /etc/rc.d/rc.local。 这样启动自动加载。 没有使用udev来管理。
[root@rac2 ~]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
modprobe hangcheck-timer
chown oracle:oinstall /dev/mapper/DATA
chown oracle:oinstall /dev/mapper/DATAp1
chown oracle:oinstall /dev/mapper/FRA
chown oracle:oinstall /dev/mapper/FRAp1
chmod 660 /dev/mapper/DATA
chmod 660 /dev/mapper/FRAp1
chmod 660 /dev/mapper/DATA
chmod 660 /dev/mapper/FRAp1
#####
# Oracle Cluster Registry (OCR) devices
#####
chown root:oinstall /dev/mapper/OCR*
chmod 660 /dev/mapper/OCR*
raw /dev/raw/raw1 /dev/mapper/OCRp5
raw /dev/raw/raw2 /dev/mapper/OCRp6
sleep 2
chown root:oinstall /dev/raw/raw1
chown root:oinstall /dev/raw/raw2
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
#####
# Oracle Cluster Voting disks
#####
chown oracle:oinstall /dev/mapper/OCRp7
chown oracle:oinstall /dev/mapper/OCRp8
chown oracle:oinstall /dev/mapper/OCRp9
raw /dev/raw/raw3 /dev/mapper/OCRp7
raw /dev/raw/raw4 /dev/mapper/OCRp8
raw /dev/raw/raw5 /dev/mapper/OCRp9
sleep 2
chown oracle:oinstall /dev/raw/raw3
chown oracle:oinstall /dev/raw/raw4
chown oracle:oinstall /dev/raw/raw5
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
chmod 660 /dev/raw/raw5
注意, 这个还有一个raw的bug, 需要打patch。 在下面安装clusterware 的时候会说明。
1.11 安装配置ASM
(1) 在两个node上都安装 ASMLibs, tools, support 三个rpm文件. 注意内核版本要和linux一致。
# rpm -ivh *.rpm --nodeps --force
然后运行 /etc/init.d/oracleasm configure
回答 oracle , dba, y, y 就可以了
linux 挂在windows 共享的盘
1. 启动nfs服务: service nfs start
2. mount -o username=share,password=share //10.85.10.80/RAC /mnt
(2)创建ASM 磁盘
/etc/init.d/oracleasm createdisk DATA /dev/mapper/DATAp1
/etc/init.d/oracleasm createdisk FRA /dev/mapper/FRAp1
创建好后, 在这个node 上运行 /etc/init.d/oracleasm listdisks 查看。
(3) 在另外一个node 上
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks 查看
1.12. 在每个node上配置Oracle的profile文件
Su -oracle
Cd /home/oracle
修改 oracle用户家目录下的 .bash_profile 。注意ORACLE_SID, 和后面建库要一致。
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/crs
export ORACLE_SID=rac1
export PATH=.:${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
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
二. 安装Oracle 10gR2 clusterware
1. 用Xmanager 软件连上虚拟机之后运行clusterware 的安装软件, Xmanager 支持图形界面, 所以能省很多事。
主要要先修改/etc/redhat-release 文件,不然会报错。
[root@rac2 ~]# more /etc/redhat-release
redhat-4
2. 确认你的安装目录是/u01/app/oracle/product/crs
3. 增加相关结点信息
rac1 rac1-priv rac1-vip
rac2 rac2-priv rac2-vip
4.指定 eth0 的类型时public
5. 指定OCR 和 Voting Disk
一般而言,如果采用存储来存放OCR和Voting Disk. 存储本身就提供了redundancy策略,此时我们可以选择External Redundancy 选项, 此时Oracle 就不在考虑软件冗余了。 如果没有使用存储设备或者存储为RAID0,那么就可以使用Oracle 自己提供的软件冗余机制 Normal Redundancy 选项,此时就会激活Mirror Location 选项. 用来指定镜像文件位置, Oracle的Clusterware在运行时会维护这个Mirror文件的内容同步。
OCR 最多只有一份冗余:
/dev/raw/raw1
/dev/raw/raw2
Voting Disk 最多可以定义2份冗余:
/dev/raw/raw3
/dev/raw/raw4
/dev/raw/raw5
6. 开始安装了,结束时会提示用root在每个节点上运行orainstRoot.Sh 和 root.Sh脚本, 在第二个结点上运行root.Sh 后自动调用vipca 这个命令。
RAC安装时需要执行4个脚本及意义
http://blog.csdn.net/xujinyang/article/details/6829665
在运行这2个脚本之前我们需要修改几个配置。
(1) 打patch:Bug:4679769
这是Oracle raw 在redhat 5下的bug。 bug 我传到csdn 下载。 下载地址:
http://download.csdn.net/source/2862150
参考:
Redhat 5.4 RAC multipath 配置raw,运行root.sh 时报错Failed to upgrade Oracle Cluster Registry configuration 解决方法
http://blog.csdn.net/xujinyang/article/details/6834884
Executing root.sh errors with "Failed To Upgrade Oracle Cluster Registry Configuration" [ID 466673.1]
http://blog.csdn.net/xujinyang/article/details/6933166
(2) 修改vipca 和 srvctl
注释掉这个参数:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL <<<== Line to be added
10gR2 RAC Install issues on Oracle EL5 or RHEL5 or SLES10 (VIPCA /SRVCTL / OUI Failures) [ID 414163.1]
http://blog.csdn.net/xujinyang/article/details/6834881
如果在vipca的时候报如下错误:
# vipca (root用户执行)
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
解决方法:
<CRS_HOME>/bin # ./oifcfg setif -global eth0/192.168.1.0:public
<CRS_HOME>/bin # ./oifcfg setif -global eth1/10.10.10.0:cluster_interconnect
-- 注意这里最后一个IP是0
<CRS_HOME>/bin # ./oifcfg getif
eth0 192.168.1.0 global public
eth1 10.10.10.0 global cluster_interconnect
问题3:An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xB7503E29
Function=__libc_free+0x49
Library=/lib/tls/libc.so.6
修改主机名不正确导致的。
RHEL
/etc/sysconfig/network 主机名,如果在/etc/hosts中解析不了。就报这个错误!
7. 执行完root.sh, clusterware 就安装结束.
三. 安装Oracle 10gR2 database
1. 检查Oracle 的相关包。Oracle 10g 需要如下包
binutils-2.15.92.0.2-10.EL4
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9.EL4
libstdc++-devel-3.4.3-9.EL4
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
libaio-0.3.96
To see which versions of these packages are installed on your system, run the following command:
rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common /
gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21
2. 在Xmanager 中用oracle用户,运行database的runInstaller
3. ORACLE安装目录指定到 /u01/app/oracle/product/10.2.0/db_1
4. 把2个node选择上
5. 选择 Install database Software only
6. 会要求你用完全的root权限运行 root.sh ,分别在2个node上一一运行
7. 安装完毕
四. netca 创建监听
1. oracle 用户在一个node上运行 netca
2. 选择所有node
3. 选择 Listener configuration
4. 添加一个LISTENER, 1521 port ,然后结束配置
监听配置成功后, 2个结点上的Listener 都会坐位Application Resource 注册到CRS中, 这样CRS 就可以监控Listener 的运行状态。 我们可以通过 crs_stat -t -v 查看Listener 状态。
五. 创建ASM 实例
1. 运行DBCA 命令
2. 选择 configure Automatic Storage Management, 来创建ASM 实例
3. 选择所有结点
4. 输入密码。RAC 的spfile 必须放在共享目录下。 参数文件我们选择第一个initialization parameter。 也可以放在我们建的裸设备上。
5. 修改asm 参数: asm_diskstring = /dev/mapper/*, 这样能让Oracle自动发现这些硬盘
6. ASM 实例创建完后,用Create New 来创建ASM 磁盘组。 我们用DATA来创建一个DATA 组, FRA 创建FLASH_RECOVERY_AREA组。
注: Redundancy 一般选external 就是也就是不考虑冗余,假如选normal 则是mirror, 至少要一个FailGroup. 选High 就是triple mirror,3倍镜像,需要三个FailGroup
7. 创建完成后,能看到组的状态是Mount, ASM 组必须mount之后才能使用。
ASM 的相关信息参考blog:
Oracle ASM 详解
http://blog.csdn.net/xujinyang/article/details/6837288
在这里,如果asm 服务必须要启动。如果没有启动,就手动启动它。 具体参考:
Oracle RAC 启动与关闭
http://blog.csdn.net/xujinyang/article/details/6829632
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM2.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....SM1.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
六. 配置dbca创建数据库
1. 用oracle用户运行 dbca
2. 选择custom database
3. 输入数据库的全局名,比如orcl
4. 输入系统的角色建立密码
5. 选择ASM 来存储, 分别选择我们刚创建的DATA 和FLA组
6. Database Services 这里,你选择Add你一个新的service, 随便叫名字,比如oltp。然后选择 TAF Policy,是Basic。 这个服务在RAC 的Failover中会用到,如果在这里没有配置,也可以通过dbca命令, 选择 Services Management 来进行配置。 具体参考blog:
Oracle RAC Failover 详解
http://blog.csdn.net/xujinyang/article/details/6829647
7. 开始创建数据库
七. 检查RAC 运行状态
1. [root@rac1 bin]# ./srvctl status database -d rac
Instance rac2 is running on node rac1
Instance rac1 is running on node rac2
2. [root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.rac.db application ONLINE ONLINE rac1
ora....oltp.cs application ONLINE ONLINE rac2
ora....ac1.srv application ONLINE ONLINE rac2
ora....ac2.srv application ONLINE ONLINE rac1
ora....c1.inst application ONLINE ONLINE rac2
ora....c2.inst application ONLINE ONLINE rac1
ora....SM2.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....SM1.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
小结:
RAC 的安装步骤基本都差不多。 主要的还是前期的准备工作。 那个是关键。
------------------------------------------------------------------------------