虚拟机VMware安装OracleRAC.RedHat Enterprise AS4安装Oracle10g RAC
草木瓜 20080226
一、本文环境
虚拟机版本:
VMware GSX Server 3.2.0 build-14497
安装Linux版本:
[root@linuxrac6 etc]# lsb_release -a
LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
Release: 4
Codename: NahantUpdate2
[root@linuxrac6 etc]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
[root@linuxrac6 etc]# uname -a
Linux linuxrac6 2.6.9-22.EL #1 Mon Sep 19 18:20:28 EDT 2005 i686 i686 i386 GNU/Linux
可参照官方安装文档:
http://www.oracle.com/technology/global/cn/pub/articles/hunter_rac10gr2.html
或其他比较全面的文档
http://www.uml.org.cn/sjjm/200612311.htm#6
主机环境 双节点:
linuxrac9
linuxrac6
在生产环境下,完全按照官方文档是十分必要的,但在个人测试环境,很难去完全按照官方
文档,换句话说,也没有太多意义,我们不怕暴露问题,这样在安装的过程会了解的更多。一
次性安装成功是比较悲哀的。
二、创建虚拟机
网络图文并茂的文章很多,这里简单列出笔者流程,以供参考:
File ->
New Vitual Machine ->
Custom Next ->
Linux RedHat Enterprise Linux 4 Next ->
名称与目录 Next ->
Access Rights 不选中 make this virtual machine private <可动态调整> Next ->
Use that power on the virtual machine <可动态调整> Next ->
Memory <可动态调整> 当然是越大越好,可惜你没有那么多内存 Next ->
Use bridged networking <可动态调整> Next->
SCSI LSI Logic Next ->
Create a new vitrual disk Next ->
SCSI Next ->
Disk Size 8G 选中 Allocate all disk space now 不选中 Split disk into 2GB files ->
Disk file Name Finish
三、安装虚拟机操作系统,配置节点环境
可参照《虚拟机VMware安装OracleRAC.环境综述》一文配置:
<五、配置两台虚拟机>一节
linuxrac9 linuxrac6
<六、配置双机环境>一节
Oracle10g RAC还需要设置VIP,即还需要修改/etc/hosts,添加如下内容:
134.98.105.233 linuxrac9-vip
134.98.105.234 linuxrac6-vip
VIP(virtual IP 虚拟 IP),使用外部网络IP地址,是Oracle10g RAC的新特性。
采用这个技术后,一个节点发生故障后,与其关联的VIP将被自动切换到另外某个节点
上。新的节点重新进行地址解析,显示一个新MAC地址。对于直接连接的客户端,就会因连接
旧地址时而出现错误。
随后发送到VIP的数据包前往新的节点,该节点将把错误的RST数据包返回客户端。客户端
立即收到错误信息。
当客户端向故障停机的节点发出请求SQL,或者在连接状态下遍历数据时,客户端不会等待
很长的 TCP/IP 超时(大约 10 分钟),而是接收到一个TCP重置消息。对于SQL来说,该信息为
ORA-3113。对于连接,可使用tnsname中的下一个地址。
更进一步的操作是使用透明的应用程序故障切换(TAF)。成功配置TAF后,可以完全避免ORA
-3113错误
如果不使用VIP,连接已停用节点的客户端经常要等待10分钟的TCP超时,然后才能收到错误
信息。不使用VIP不会真正拥有好的高可用性解决方案。
$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
134.98.105.170 linuxrac9
134.98.105.171 linuxrac6
192.168.0.9 linuxrac9-priv
192.168.0.6 linuxrac6-priv
134.98.105.233 linuxrac9-vip
134.98.105.234 linuxrac6-vip
<七、设置共享磁盘>一节
四、安装配置OCFS2(oracle cluster file system)共享文件系统
RAC必须设置好共享存储,目前企业生产大多使用磁盘阵列,共享卷组划分裸设备。即稳定,
性能也不错!不过本文要采用的是比较少用的OCFS2文件系统。
提示:
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取
的特殊字符设备。
Oracle为RedHatEnterpriseAS4提供了OCFS2,先前版本使用的是OCFS。
安装OCFS2之前,须要设置 /usr/bin/system-config-securitylevel 。
OCFS2无法在启用SELinux 的情况下运行。所以必须要禁用 SELinux,即运行“Security
Level Configuration”进行配置:
# /usr/bin/system-config-securitylevel
单击 SELinux 选项卡并取消选中“Enabled”复选框。单击 [OK] 后,将显示一个警告对话框。
只需单击“Yes”确认该警告。所有节点修改后皆须重新引导。
http://oss.oracle.com/projects/ocfs2/ 下载相应组件(必须下载内核相对应的版本):
在每台节点机下,分别安装RPM包。
[root@linuxrac9 setup]# rpm -ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
Preparing... ########################################### [100%]
1:ocfs2-tools ########################################### [100%]
[root@linuxrac9 setup]# rpm -ivh ocfs2-tools-devel-1.2.7-1.el4.i386.rpm
Preparing... ########################################### [100%]
1:ocfs2-tools-devel ########################################### [100%]
[root@linuxrac9 setup]# rpm -ivh ocfs2console-1.2.7-1.el4.i386.rpm
Preparing... ########################################### [100%]
1:ocfs2console ########################################### [100%]
[root@linuxrac9 setup]# rpm -ivh ocfs2-2.6.9-22.EL-1.2.7-1.el4.i686.rpm
Preparing... ########################################### [100%]
1:ocfs2-2.6.9-22.EL ########################################### [100%]
安装后,在每台节点机下,确认ocfs2模块已加载:
[root@linuxrac6 init.d]# /etc/init.d/o2cb status
Module "configfs": Loaded
Filesystem "configfs": Mounted
Module "ocfs2_nodemanager": Loaded
Module "ocfs2_dlm": Loaded
Module "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold: 31
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Active
如未启动,可通过以下命令,重启
[root@linuxrac6 init.d]# /etc/init.d/o2cb unload
Stopping O2CB cluster ocfs2: OK
Unloading module "ocfs2": OK
Unmounting ocfs2_dlmfs filesystem: OK
Unloading module "ocfs2_dlmfs": OK
Unmounting configfs filesystem: OK
Unloading module "configfs": OK
[root@linuxrac6 init.d]# /etc/init.d/o2cb load
Loading module "configfs": OK
Mounting configfs filesystem at /config: OK
Loading module "ocfs2_nodemanager": OK
Loading module "ocfs2_dlm": OK
Loading module "ocfs2_dlmfs": OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
配置OCFS2,建议使用ocfs2console进行图形化配置:
linuxrac9 0 134.98.105.170 7777
linuxrac6 0 134.98.105.171 7777
配置后生成文件 /etc/ocfs2/cluster.conf (当然也可以手工进行配置) ,内容如下:
[root@linuxrac6 ocfs2]# ls
cluster.conf
[root@linuxrac6 ocfs2]# cat *
cluster:
node_count = 2
name = ocfs2
node:
ip_port = 7777
ip_address = 134.98.105.170
number = 0
name = linuxrac9
cluster = ocfs2
node:
ip_port = 7777
ip_address = 134.98.105.171
number = 1
name = linuxrac6
cluster = ocfs2
再次强调,每台节点机必须都统一配置。
五、格式化与自动挂载
在任一节点进行
fdisk操作(具体分区方法可自带帮助),分区后显示内容:
[root@linuxrac6 ocfs2]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 978 7855753+ 83 Linux
/dev/sda2 979 1043 522112+ 82 Linux swap
Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 522 4192933+ 83 Linux
用ocfs2格式化分区,具体参数可参看man手册。
[root@linuxrac9 ~]# mkfs.ocfs2 -b 4K -C 32K -N 4 -L oradata /dev/sdb1
mkfs.ocfs2 1.2.7
Overwriting existing ocfs2 partition.
Proceed (y/N): y
Filesystem label=orafiles
Block size=4096 (bits=12)
Cluster size=32768 (bits=15)
Volume size=4293558272 (131029 clusters) (1048232 blocks)
5 cluster groups (tail covers 2005 clusters, rest cover 32256 clusters)
Journal size=67108864
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 1 block(s)
Formatting Journals: done
Writing lost+found: done
mkfs.ocfs2 successful
在两台节点机分别挂载文件系统:
mount -t ocfs2 -o datavolume /dev/sdb1 /oradata
注意:-o datavolume 不能丢也不能乱改,否则在安装CRS中执行root.sh会提示错误:
ocrconfig Failed to upgrade Oracle Cluster Registry configuration ,查看日志会提示
你分区格式类型错误!这个错误往往让人误解是权限问题,其实不然!
Oracle 数据库用户必须使用 datavolume 挂载选项,安装包含表决磁盘文件、集群注
册表 (OCR)、数据文件、重做日志、归档日志以及控制文件的卷,以确保Oracle进程
打开包含o_direct 标志的文件。
注意:有时会出现如下错误,确认配置无误的情况下,可以启动ocfs2console,点击
下配置(cluster->configure nodes),然后关闭后再次挂载,可解决问题,实在不行再重启,
问题主要来源于虚拟机下安装的不稳定性。
[root@linuxrac6 oradata]# mount -t ocfs2 -o datavolume /dev/sdb1 /oradata
ocfs2_hb_ctl: Unable to access cluster service while starting heartbeat
mount.ocfs2: Error when attempting to run /sbin/ocfs2_hb_ctl: "Operation not permitted"
设置为开机自动启动挂载
1、首先保证启动如下服务:
o2cb
ocfs2 <自动挂载文件系统>
设置启动服务方法众多,如:
[root@linuxrac9 ora9]# system-config-services
想让o2cb自动load须作如下设置
[root@linuxrac9 ora9]# /etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
<ENTER> without typing an answer will keep that current value. Ctrl-C
will abort.
Load O2CB driver on boot (y/n) [y]: y
Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfs2
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
2、修改/etc/fstab增加一项:
[root@linuxrac9 ora9]# vi /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=SWAP-sda2 swap swap defaults 0 0
/dev/hdc /media/cdrom auto pamconsole,exec,noauto,managed 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
/dev/sdb1 /oradata ocfs2 datavolume 0 0
事实证明VMware GSX Server 3.2.0 build-14497的共享磁盘不稳定,复制数据经常无故
关机,使得安装无法继续,十分令人头疼,笔者建议如发现此类现象,重新删除重新添加,
可按《虚拟机VMware安装OracleRAC.环境综述》一文描述尝试。
主要怀疑点:
1.ocfs2本身的稳定性
2.<有可能,操作系统不稳定>Red Hat Enterprise Linux AS release 4 本身问题
3.<有可能>虚拟机共享磁盘本身的问题
4.某环节的兼容性问题
六、设置节点机ORACLE的安装环境(各节点皆须设置)
1.设置内核参数
vi /etc/sysctl.conf
该参数定义了共享内存段的最大尺寸值,对于oracle来说,该缺省值太低了,这里将其设置
为261986254 bytes,当然可以根据实际情况更大,曾有人因kernel.shmmax设置太低而在运行
sqlplus " / as sysdba"出现ORA-12547:TNS:lost contact错误,笔者这里设置的N低也没有事。
kernel.shmmax = 261986254
# sysctl -p 立刻生效
2.添加用户组
添加组 oradba
添加用户 oracle
安装,管理,使用多合一
3. .bash_profile 设置
所列出的都是必须项!
a. 其中CRS_HOME没有特别的用义,主要用于查找方便。
b. 安装10G,须要先装CRS,再装Oracle DB,需要修改ORACLE_HOME环境变量。
如:
export ORACLE_HOME=$ORACLE_BASE/crs 用于安装CRS
export ORACLE_HOME=$ORACLE_BASE/db 用于安装Oracle Database
c. export ORACLE_SID=liwei1 在另一台节点上是 export ORACLE_SID=liwei2 ,具体名称
可自行拟定。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
#ORACLE
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/oracle/ora9
export ORACLE_HOME=$ORACLE_BASE/db
export ORACLE_SID=liwei1
export CRS_HOME=$ORACLE_BASE/crs
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#LIB,CLASS
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin:$CRS_HOME/bin
CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
unset USERNAME
4.配置hangcheck-timer
Oracle9202以前,是使用watchdog来检查系统是否挂起。自9202以后,oracle使用hangcheck-timer
模块。加载hangcheck-timer模块到内核中,能够定时检查系统是否挂起。
hangcheck_tick:该参数定义了模块启动的间隔时段。其默认值为 60 秒。
Oracle建议将其设置为 30 秒。
hangcheck_margin:该参数定义了多少时间以后系统没响应就认为是挂起。以秒为单位。
其默认值为 180秒。Oracle 建议将其设置为 180 秒。
该模块在AS3和AS4中是自带的,但AS4与AS3略有不同。
[root@linuxrac9 bin]# find /lib/modules -name "hangcheck-timer*"
/lib/modules/2.6.9-22.EL/kernel/drivers/char/hangcheck-timer.ko
AS4不能够使用如下命令(AS3)进行加载:
[root@linuxrac9 bin]# insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
insmod: can't read 'hangcheck-timer': No such file or directory
可使用如下方式:
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
<添加到自动启动>
修改 /etc/rc.local ,加入一行:
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
加载成功显示如下,注意第一行。
[root@linuxrac9 etc]# lsmod
Module Size Used by
hangcheck_timer 3289 0
ocfs2 375748 1
debugfs 9992 2 ocfs2
ocfs2_dlmfs 25352 1
ocfs2_dlm 228360 2 ocfs2,ocfs2_dlmfs
ocfs2_nodemanager 183024 7 ocfs2,ocfs2_dlmfs,ocfs2_dlm
configfs 26252 2 ocfs2_nodemanager
dm_mirror 27825 0
dm_mod 56661 1 dm_mirror
button 6481 0
battery 8901 0
ac 4805 0
md5 4033 1
ipv6 234881 16
pcnet32 30409 0
mii 4673 1 pcnet32
floppy 58481 0
ext3 116809 1
jbd 71385 2 ocfs2,ext3
mptscsih 41645 0
mptbase 54957 1 mptscsih
sd_mod 17217 5
scsi_mod 121293 2 mptscsih,sd_mod
[root@linuxrac9 etc]# grep hangcheck /var/log/messages
Mar 21 09:11:53 linuxrac9 kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).
5. 补充说明
与安装Oracle 9i不同的是,笔者在安装Oracle10gRAC前,未安装相关补丁,也未修改gcc文件。
七、检查安装条件
如果在安装操作系统过程中选择全部安装就不必烦心了,下面列出Oracle推荐须要的:
binutils-2.15.92.0.2-13.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-22.1.EL4
gcc-c++-3.4.3-22.1.EL44
glibc-2.3.4-2.9
glibc-common-2.3.4-2.9
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-22.1
libstdc++-devel-3.4.3-22.1
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
setarch-1.6-1
以及
libaio-devel-0.3.103-3
libaio-0.3.103-3
八、使用Oracle安装介质安装CRS
Oracle 10g RAC 安装 需先安装CRS(Oracle提供的集群管理软件),再安装Oracle Database。
这里使用的介质是:
10201_clusterware_linux32.zip
注意:安装CRS不能通过网络mount共享文件夹,否则在过程会提示找不着对应节点(如linuxrac9,
linuxrac9-priv,linuxrac9-vip等),错误提示是十分奇怪的。
mount -t smbfs -o username=administrator,password=yiming,ip=134.98.105.169 -l //micropc/Speed /mntnet
注意:安装有时也会提示linuxrac9-vip这类名称已被使用,首先确保linuxrac9-vip所用IP地址在
网络上无冲突。如问题依然存在,可重新设置节点机/etc/hosts的vip部分再重启。在系统启动信息中
不能相同IP已存在的提示。
安装crs过程中,需要执行root.sh,必须要在单台节点机完成后,再到别外一台节点机执行。
节点机linuxrac9执行记录:
[root@linuxrac9 /]# /oracle/ora9/crs/root.sh
WARNING: directory '/oracle/ora9' is not owned by root
WARNING: directory '/oracle' is not owned by root
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
WARNING: directory '/oracle/ora9' is not owned by root
WARNING: directory '/oracle' is not owned by root
assigning default hostname linuxrac9 for node 1.
assigning default hostname linuxrac6 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: linuxrac9 linuxrac9-priv linuxrac9
node 2: linuxrac6 linuxrac6-priv linuxrac6
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Now formatting voting device: /oradata/crs/vote
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.
linuxrac9
CSS is inactive on these nodes.
linuxrac6
Local node checking complete.
Run root.sh on remaining nodes to start CRS daemons.
节点机linuxrac6执行记录:
[root@linuxrac6 etc]# /oracle/ora9/crs/root.sh
WARNING: directory '/oracle/ora9' is not owned by root
WARNING: directory '/oracle' is not owned by root
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
WARNING: directory '/oracle/ora9' is not owned by root
WARNING: directory '/oracle' is not owned by root
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
assigning default hostname linuxrac9 for node 1.
assigning default hostname linuxrac6 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: linuxrac9 linuxrac9-priv linuxrac9
node 2: linuxrac6 linuxrac6-priv linuxrac6
clscfg: Arguments check out successfully.
NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry for cluster has already been initialized
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.
linuxrac9
linuxrac6
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
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...
Done.
九. 处理安装CRS失败
由于各类原因,CRS在虚拟机下安装是十分脆弱的,如发现中途意外关机或重启现象,须
要彻底删除CRS,并重新安装,在原有基础进行修复是没有意义的。
1.停止进程
2.清除自启动文件
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
find /etc -name '*init.crs*' -exec rm {} /;
rm -f /etc/inittab.crs
修改 /etc/inittab 去除文件末尾crs部分
3.重启
确认无任何CRS进程,ps -ef 无 /oracle/ora9/crs/bin/ 类似项
调用 ./runInstaller 删除安装组件
4.手工清除其他文件
rm -rf /etc/oracle/
rm -rf /etc/ora*
rm -rf <CRS安装目录>
rm -rf /tmp
rm -rf /var/tmp
rm -rf <CRS 注册文件和表决文件>
5.设置好环境变量,重新安装
十. 使用Oracle安装介质安装Database
成功安装CRS后,使用如下命令查看运行状态:
[root@linuxrac9 var]# crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
[oracle@linuxrac6 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....ac6.gsd application ONLINE ONLINE linuxrac6
ora....ac6.ons application ONLINE ONLINE linuxrac6
ora....ac6.vip application ONLINE ONLINE linuxrac6
ora....ac9.gsd application ONLINE ONLINE linuxrac9
ora....ac9.ons application ONLINE ONLINE linuxrac9
ora....ac9.vip application ONLINE ONLINE linuxrac9
crs命令在任一节点均可操作,查看详细名称可用:
[root@linuxrac6 ~]# crs_stat
NAME=ora.linuxrac6.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on linuxrac6
NAME=ora.linuxrac6.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on linuxrac6
NAME=ora.linuxrac6.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on linuxrac6
...
查看详细信息,可用命令crs_stat -p ora.linuxrac6.gsd
[root@linuxrac6 ~]# crs_stat -p ora.linuxrac6.gsd
NAME=ora.linuxrac6.gsd
TYPE=application
ACTION_SCRIPT=/oracle/ora9/crs/bin/racgwrap
ACTIVE_PLACEMENT=0
AUTO_START=1
CHECK_INTERVAL=600
DESCRIPTION=CRS application for GSD on node
FAILOVER_DELAY=0
FAILURE_INTERVAL=0
FAILURE_THRESHOLD=0
HOSTING_MEMBERS=linuxrac6
OPTIONAL_RESOURCES=
PLACEMENT=restricted
REQUIRED_RESOURCES=
RESTART_ATTEMPTS=5
SCRIPT_TIMEOUT=600
START_TIMEOUT=0
STOP_TIMEOUT=0
UPTIME_THRESHOLD=7d
USR_ORA_ALERT_NAME=
USR_ORA_CHECK_TIMEOUT=0
USR_ORA_CONNECT_STR=/ as sysdba
USR_ORA_DEBUG=0
USR_ORA_DISCONNECT=false
USR_ORA_FLAGS=
USR_ORA_IF=
USR_ORA_INST_NOT_SHUTDOWN=
USR_ORA_LANG=
USR_ORA_NETMASK=
USR_ORA_OPEN_MODE=
USR_ORA_OPI=false
USR_ORA_PFILE=
USR_ORA_PRECONNECT=none
USR_ORA_SRV=
USR_ORA_START_TIMEOUT=0
USR_ORA_STOP_MODE=immediate
USR_ORA_STOP_TIMEOUT=0
USR_ORA_VIP=
确认一切正常后,使用安装介质安装,注意修改ORACLE_HOME路径,这里使用的是
export ORACLE_HOME=/oracle/ora9/db
安装介质:
10201_database_linux32.zip
安装过程没有什么可说的,笔者推荐安装database全部组件项,不建议自定义安装。安
装过程内存尽量设置的大一些。
强调,这里只安装软件,不创建数据库。
十一、处理安装Database失败
rm -rf /tmp
使用 ./runInstaller删除相应组件
rm -rf <database安装目录>
以下步骤,未安装数据库可跳过
rm -rf <数据库文件目录>
rm -rf <数据库RAC配置文件目录 admin>
十二、配置监听
启动netca,选择配置集群,
配置监听,添加监听,一直NEXT。
配置本地命名方法,只添加“本地命名”,NEXT,完成。
这时用crs_stat -t 查看,即多了两个lsnr的进程。
[root@linuxrac6 ~]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C6.lsnr application ONLINE ONLINE linuxrac6
ora....ac6.gsd application ONLINE ONLINE linuxrac6
ora....ac6.ons application ONLINE ONLINE linuxrac6
ora....ac6.vip application ONLINE ONLINE linuxrac6
ora....C9.lsnr application ONLINE ONLINE linuxrac9
ora....ac9.gsd application ONLINE ONLINE linuxrac9
ora....ac9.ons application ONLINE ONLINE linuxrac9
ora....ac9.vip application ONLINE ONLINE linuxrac9
如使用rsh的rcp方法,偶尔在配置监听时会提示rcp失败,还是推荐ssh!
这个步骤十分重要,如跳过,直接创建数据库,会提示ORA-12547:TNS:lost contact,即
便以后重新正确配置,也还会提示ORA-12547:TNS:lost contact错误,在oracle用户下使用sqlplus
" / as sysdba "也会同样提示这个错误,解决这个问题,须重新安装oracle database。
提示ORA-12547:TNS:lost contact错误时,sqlnet.log内容:
***********************************************************************
Fatal NI connect error 12546, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/oracle/ora9/db/bin/oracle)(ARGV0=oracleliwei1)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)(HOST=linuxrac9)(USER=root))))
VERSION INFORMATION:
TNS for Linux: Version 10.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production
Time: 20-MAR-2008 17:24:08
Tracing not turned on.
Tns error struct:
ns main err code: 12546
TNS-12546: TNS:permission denied
ns secondary err code: 12560
nt main err code: 516
TNS-00516: Permission denied
nt secondary err code: 13
nt OS err code: 0
另外,有个常见错误也要说明下:
Unable to connect to database. ORA-12162: TNS:Service name is incorrectly specified
这是由于配置文件.bash_profile中ORACLE_SID名称不对,或者配置文件里的名称前带空格造成。
可以通过手工临时修改为安装时配置名称,然后进行后续操作。
[root@linuxrac6 ~]# export ORACLE_SID=liwei1
[root@linuxrac6 ~]# sqlplus '/ as sysdba'
十三、创建数据库
使用 dbca -datafileDestination /oradata/liwei 创建数据库。
-datafileDestination /oradata/liwei 表示指定数据库文件存放目录,也可在dbca界面选择。
创建时选择全部节点,由于本示例未使用ASM,须跳过配置ASM部分。
注意:
临近最后配置服务时,须手工点击添加,输入服务名,这里是liwei,这里界面右侧会
自动添加两个实例,默认设置为首选,默认TAF策略为无,单击下一步。
注意:
由于空间问题,可以缩减创建表空间的大小,但REDO不可盲目减少,RAC须指定不同
thread,新手可直接保持REDO的默认设置。
创建数据库这个步骤在虚拟机上操作是最慢的,须耐性等待。完成后,即可进行RAC数据库
的测试了。
crs_stat -t 如下显示:
[oracle@linuxrac6 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....C6.lsnr application ONLINE ONLINE linuxrac6
ora....ac6.gsd application ONLINE ONLINE linuxrac6
ora....ac6.ons application ONLINE ONLINE linuxrac6
ora....ac6.vip application ONLINE ONLINE linuxrac6
ora....C9.lsnr application ONLINE ONLINE linuxrac9
ora....ac9.gsd application ONLINE ONLINE linuxrac9
ora....ac9.ons application ONLINE ONLINE linuxrac9
ora....ac9.vip application ONLINE ONLINE linuxrac9
ora.liwei.db application ONLINE ONLINE linuxrac9
ora....iwei.cs application ONLINE ONLINE linuxrac6
ora....ei1.srv application ONLINE ONLINE linuxrac9
ora....ei2.srv application ONLINE ONLINE linuxrac6
ora....i1.inst application ONLINE ONLINE linuxrac9
ora....i2.inst application ONLINE ONLINE linuxrac6
十四、总结
虚拟机 Oracle 10g RAC 环境构建完成。后续文章将着重介绍CRS相关应用方法和故障排除。