DavidDai Blog:http://blog.csdn.net/tianlesoftware
1 / 35 2012-10-12
Oracle Linux 6.1 + Oracle 11.2.0.1
RAC + RAW 安装文档
David Dai
2012-11-21
DavidDai Blog:http://blog.csdn.net/tianlesoftware
2 / 35 2012-10-12
目录
目录 ................................................................................................................................................ 2
一.准备工作 ................................................................................................................................. 3
1.1 RAC 架构规划 ................................................................................................................................ 3
1.2 修改/ETC/HOSTS 文件(所有节点) .............................................................................................. 3
1.3 添加组和用户 ............................................................................................................................... 3
1.4 禁用防火墙和SELNUX(所有节点) ......................................................................................... 4
1.5 配置时间同步 ............................................................................................................................... 5
1.5.1 配置CTSS .............................................................................................................................. 5
1.5.2 配置NTP(Network Time Protocol) ........................................................................................ 6
1.6 创建目录结构(所有节点) ....................................................................................................... 6
1.7 配置环境变量 ............................................................................................................................... 7
1.7.1 Grid 用户 ................................................................................................................................ 7
1.7.2 Oracle 用户 ........................................................................................................................... 7
1.8 为安装用户设置资源限制 ........................................................................................................... 8
1.8.1 修改/etc/security/limits.conf ................................................................................................ 8
1.8.2 修改/etc/pam.d/login ........................................................................................................... 9
1.8.3 shell 的限制 .......................................................................................................................... 9
1.9 存储规划 ..................................................................................................................................... 10
1.9.1 盘区划分 ............................................................................................................................ 10
1.9.2 配置ISCSI(所有节点执行) ............................................................................................ 11
1.9.3 格式化分区 ........................................................................................................................ 11
1.9.4 使用UDEV 进行持久化 .................................................................................................... 12
二.安装GRID .............................................................................................................................. 18
三.安装DB ................................................................................................................................. 28
四.创建ASM 磁盘组 ................................................................................................................. 30
五.创建实例 ............................................................................................................................... 31
六.配置CLIENT‐SIDE TAF............................................................................................................. 32
6.1 节点1 配置 .......................................................................................................................... 32
6.2 节点2 配置 ............................................................................................................................ 33
6.3 在node1 和node2 的 tnsnames.ora 文件添加如下内容 .................................................... 33
6.4 在所有节点设置remote listener .......................................................................................... 34
6.5 进行TAF 测试 ........................................................................................................................ 34
DavidDai Blog:http://blog.csdn.net/tianlesoftware
3 / 35 2012-10-12
一.准备工作
1.1 RAC 架构规划
服务器主机名 rac1 rac2
公共IP 地址(eth0) 192.168.1.61 192.168.1.71
虚拟IP 地址(eth0) 192.168.1.63 192.168.1.73
私有IP 地址(eth1) 192.168.1.62 192.168.1.72
ORACLE RAC SID dave1 dave2
集群实例名称 dave
SCAN IP 192.168.1.9
操作系统 Oracle Linux 6.1
存储 OpenFiler
Oracle 11.2.0.1
注:
这里选择11.2.0.1 是因为从Oracle 11.2.0.2 之后安装grid 的public IP
和private IP 必须是不同网段的,我在虚拟机上配置不同网段比较蛮烦。所以
降低版本使用11.2.0.1 了。
1.2 修改/etc/hosts 文件(所有节点)
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost
192.168.1.61 rac1 rac1-public
192.168.1.62 rac1-priv
192.168.1.63 rac1-vip
192.168.1.71 rac2 rac2-public
192.168.1.72 rac2-priv
192.168.1.73 rac2-vip
192.168.1.9 rac-scan
1.3 添加组和用户
#groupadd -g 1000 oinstall
#groupadd -g 1200 asmadmin
DavidDai Blog:http://blog.csdn.net/tianlesoftware
4 / 35 2012-10-12
#groupadd -g 1201 asmdba
#groupadd -g 1202 asmoper
#groupadd -g 1300 dba
#groupadd -g 1301 oper
# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid
-s /bin/bash grid
#useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s
/bin/bash oracle
确认用户信息:
[root@rac1 ~]# id oracle
uid=502(oracle) gid=507(oinstall)
groups=507(oinstall),502(dba),503(oper),506(asmdba)
[root@rac1 ~]# id grid
uid=1100(grid) gid=507(oinstall)
groups=507(oinstall),504(asmadmin),506(asmdba),505(asmoper)
修改密码:
passwd oracle
passwd grid
在所有节点上验证用户 nobody 存在:
安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用
户 nobody,要确定该用户是否存在,输入以下命令:
# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
如果该命令显示了 nobody 用户的信息,则无需创建该用户。如果用
户 nobody 不存在,则输入以下命令进行创建:
# /usr/sbin/useradd nobody
1.4 禁用防火墙和SELNUX(所有节点)
关闭防火墙:
Service iptables status
Service iptables stop
chkconfig iptables off
chkconfig iptables –list
DavidDai Blog:http://blog.csdn.net/tianlesoftware
5 / 35 2012-10-12
设置/etc/selinux/config 文件,将SELINUX 设置为disabled。
[root@rac1 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
1.5 配置时间同步
在11gR2 中,RAC 在安装的时候,时间同步可以用两种方式来实现:
(1) NTP
(2) CTSS。
当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将
以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以
观察者模式启动集群时间同步服务,Oracle Clusterware 不会在集群中进行活
动的时间同步。
Oracle 集群时间同步服务 (ctssd) 旨在为那些 Oracle RAC 数据库
无法访问 NTP 服务的组织提供服务。目前建议配置NTP。
1.5.1 配置CTSS
使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协
议 (NTP) 及其配置。
要停用 NTP 服务,必须停止当前的 ntpd 服务,从初始化序列中禁用
该服务,并删除 ntp.conf 文件。
要在Linux 上完成这些步骤,以 root 用户身份在两个 Oracle RAC 节
点上运行以下命令:
[root@rac1 ~]# /sbin/service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac1 ~]# chkconfig ntpd off
[root@rac1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original
[root@rac1 ~]# chkconfig ntpd --list
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
DavidDai Blog:http://blog.csdn.net/tianlesoftware
6 / 35 2012-10-12
[root@rac2 ~]# /sbin/service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac2 ~]# chkconfig ntpd off
[root@rac2 ~]# mv /etc/ntp.conf /etc/ntp.conf.original
[root@rac2 ~]# chkconfig ntpd --list
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
还要删除以下文件:
rm /var/run/ntpd.pid
此文件保存了 NTP 后台程序的 pid。
在安装后,要确认 ctssd 处于活动状态,用grid 所有者输入以下命令:
[grid@racnode1 ~]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
1.5.2 配置NTP(Network Time Protocol)
具体参考:
Linux 时间同步配置
http://blog.csdn.net/tianlesoftware/article/details/5315587
这里测试使用CTSS 来配置同步。
1.6 创建目录结构(所有节点)
mkdir -p /u01/app/grid/11.2.0
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
DavidDai Blog:http://blog.csdn.net/tianlesoftware
7 / 35 2012-10-12
1.7 配置环境变量
1.7.1 Grid 用户
修改grid 用户的.bash_profile. 注意每个节点的不同内容:
export ORACLE_SID=+ASM1
#export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/grid/11.2.0
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
1.7.2 Oracle 用户
修改oracle 用户的.bash_profile,注意每个节点的不同内容:
ORACLE_SID=dave1; export ORACLE_SID
#ORACLE_SID=dave2; export ORACLE_SID
ORACLE_UNQNAME=dave; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DD HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_H
OME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/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
DavidDai Blog:http://blog.csdn.net/tianlesoftware
8 / 35 2012-10-12
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
# ---------------------------------------------------
# UMASK
# ---------------------------------------------------
# Set the default file mode creation mask
# (umask) to 022 to ensure that the user performing
# the Oracle software installation creates files
# with 644 permissions.
# ---------------------------------------------------
umask 022
1.8 为安装用户设置资源限制
1.8.1 修改/etc/security/limits.conf
要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户
(grid、oracle)增加以下资源限制:
Shell 限制 limits.conf 中的条目硬限制
打开文件描述符的最大数 nofile 65536
可用于单个用户的最大进程数nproc 16384
进程堆栈段的最大大小 stack 10240
以 root 用户身份, 在每个 Oracle RAC 节点上,
在 /etc/security/limits.conf 文件中添加如下内容,或者执行执行如下命
令:
[root@rac1 ~]# cat >> /etc/security/limits.conf <<EOF
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
注:红色部分一起执行
DavidDai Blog:http://blog.csdn.net/tianlesoftware
9 / 35 2012-10-12
1.8.2 修改/etc/pam.d/login
在每个 Oracle RAC 节点上,在 /etc/pam.d/login 文件中添加或编辑
下面一行内容:
[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
注:红色部分一起执行
1.8.3 shell 的限制
对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装
所有者的 ulimit 设置:
(1)对于 Bourne、Bash 或 Korn shell,通过运行以下命令将以下行添加
到 /etc/profile 文件:
[root@rac1 ~]# cat >> /etc/profile <<EOF
if [ /$USER = "oracle" ] || [ /$USER = "grid" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
注:红色部分一起执行
(2)对于 C shell(csh 或 tcsh),通过运行以下命令将以下行添加
到 /etc/csh.login 文件:
[root@racnode1 ~]# cat >> /etc/csh.login <<EOF
if ( /$USER == "oracle" || /$USER == "grid" ) then
limit maxproc 16384
limit descriptors 65536
endif
EOF
DavidDai Blog:http://blog.csdn.net/tianlesoftware
10 / 35 2012-10-12
注:红色部分一起执行
Dave 备注:
在Oracle Linux 6 平台下安装Oracle,可以使用Preinstal 包,该包会完
成相关的参数修改等操作,会大大简化我们安装数据库的时间,详细内容参考:
Oracle Linux 6 下 Oracle RDBMS Server 11gR2 Preinstall RPM 包说明
http://blog.csdn.net/tianlesoftware/article/details/7456878
1.9 存储规划
1.9.1 盘区划分
使用Openfiler 作为共享,使用iscsi 进行连接,使用udev 进行映射。
冗余策略 卷划分及大小说明
OCRVOTING Ocrvoting01 1G
Ocrvoting02 1G
Ocrvoting03 1G
ARCH Arch01 5G
Arch02 5G
DATAFILE Data01 5G
Data02 5G
Data03 5G
Data04 5G
Data05 5G
FRA Fra01 5G
Fra02 5G
Fra03 5G
注意这里需要在存储上进行划分,每个分区一个映射。所以这里需要在存储
上划分13 个分区。 这样是为了保证scsi_id 的唯一性。
根据官网的要求,11g 中每个OCR 和vote disk 至少需要300M 空间。在ASM
的冗余级别中:
external >= 1
normal >=3
high >=5
所以如果我们选择normal,那么至少需要3 个设备,每个设备至少600M。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
11 / 35 2012-10-12
1.9.2 配置ISCSI(所有节点执行)
[root@rac1 etc]# iscsiadm -m discovery -t sendtargets -p 192.168.1.2
192.168.1.2:3260,1 asm.tianlesoftware.com
192.168.1.3:3260,1 asm.tianlesoftware.com
192.168.1.2:3260,1 filesystem
192.168.1.3:3260,1 filesystem
--手工登陆:
[root@rac1 etc]# iscsiadm -m node -T asm.tianlesoftware.com -p
192.168.1.2 -l
Logging in to [iface: default, target: asm.tianlesoftware.com, portal:
192.168.1.2,3260]
Login to [iface: default, target: asm.tianlesoftware.com, portal:
192.168.1.2,3260] successful.
--配置自动登陆:
[root@rac1 etc]# iscsiadm -m node -T asm.tianlesoftware.com -p
192.168.1.2 --op update -n node.startup -v automatic
--停止ISCSI
[root@rac2 /]# service iscsi stop
[root@rac2 /]# service iscsid stop
--验证:
[root@rac1 etc]# netstat -anp |grep 3260
tcp 0 0 192.168.1.62:33454 192.168.1.2:3260
ESTABLISHED 6702/iscsid
1.9.3 格式化分区
对分区进行格式化:
[root@rac2 ~]# fdisk /dev/sdq
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF
disklabel
Building a new DOS disklabel with disk identifier 0xd5a3f562.
Changes will remain in memory only, until you decide to write them.
DavidDai Blog:http://blog.csdn.net/tianlesoftware
12 / 35 2012-10-12
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by
w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1018, default 1018):
Using default value 1018
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac2 ~]#
1.9.4 使用UDEV 进行持久化
参考MOS:
How To Setup UDEV Rules For RAC OCR And Voting Devices On SLES10, RHEL5,
OEL5, OL5 [ID 414897.1]
Oracle Linux 配置 UDEV SCSI Rules 说明
http://blog.csdn.net/tianlesoftware/article/details/7433344
How to use udev for Oracle ASM in Oracle Linux 6
http://www.dbform.com/html/2011/1708.html
--使用如下shell 脚本获取scsi id:
[root@rac1 u01]# cat get_scsiid.sh
#!/bin/sh
echo "---------begining------------"
DavidDai Blog:http://blog.csdn.net/tianlesoftware
13 / 35 2012-10-12
echo "---echo 4194MB---"
echo "/dev/sdb:"
/sbin/scsi_id -g -u /dev/sdb
echo "/dev/sdc:"
/sbin/scsi_id -g -u /dev/sdc
echo "/dev/sdd:"
/sbin/scsi_id -g -u /dev/sdd
echo "/dev/sde:"
/sbin/scsi_id -g -u /dev/sde
echo "/dev/sdf:"
/sbin/scsi_id -g -u /dev/sdf
echo "/dev/sdh:"
/sbin/scsi_id -g -u /dev/sdh
echo "---echo 5268MB---"
echo "/dev/sdk:"
/sbin/scsi_id -g -u /dev/sdk
echo "/dev/sdl:"
/sbin/scsi_id -g -u /dev/sdl
echo "/dev/sdm:"
/sbin/scsi_id -g -u /dev/sdm
echo "/dev/sdj:"
/sbin/scsi_id -g -u /dev/sdj
echo "/dev/sdn:"
/sbin/scsi_id -g -u /dev/sdn
echo "/dev/sdp:"
/sbin/scsi_id -g -u /dev/sdp
echo "/dev/sdr:"
/sbin/scsi_id -g -u /dev/sdr
echo "/dev/sdq:"
/sbin/scsi_id -g -u /dev/sdq
echo "/dev/sdo:"
/sbin/scsi_id -g -u /dev/sdo
echo "/dev/sds:"
/sbin/scsi_id -g -u /dev/sds
echo "/dev/sdg:"
/sbin/scsi_id -g -u /dev/sdg
echo "/dev/sdi:"
/sbin/scsi_id -g -u /dev/sdi
echo "/dev/sdu:"
/sbin/scsi_id -g -u /dev/sdu
echo "/dev/sdw:"
/sbin/scsi_id -g -u /dev/sdw
echo "---echo 234MB---"
DavidDai Blog:http://blog.csdn.net/tianlesoftware
14 / 35 2012-10-12
echo "/dev/sdt:"
/sbin/scsi_id -g -u /dev/sdt
echo "/dev/sdv:"
/sbin/scsi_id -g -u /dev/sdv
echo "/dev/sdx:"
/sbin/scsi_id -g -u /dev/sdx
echo "/dev/sdy:"
/sbin/scsi_id -g -u /dev/sdy
echo "/dev/sdz:"
/sbin/scsi_id -g -u /dev/sdz
echo "/dev/sdaa:"
/sbin/scsi_id -g -u /dev/sdaa
echo "----------end------------"
[root@rac1 u01]#
或者:
for i in c d e f g h i j k l m n o p ;
do
echo "sd$i" "`scsi_id -g -u -s /block/sd$i` ";
done
for i in b c d e f g h i j k ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u
-s %p\", RESULT==\"`scsi_id -g -u -s /block/sd$i`\", NAME=\"asm-disk$i\",
OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done
从输出结果中过滤后需要的结果如下:
---FRA 4194MB---
/dev/sdb:
14f504e46494c45527634436445432d567646522d70667244
/dev/sdc:
14f504e46494c45526852356f6c6c2d4241306e2d4f303739
/dev/sde:
14f504e46494c455238767444364e2d7530454f2d574a324d
---ARCH 5268MB---
/dev/sdk:
14f504e46494c45523369626957672d734941712d31515456
/dev/sdl:
DavidDai Blog:http://blog.csdn.net/tianlesoftware
15 / 35 2012-10-12
14f504e46494c455272427a76586a2d756647582d6d524252
---DATAFILE 5268MB---
/dev/sdm:
14f504e46494c45526e5a445a74332d4273346f2d71357243
/dev/sdr:
14f504e46494c45524f6c386759382d4635314f2d4c336965
/dev/sdq:
14f504e46494c45524d62483162502d6c4738562d78793269
/dev/sds:
14f504e46494c45525862523154342d717754332d38696b4e
/dev/sdg:
14f504e46494c4552623872364b662d756d7a4d2d6641746c
---OCRVOTING 1G---
/dev/sdt:
14f504e46494c455234664f31577a2d4d4c59622d58536a48
/dev/sdv:
14f504e46494c45523473564a4d6f2d445a6a652d5471414e
/dev/sdx:
14f504e46494c45524570393234322d717064522d4656397a
#添加记录到/etc/scsi_id.config
编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行:
[root@rac1 dev]# echo "options=--whitelisted --replace-whitespace" >>
/etc/scsi_id.config
创建rules 文件:
/etc/udev/rules.d/99-oracle-asmdevices.rules
添加如下内容:
#for ocrvoting
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c455234664f31577a2d4d4c59622d58536a48",
NAME="ocrvoting1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45523473564a4d6f2d445a6a652d5471414e",
NAME="ocrvoting2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45524570393234322d717064522d4656397a",
NAME="ocrvoting3", OWNER="grid", GROUP="asmadmin", MODE="0660"
DavidDai Blog:http://blog.csdn.net/tianlesoftware
16 / 35 2012-10-12
#for datafile
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45526e5a445a74332d4273346f2d71357243",
NAME="data01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45524f6c386759382d4635314f2d4c336965",
NAME="data02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45524d62483162502d6c4738562d78793269",
NAME="data03", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45525862523154342d717754332d38696b4e",
NAME="data04", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c4552623872364b662d756d7a4d2d6641746c",
NAME="data05", OWNER="grid", GROUP="asmadmin", MODE="0660"
#for fra
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45527634436445432d567646522d70667244",
NAME="fra01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45526852356f6c6c2d4241306e2d4f303739",
NAME="fra02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c455238767444364e2d7530454f2d574a324d",
NAME="fra03", OWNER="grid", GROUP="asmadmin", MODE="0660"
#for arch
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45523369626957672d734941712d31515456",
NAME="arch01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c455272427a76586a2d756647582d6d524252",
DavidDai Blog:http://blog.csdn.net/tianlesoftware
17 / 35 2012-10-12
NAME="arch02", OWNER="grid", GROUP="asmadmin", MODE="0660"
重启UDEV:
# /sbin/start_udev
验证:
[root@rac1 dev]# ls -l /dev/arch*
brw-rw---- 1 grid asmadmin 8, 177 Oct 10 10:22 /dev/arch01
brw-rw---- 1 grid asmadmin 8, 145 Oct 10 10:22 /dev/arch02
[root@rac1 dev]# ls -l /dev/fra*
brw-rw---- 1 grid asmadmin 8, 33 Oct 10 10:19 /dev/fra01
brw-rw---- 1 grid asmadmin 8, 65 Oct 10 10:19 /dev/fra02
[root@rac1 dev]# ls -l /dev/data*
brw-rw---- 1 grid asmadmin 8, 225 Oct 10 10:19 /dev/data01
brw-rw---- 1 grid asmadmin 65, 1 Oct 10 10:19 /dev/data02
brw-rw---- 1 grid asmadmin 65, 17 Oct 10 10:19 /dev/data03
brw-rw---- 1 grid asmadmin 65, 49 Oct 10 10:19 /dev/data04
brw-rw---- 1 grid asmadmin 8, 113 Oct 10 10:19 /dev/data05
[root@rac1 dev]# ls -l /dev/ocr*
brw-rw---- 1 grid asmadmin 65, 97 Oct 10 10:19 /dev/ocrvoting1
brw-rw---- 1 grid asmadmin 65, 129 Oct 10 10:19 /dev/ocrvoting2
brw-rw---- 1 grid asmadmin 65, 145 Oct 10 10:19 /dev/ocrvoting3
DavidDai Blog:http://blog.csdn.net/tianlesoftware
18 / 35 2012-10-12
二.安装Grid
使用X manager 连接到节点1 上,设置DISPLAY。
注:
这里强调顺序是节点1,因为在节点2 上执行,最后生成的服务名看起来会
很别扭,当然服务名最后也是可以修改的,具体怎么别扭,好奇的同学可以自己
实验一下。
Export DISPLAT=192.168.1.1:0.0
切到grid 用户,然后开始安装clusterware:
DavidDai Blog:http://blog.csdn.net/tianlesoftware
19 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
20 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
21 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
22 / 35 2012-10-12
注意:在11gr2 中
external >= 1
normal >=3
high >=5
DavidDai Blog:http://blog.csdn.net/tianlesoftware
23 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
24 / 35 2012-10-12
指定$ORACLE_BASE 和 $GRID_BASE
DavidDai Blog:http://blog.csdn.net/tianlesoftware
25 / 35 2012-10-12
解决依赖包后重新安装:
DavidDai Blog:http://blog.csdn.net/tianlesoftware
26 / 35 2012-10-12
在65%的地方很容易卡住,等很长时间。注意检查防火墙状态。
提示运行root.sh,11.2.0.1 版有个bug,解决方法如下:
Oracle 11g RAC ohasd failed to start at
DavidDai Blog:http://blog.csdn.net/tianlesoftware
27 / 35 2012-10-12
/u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443 解决方法
http://blog.csdn.net/tianlesoftware/article/details/7697366
遇到一点小插曲:
Oracle RAC 第二节点 root.sh 报错 Timed out waiting for the CRS stack to
start
http://blog.csdn.net/tianlesoftware/article/details/8095122
安装完成后验证:
[grid@rac1 u01]$ crs_stat.sh
Name Target State Host
------------------------------ ---------- --------- -------
ora.LISTENER.lsnr ONLINE ONLINE rac1
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE rac1
ora.OCRVOTING.dg ONLINE ONLINE rac1
ora.asm ONLINE ONLINE rac1
ora.eons ONLINE ONLINE rac1
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE rac1
ora.oc4j OFFLINE OFFLINE
ora.ons ONLINE ONLINE rac1
ora.rac1.ASM1.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd OFFLINE OFFLINE
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd OFFLINE OFFLINE
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
ora.scan1.vip ONLINE ONLINE rac1
因为我们使用CTSS 来同步的,验证CTSS:
[grid@rac1 u01]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
至此,GI 安装结束。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
28 / 35 2012-10-12
三.安装DB
用oracle 用户,连上节点1,进入Oracle 的安装目录,安装Oracle 软件,
注意这里只安装软件。
1. Install databae software only
2. Select all RAC nodes
3. 设置 SSH
4. 选择语言
5. 选择 Enterprise Edition
6. 选择 Oracle 安装目录
DavidDai Blog:http://blog.csdn.net/tianlesoftware
29 / 35 2012-10-12
7. 选择用户组
8. 开始安装
9. 执行 root
10.执行脚本,执行完安装结束。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
30 / 35 2012-10-12
四.创建ASM 磁盘组
在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安
装OCR 和Voting Disk。 在我们继续安装Oracle 数据库之前,我们需要创建一个
DATA 和FRA 的ASM 磁盘组来存放这些文件。
用grid 用户运行asmca(ASM Configuration Assistant)命令就可以弹出创建窗口。
在窗口中创建完DATA 和 FRA 组后,退出窗口即可。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
31 / 35 2012-10-12
五.创建实例
在节点1 用Oracle 用户运行dbca,创建实例。
1. 选择 RAC 集群
2. Create a database
3. 选择类型:事务还是数据仓库
4. 选择 Configuration Type:Admin-Managed
5. 设置实例名: dave
6. 选择所有节点
7. 配置 Enterprise Manager 和 Automatic Maintenance Tasks
8. 设置用户密码
9. 设置数据文件存放位置: DATA
10.设置FRA 和归档
11.设置内存,字符集等
12.开始安装
DavidDai Blog:http://blog.csdn.net/tianlesoftware
32 / 35 2012-10-12
六.配置Client-Side TAF
6.1 节点1 配置
6.1.1 修改Listener.ora 文件:
LISTENER_NODE1=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT =
1521)(IP=FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-public)(PORT =
1521)(IP=FIRST))
)
)
也可以使用netca 工具来配置。
6.1.2 启动Listener:
$ lsnrctl start LISTENER_NODE1
6.1.3 修改Tnsnames.ora 文件,添加如下内容:
NODE1_LOCAL=
(ADDRESS = (PROTOCOL = TCP)(HOST= rac1-vip)(PORT = 1521))
测试:
$ tnsping node1_local
6.1.4 设置 node1 的local_listener 参数
sql > alter system set LOCAL_LISTENER='node1_local' scope=both
sid='dave1';
DavidDai Blog:http://blog.csdn.net/tianlesoftware
33 / 35 2012-10-12
6.2 节点2 配置
6.2.1 修改Listener.ora 文件
LISTENER_NODE2=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-public)(PORT=1521)(IP=FIRST))
(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-vip)(PORT=1521)(IP=FIRST))
)
)
6.2.2 启动Listener
$ lsnrctl start LISTENER_NODE2
6.2.3 修改Tnsnames.ora 文件
NODE2_LOCAL=
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
验证:
$ tnsping node2_local
6.2.4 设置local_listener 参数
sql > alter system set LOCAL_LISTENER='node2_local' scope=both
sid='dave2' ;
6.3 在 node1 和node2 的 tnsnames.ora 文件添加如下内容
NODE_REMOTE =
(DESCRIPTION =
(ADDRESS_LIST =
DavidDai Blog:http://blog.csdn.net/tianlesoftware
34 / 35 2012-10-12
(ADDRESS = (PROTOCOL = TCP)(HOST=vip-node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST=vip-node2)(PORT = 1521))
)
)
测试:
$ tnsping node_remote
6.4 在所有节点设置 remote listener
sql> alter system set REMOTE_LISTENER='node_remote' scope=both;
6.5 进行TAF 测试
在客户端设置的 tnsnames.ora 设置TAF
RACTAF=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = yes)
(FAILOVER=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dave)
(failover_mode=(type=select)(method=basic))
)
)
local_listener 与 remote_listener 参数说明
http://blog.csdn.net/tianlesoftware/article/details/6087045
DavidDai Blog:http://blog.csdn.net/tianlesoftware
35 / 35 2012-10-12
---------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Skype: tianlesoftware
QQ: tianlesoftware@gmail.com
Email: tianlesoftware@gmail.com
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
1 / 35 2012-10-12
Oracle Linux 6.1 + Oracle 11.2.0.1
RAC + RAW 安装文档
David Dai
2012-11-21
DavidDai Blog:http://blog.csdn.net/tianlesoftware
2 / 35 2012-10-12
目录
目录 ................................................................................................................................................ 2
一.准备工作 ................................................................................................................................. 3
1.1 RAC 架构规划 ................................................................................................................................ 3
1.2 修改/ETC/HOSTS 文件(所有节点) .............................................................................................. 3
1.3 添加组和用户 ............................................................................................................................... 3
1.4 禁用防火墙和SELNUX(所有节点) ......................................................................................... 4
1.5 配置时间同步 ............................................................................................................................... 5
1.5.1 配置CTSS .............................................................................................................................. 5
1.5.2 配置NTP(Network Time Protocol) ........................................................................................ 6
1.6 创建目录结构(所有节点) ....................................................................................................... 6
1.7 配置环境变量 ............................................................................................................................... 7
1.7.1 Grid 用户 ................................................................................................................................ 7
1.7.2 Oracle 用户 ........................................................................................................................... 7
1.8 为安装用户设置资源限制 ........................................................................................................... 8
1.8.1 修改/etc/security/limits.conf ................................................................................................ 8
1.8.2 修改/etc/pam.d/login ........................................................................................................... 9
1.8.3 shell 的限制 .......................................................................................................................... 9
1.9 存储规划 ..................................................................................................................................... 10
1.9.1 盘区划分 ............................................................................................................................ 10
1.9.2 配置ISCSI(所有节点执行) ............................................................................................ 11
1.9.3 格式化分区 ........................................................................................................................ 11
1.9.4 使用UDEV 进行持久化 .................................................................................................... 12
二.安装GRID .............................................................................................................................. 18
三.安装DB ................................................................................................................................. 28
四.创建ASM 磁盘组 ................................................................................................................. 30
五.创建实例 ............................................................................................................................... 31
六.配置CLIENT‐SIDE TAF............................................................................................................. 32
6.1 节点1 配置 .......................................................................................................................... 32
6.2 节点2 配置 ............................................................................................................................ 33
6.3 在node1 和node2 的 tnsnames.ora 文件添加如下内容 .................................................... 33
6.4 在所有节点设置remote listener .......................................................................................... 34
6.5 进行TAF 测试 ........................................................................................................................ 34
DavidDai Blog:http://blog.csdn.net/tianlesoftware
3 / 35 2012-10-12
一.准备工作
1.1 RAC 架构规划
服务器主机名 rac1 rac2
公共IP 地址(eth0) 192.168.1.61 192.168.1.71
虚拟IP 地址(eth0) 192.168.1.63 192.168.1.73
私有IP 地址(eth1) 192.168.1.62 192.168.1.72
ORACLE RAC SID dave1 dave2
集群实例名称 dave
SCAN IP 192.168.1.9
操作系统 Oracle Linux 6.1
存储 OpenFiler
Oracle 11.2.0.1
注:
这里选择11.2.0.1 是因为从Oracle 11.2.0.2 之后安装grid 的public IP
和private IP 必须是不同网段的,我在虚拟机上配置不同网段比较蛮烦。所以
降低版本使用11.2.0.1 了。
1.2 修改/etc/hosts 文件(所有节点)
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost
192.168.1.61 rac1 rac1-public
192.168.1.62 rac1-priv
192.168.1.63 rac1-vip
192.168.1.71 rac2 rac2-public
192.168.1.72 rac2-priv
192.168.1.73 rac2-vip
192.168.1.9 rac-scan
1.3 添加组和用户
#groupadd -g 1000 oinstall
#groupadd -g 1200 asmadmin
DavidDai Blog:http://blog.csdn.net/tianlesoftware
4 / 35 2012-10-12
#groupadd -g 1201 asmdba
#groupadd -g 1202 asmoper
#groupadd -g 1300 dba
#groupadd -g 1301 oper
# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid
-s /bin/bash grid
#useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s
/bin/bash oracle
确认用户信息:
[root@rac1 ~]# id oracle
uid=502(oracle) gid=507(oinstall)
groups=507(oinstall),502(dba),503(oper),506(asmdba)
[root@rac1 ~]# id grid
uid=1100(grid) gid=507(oinstall)
groups=507(oinstall),504(asmadmin),506(asmdba),505(asmoper)
修改密码:
passwd oracle
passwd grid
在所有节点上验证用户 nobody 存在:
安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用
户 nobody,要确定该用户是否存在,输入以下命令:
# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
如果该命令显示了 nobody 用户的信息,则无需创建该用户。如果用
户 nobody 不存在,则输入以下命令进行创建:
# /usr/sbin/useradd nobody
1.4 禁用防火墙和SELNUX(所有节点)
关闭防火墙:
Service iptables status
Service iptables stop
chkconfig iptables off
chkconfig iptables –list
DavidDai Blog:http://blog.csdn.net/tianlesoftware
5 / 35 2012-10-12
设置/etc/selinux/config 文件,将SELINUX 设置为disabled。
[root@rac1 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
1.5 配置时间同步
在11gR2 中,RAC 在安装的时候,时间同步可以用两种方式来实现:
(1) NTP
(2) CTSS。
当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将
以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以
观察者模式启动集群时间同步服务,Oracle Clusterware 不会在集群中进行活
动的时间同步。
Oracle 集群时间同步服务 (ctssd) 旨在为那些 Oracle RAC 数据库
无法访问 NTP 服务的组织提供服务。目前建议配置NTP。
1.5.1 配置CTSS
使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协
议 (NTP) 及其配置。
要停用 NTP 服务,必须停止当前的 ntpd 服务,从初始化序列中禁用
该服务,并删除 ntp.conf 文件。
要在Linux 上完成这些步骤,以 root 用户身份在两个 Oracle RAC 节
点上运行以下命令:
[root@rac1 ~]# /sbin/service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac1 ~]# chkconfig ntpd off
[root@rac1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original
[root@rac1 ~]# chkconfig ntpd --list
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
DavidDai Blog:http://blog.csdn.net/tianlesoftware
6 / 35 2012-10-12
[root@rac2 ~]# /sbin/service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac2 ~]# chkconfig ntpd off
[root@rac2 ~]# mv /etc/ntp.conf /etc/ntp.conf.original
[root@rac2 ~]# chkconfig ntpd --list
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
还要删除以下文件:
rm /var/run/ntpd.pid
此文件保存了 NTP 后台程序的 pid。
在安装后,要确认 ctssd 处于活动状态,用grid 所有者输入以下命令:
[grid@racnode1 ~]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
1.5.2 配置NTP(Network Time Protocol)
具体参考:
Linux 时间同步配置
http://blog.csdn.net/tianlesoftware/article/details/5315587
这里测试使用CTSS 来配置同步。
1.6 创建目录结构(所有节点)
mkdir -p /u01/app/grid/11.2.0
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
DavidDai Blog:http://blog.csdn.net/tianlesoftware
7 / 35 2012-10-12
1.7 配置环境变量
1.7.1 Grid 用户
修改grid 用户的.bash_profile. 注意每个节点的不同内容:
export ORACLE_SID=+ASM1
#export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/grid/11.2.0
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
1.7.2 Oracle 用户
修改oracle 用户的.bash_profile,注意每个节点的不同内容:
ORACLE_SID=dave1; export ORACLE_SID
#ORACLE_SID=dave2; export ORACLE_SID
ORACLE_UNQNAME=dave; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DD HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_H
OME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/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
DavidDai Blog:http://blog.csdn.net/tianlesoftware
8 / 35 2012-10-12
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
# ---------------------------------------------------
# UMASK
# ---------------------------------------------------
# Set the default file mode creation mask
# (umask) to 022 to ensure that the user performing
# the Oracle software installation creates files
# with 644 permissions.
# ---------------------------------------------------
umask 022
1.8 为安装用户设置资源限制
1.8.1 修改/etc/security/limits.conf
要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户
(grid、oracle)增加以下资源限制:
Shell 限制 limits.conf 中的条目硬限制
打开文件描述符的最大数 nofile 65536
可用于单个用户的最大进程数nproc 16384
进程堆栈段的最大大小 stack 10240
以 root 用户身份, 在每个 Oracle RAC 节点上,
在 /etc/security/limits.conf 文件中添加如下内容,或者执行执行如下命
令:
[root@rac1 ~]# cat >> /etc/security/limits.conf <<EOF
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
注:红色部分一起执行
DavidDai Blog:http://blog.csdn.net/tianlesoftware
9 / 35 2012-10-12
1.8.2 修改/etc/pam.d/login
在每个 Oracle RAC 节点上,在 /etc/pam.d/login 文件中添加或编辑
下面一行内容:
[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
注:红色部分一起执行
1.8.3 shell 的限制
对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装
所有者的 ulimit 设置:
(1)对于 Bourne、Bash 或 Korn shell,通过运行以下命令将以下行添加
到 /etc/profile 文件:
[root@rac1 ~]# cat >> /etc/profile <<EOF
if [ /$USER = "oracle" ] || [ /$USER = "grid" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
注:红色部分一起执行
(2)对于 C shell(csh 或 tcsh),通过运行以下命令将以下行添加
到 /etc/csh.login 文件:
[root@racnode1 ~]# cat >> /etc/csh.login <<EOF
if ( /$USER == "oracle" || /$USER == "grid" ) then
limit maxproc 16384
limit descriptors 65536
endif
EOF
DavidDai Blog:http://blog.csdn.net/tianlesoftware
10 / 35 2012-10-12
注:红色部分一起执行
Dave 备注:
在Oracle Linux 6 平台下安装Oracle,可以使用Preinstal 包,该包会完
成相关的参数修改等操作,会大大简化我们安装数据库的时间,详细内容参考:
Oracle Linux 6 下 Oracle RDBMS Server 11gR2 Preinstall RPM 包说明
http://blog.csdn.net/tianlesoftware/article/details/7456878
1.9 存储规划
1.9.1 盘区划分
使用Openfiler 作为共享,使用iscsi 进行连接,使用udev 进行映射。
冗余策略 卷划分及大小说明
OCRVOTING Ocrvoting01 1G
Ocrvoting02 1G
Ocrvoting03 1G
ARCH Arch01 5G
Arch02 5G
DATAFILE Data01 5G
Data02 5G
Data03 5G
Data04 5G
Data05 5G
FRA Fra01 5G
Fra02 5G
Fra03 5G
注意这里需要在存储上进行划分,每个分区一个映射。所以这里需要在存储
上划分13 个分区。 这样是为了保证scsi_id 的唯一性。
根据官网的要求,11g 中每个OCR 和vote disk 至少需要300M 空间。在ASM
的冗余级别中:
external >= 1
normal >=3
high >=5
所以如果我们选择normal,那么至少需要3 个设备,每个设备至少600M。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
11 / 35 2012-10-12
1.9.2 配置ISCSI(所有节点执行)
[root@rac1 etc]# iscsiadm -m discovery -t sendtargets -p 192.168.1.2
192.168.1.2:3260,1 asm.tianlesoftware.com
192.168.1.3:3260,1 asm.tianlesoftware.com
192.168.1.2:3260,1 filesystem
192.168.1.3:3260,1 filesystem
--手工登陆:
[root@rac1 etc]# iscsiadm -m node -T asm.tianlesoftware.com -p
192.168.1.2 -l
Logging in to [iface: default, target: asm.tianlesoftware.com, portal:
192.168.1.2,3260]
Login to [iface: default, target: asm.tianlesoftware.com, portal:
192.168.1.2,3260] successful.
--配置自动登陆:
[root@rac1 etc]# iscsiadm -m node -T asm.tianlesoftware.com -p
192.168.1.2 --op update -n node.startup -v automatic
--停止ISCSI
[root@rac2 /]# service iscsi stop
[root@rac2 /]# service iscsid stop
--验证:
[root@rac1 etc]# netstat -anp |grep 3260
tcp 0 0 192.168.1.62:33454 192.168.1.2:3260
ESTABLISHED 6702/iscsid
1.9.3 格式化分区
对分区进行格式化:
[root@rac2 ~]# fdisk /dev/sdq
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF
disklabel
Building a new DOS disklabel with disk identifier 0xd5a3f562.
Changes will remain in memory only, until you decide to write them.
DavidDai Blog:http://blog.csdn.net/tianlesoftware
12 / 35 2012-10-12
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by
w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1018, default 1018):
Using default value 1018
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac2 ~]#
1.9.4 使用UDEV 进行持久化
参考MOS:
How To Setup UDEV Rules For RAC OCR And Voting Devices On SLES10, RHEL5,
OEL5, OL5 [ID 414897.1]
Oracle Linux 配置 UDEV SCSI Rules 说明
http://blog.csdn.net/tianlesoftware/article/details/7433344
How to use udev for Oracle ASM in Oracle Linux 6
http://www.dbform.com/html/2011/1708.html
--使用如下shell 脚本获取scsi id:
[root@rac1 u01]# cat get_scsiid.sh
#!/bin/sh
echo "---------begining------------"
DavidDai Blog:http://blog.csdn.net/tianlesoftware
13 / 35 2012-10-12
echo "---echo 4194MB---"
echo "/dev/sdb:"
/sbin/scsi_id -g -u /dev/sdb
echo "/dev/sdc:"
/sbin/scsi_id -g -u /dev/sdc
echo "/dev/sdd:"
/sbin/scsi_id -g -u /dev/sdd
echo "/dev/sde:"
/sbin/scsi_id -g -u /dev/sde
echo "/dev/sdf:"
/sbin/scsi_id -g -u /dev/sdf
echo "/dev/sdh:"
/sbin/scsi_id -g -u /dev/sdh
echo "---echo 5268MB---"
echo "/dev/sdk:"
/sbin/scsi_id -g -u /dev/sdk
echo "/dev/sdl:"
/sbin/scsi_id -g -u /dev/sdl
echo "/dev/sdm:"
/sbin/scsi_id -g -u /dev/sdm
echo "/dev/sdj:"
/sbin/scsi_id -g -u /dev/sdj
echo "/dev/sdn:"
/sbin/scsi_id -g -u /dev/sdn
echo "/dev/sdp:"
/sbin/scsi_id -g -u /dev/sdp
echo "/dev/sdr:"
/sbin/scsi_id -g -u /dev/sdr
echo "/dev/sdq:"
/sbin/scsi_id -g -u /dev/sdq
echo "/dev/sdo:"
/sbin/scsi_id -g -u /dev/sdo
echo "/dev/sds:"
/sbin/scsi_id -g -u /dev/sds
echo "/dev/sdg:"
/sbin/scsi_id -g -u /dev/sdg
echo "/dev/sdi:"
/sbin/scsi_id -g -u /dev/sdi
echo "/dev/sdu:"
/sbin/scsi_id -g -u /dev/sdu
echo "/dev/sdw:"
/sbin/scsi_id -g -u /dev/sdw
echo "---echo 234MB---"
DavidDai Blog:http://blog.csdn.net/tianlesoftware
14 / 35 2012-10-12
echo "/dev/sdt:"
/sbin/scsi_id -g -u /dev/sdt
echo "/dev/sdv:"
/sbin/scsi_id -g -u /dev/sdv
echo "/dev/sdx:"
/sbin/scsi_id -g -u /dev/sdx
echo "/dev/sdy:"
/sbin/scsi_id -g -u /dev/sdy
echo "/dev/sdz:"
/sbin/scsi_id -g -u /dev/sdz
echo "/dev/sdaa:"
/sbin/scsi_id -g -u /dev/sdaa
echo "----------end------------"
[root@rac1 u01]#
或者:
for i in c d e f g h i j k l m n o p ;
do
echo "sd$i" "`scsi_id -g -u -s /block/sd$i` ";
done
for i in b c d e f g h i j k ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u
-s %p\", RESULT==\"`scsi_id -g -u -s /block/sd$i`\", NAME=\"asm-disk$i\",
OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done
从输出结果中过滤后需要的结果如下:
---FRA 4194MB---
/dev/sdb:
14f504e46494c45527634436445432d567646522d70667244
/dev/sdc:
14f504e46494c45526852356f6c6c2d4241306e2d4f303739
/dev/sde:
14f504e46494c455238767444364e2d7530454f2d574a324d
---ARCH 5268MB---
/dev/sdk:
14f504e46494c45523369626957672d734941712d31515456
/dev/sdl:
DavidDai Blog:http://blog.csdn.net/tianlesoftware
15 / 35 2012-10-12
14f504e46494c455272427a76586a2d756647582d6d524252
---DATAFILE 5268MB---
/dev/sdm:
14f504e46494c45526e5a445a74332d4273346f2d71357243
/dev/sdr:
14f504e46494c45524f6c386759382d4635314f2d4c336965
/dev/sdq:
14f504e46494c45524d62483162502d6c4738562d78793269
/dev/sds:
14f504e46494c45525862523154342d717754332d38696b4e
/dev/sdg:
14f504e46494c4552623872364b662d756d7a4d2d6641746c
---OCRVOTING 1G---
/dev/sdt:
14f504e46494c455234664f31577a2d4d4c59622d58536a48
/dev/sdv:
14f504e46494c45523473564a4d6f2d445a6a652d5471414e
/dev/sdx:
14f504e46494c45524570393234322d717064522d4656397a
#添加记录到/etc/scsi_id.config
编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行:
[root@rac1 dev]# echo "options=--whitelisted --replace-whitespace" >>
/etc/scsi_id.config
创建rules 文件:
/etc/udev/rules.d/99-oracle-asmdevices.rules
添加如下内容:
#for ocrvoting
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c455234664f31577a2d4d4c59622d58536a48",
NAME="ocrvoting1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45523473564a4d6f2d445a6a652d5471414e",
NAME="ocrvoting2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45524570393234322d717064522d4656397a",
NAME="ocrvoting3", OWNER="grid", GROUP="asmadmin", MODE="0660"
DavidDai Blog:http://blog.csdn.net/tianlesoftware
16 / 35 2012-10-12
#for datafile
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45526e5a445a74332d4273346f2d71357243",
NAME="data01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45524f6c386759382d4635314f2d4c336965",
NAME="data02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45524d62483162502d6c4738562d78793269",
NAME="data03", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45525862523154342d717754332d38696b4e",
NAME="data04", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c4552623872364b662d756d7a4d2d6641746c",
NAME="data05", OWNER="grid", GROUP="asmadmin", MODE="0660"
#for fra
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45527634436445432d567646522d70667244",
NAME="fra01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45526852356f6c6c2d4241306e2d4f303739",
NAME="fra02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c455238767444364e2d7530454f2d574a324d",
NAME="fra03", OWNER="grid", GROUP="asmadmin", MODE="0660"
#for arch
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c45523369626957672d734941712d31515456",
NAME="arch01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted
--replace-whitespace --device=/dev/$name",
RESULT=="14f504e46494c455272427a76586a2d756647582d6d524252",
DavidDai Blog:http://blog.csdn.net/tianlesoftware
17 / 35 2012-10-12
NAME="arch02", OWNER="grid", GROUP="asmadmin", MODE="0660"
重启UDEV:
# /sbin/start_udev
验证:
[root@rac1 dev]# ls -l /dev/arch*
brw-rw---- 1 grid asmadmin 8, 177 Oct 10 10:22 /dev/arch01
brw-rw---- 1 grid asmadmin 8, 145 Oct 10 10:22 /dev/arch02
[root@rac1 dev]# ls -l /dev/fra*
brw-rw---- 1 grid asmadmin 8, 33 Oct 10 10:19 /dev/fra01
brw-rw---- 1 grid asmadmin 8, 65 Oct 10 10:19 /dev/fra02
[root@rac1 dev]# ls -l /dev/data*
brw-rw---- 1 grid asmadmin 8, 225 Oct 10 10:19 /dev/data01
brw-rw---- 1 grid asmadmin 65, 1 Oct 10 10:19 /dev/data02
brw-rw---- 1 grid asmadmin 65, 17 Oct 10 10:19 /dev/data03
brw-rw---- 1 grid asmadmin 65, 49 Oct 10 10:19 /dev/data04
brw-rw---- 1 grid asmadmin 8, 113 Oct 10 10:19 /dev/data05
[root@rac1 dev]# ls -l /dev/ocr*
brw-rw---- 1 grid asmadmin 65, 97 Oct 10 10:19 /dev/ocrvoting1
brw-rw---- 1 grid asmadmin 65, 129 Oct 10 10:19 /dev/ocrvoting2
brw-rw---- 1 grid asmadmin 65, 145 Oct 10 10:19 /dev/ocrvoting3
DavidDai Blog:http://blog.csdn.net/tianlesoftware
18 / 35 2012-10-12
二.安装Grid
使用X manager 连接到节点1 上,设置DISPLAY。
注:
这里强调顺序是节点1,因为在节点2 上执行,最后生成的服务名看起来会
很别扭,当然服务名最后也是可以修改的,具体怎么别扭,好奇的同学可以自己
实验一下。
Export DISPLAT=192.168.1.1:0.0
切到grid 用户,然后开始安装clusterware:
DavidDai Blog:http://blog.csdn.net/tianlesoftware
19 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
20 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
21 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
22 / 35 2012-10-12
注意:在11gr2 中
external >= 1
normal >=3
high >=5
DavidDai Blog:http://blog.csdn.net/tianlesoftware
23 / 35 2012-10-12
DavidDai Blog:http://blog.csdn.net/tianlesoftware
24 / 35 2012-10-12
指定$ORACLE_BASE 和 $GRID_BASE
DavidDai Blog:http://blog.csdn.net/tianlesoftware
25 / 35 2012-10-12
解决依赖包后重新安装:
DavidDai Blog:http://blog.csdn.net/tianlesoftware
26 / 35 2012-10-12
在65%的地方很容易卡住,等很长时间。注意检查防火墙状态。
提示运行root.sh,11.2.0.1 版有个bug,解决方法如下:
Oracle 11g RAC ohasd failed to start at
DavidDai Blog:http://blog.csdn.net/tianlesoftware
27 / 35 2012-10-12
/u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443 解决方法
http://blog.csdn.net/tianlesoftware/article/details/7697366
遇到一点小插曲:
Oracle RAC 第二节点 root.sh 报错 Timed out waiting for the CRS stack to
start
http://blog.csdn.net/tianlesoftware/article/details/8095122
安装完成后验证:
[grid@rac1 u01]$ crs_stat.sh
Name Target State Host
------------------------------ ---------- --------- -------
ora.LISTENER.lsnr ONLINE ONLINE rac1
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE rac1
ora.OCRVOTING.dg ONLINE ONLINE rac1
ora.asm ONLINE ONLINE rac1
ora.eons ONLINE ONLINE rac1
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE rac1
ora.oc4j OFFLINE OFFLINE
ora.ons ONLINE ONLINE rac1
ora.rac1.ASM1.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd OFFLINE OFFLINE
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd OFFLINE OFFLINE
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
ora.scan1.vip ONLINE ONLINE rac1
因为我们使用CTSS 来同步的,验证CTSS:
[grid@rac1 u01]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
至此,GI 安装结束。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
28 / 35 2012-10-12
三.安装DB
用oracle 用户,连上节点1,进入Oracle 的安装目录,安装Oracle 软件,
注意这里只安装软件。
1. Install databae software only
2. Select all RAC nodes
3. 设置 SSH
4. 选择语言
5. 选择 Enterprise Edition
6. 选择 Oracle 安装目录
DavidDai Blog:http://blog.csdn.net/tianlesoftware
29 / 35 2012-10-12
7. 选择用户组
8. 开始安装
9. 执行 root
10.执行脚本,执行完安装结束。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
30 / 35 2012-10-12
四.创建ASM 磁盘组
在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安
装OCR 和Voting Disk。 在我们继续安装Oracle 数据库之前,我们需要创建一个
DATA 和FRA 的ASM 磁盘组来存放这些文件。
用grid 用户运行asmca(ASM Configuration Assistant)命令就可以弹出创建窗口。
在窗口中创建完DATA 和 FRA 组后,退出窗口即可。
DavidDai Blog:http://blog.csdn.net/tianlesoftware
31 / 35 2012-10-12
五.创建实例
在节点1 用Oracle 用户运行dbca,创建实例。
1. 选择 RAC 集群
2. Create a database
3. 选择类型:事务还是数据仓库
4. 选择 Configuration Type:Admin-Managed
5. 设置实例名: dave
6. 选择所有节点
7. 配置 Enterprise Manager 和 Automatic Maintenance Tasks
8. 设置用户密码
9. 设置数据文件存放位置: DATA
10.设置FRA 和归档
11.设置内存,字符集等
12.开始安装
DavidDai Blog:http://blog.csdn.net/tianlesoftware
32 / 35 2012-10-12
六.配置Client-Side TAF
6.1 节点1 配置
6.1.1 修改Listener.ora 文件:
LISTENER_NODE1=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT =
1521)(IP=FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-public)(PORT =
1521)(IP=FIRST))
)
)
也可以使用netca 工具来配置。
6.1.2 启动Listener:
$ lsnrctl start LISTENER_NODE1
6.1.3 修改Tnsnames.ora 文件,添加如下内容:
NODE1_LOCAL=
(ADDRESS = (PROTOCOL = TCP)(HOST= rac1-vip)(PORT = 1521))
测试:
$ tnsping node1_local
6.1.4 设置 node1 的local_listener 参数
sql > alter system set LOCAL_LISTENER='node1_local' scope=both
sid='dave1';
DavidDai Blog:http://blog.csdn.net/tianlesoftware
33 / 35 2012-10-12
6.2 节点2 配置
6.2.1 修改Listener.ora 文件
LISTENER_NODE2=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-public)(PORT=1521)(IP=FIRST))
(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-vip)(PORT=1521)(IP=FIRST))
)
)
6.2.2 启动Listener
$ lsnrctl start LISTENER_NODE2
6.2.3 修改Tnsnames.ora 文件
NODE2_LOCAL=
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
验证:
$ tnsping node2_local
6.2.4 设置local_listener 参数
sql > alter system set LOCAL_LISTENER='node2_local' scope=both
sid='dave2' ;
6.3 在 node1 和node2 的 tnsnames.ora 文件添加如下内容
NODE_REMOTE =
(DESCRIPTION =
(ADDRESS_LIST =
DavidDai Blog:http://blog.csdn.net/tianlesoftware
34 / 35 2012-10-12
(ADDRESS = (PROTOCOL = TCP)(HOST=vip-node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST=vip-node2)(PORT = 1521))
)
)
测试:
$ tnsping node_remote
6.4 在所有节点设置 remote listener
sql> alter system set REMOTE_LISTENER='node_remote' scope=both;
6.5 进行TAF 测试
在客户端设置的 tnsnames.ora 设置TAF
RACTAF=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = yes)
(FAILOVER=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dave)
(failover_mode=(type=select)(method=basic))
)
)
local_listener 与 remote_listener 参数说明
http://blog.csdn.net/tianlesoftware/article/details/6087045
DavidDai Blog:http://blog.csdn.net/tianlesoftware
35 / 35 2012-10-12
---------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Skype: tianlesoftware
QQ: tianlesoftware@gmail.com
Email: tianlesoftware@gmail.com
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware