--根据[三思笔记]手把手教你用VMware在linux下安装Oracle10g RAC操作


一、环境
1、RHEL5.4   kernel:2.6.18-164.el5
2、WMware Workstation 8.0.3
3、asmlib


二、配置Linux
1、修改虚拟机配置(虚拟机目录下的.vmx文件)
disk.locking="false"
diskLib.dataCacheMaxSize="0"
diskLib.dataCacheMaxReadAheadSize="0"
diskLib.DataCacheMinReadAheadSize="0"
diskLib.dataCachepageSize="4096"
diskLib.maxUnsyncedWrites="0"

scsi1:1.deviceType="disk"
scsi1:2.deviceType="disk"
scsi1:3.deviceType="disk"
scsi1:4.deviceType="disk"


2、Edit /etc/hosts文件
  192.168.220.101       node1
192.168.220.103       node2

192.168.220.102       node1-vip
192.168.220.104       node2-vip

192.168.190.201       node1-priv
192.168.190.203       node2-priv

3、创建oracle组及用户
groupadd oinstall
groupadd dba
useradd -d /home/oracle -g oinstall -G dba oracle

passwd oracle
id oracle


4、初始化oracle参数文件
vi /home/oracle/.bash_profile

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/ora10g
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=RACDB1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
ulimit -u 16384 -n 65536
umask 022

5、创建目录
mkdir /opt/ora10g
chown oracle.oinstall /opt/ora10g

6、配置内核参数
  vi /etc/sysctl.conf
  
kernel.shmmax = 536870912
kernel.shmall = 2097152
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=1048576
net.core.rmem_max=1048576
net.core.wmem_default=262144
net.core.wmem_max=262144

--配置生效
sysctl -p

7、提高oracle的shell限制
  --设置oracle使用的文件数权限
vi /etc/security/limits.conf


oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
---------------------------------------------------
--修改安全限制
vi /etc/pam.d/login

session    required     /lib/security/pam_limits.so
----------------------------------------------------
--配置Hangcheck计时器
vi /etc/rc.local

modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

8、磁盘分区
   fdisk -l
   fdisk /dev/sdb : n/p/1/回车/回车/w
   fdisk /dev/sdc : n/p/1/回车/回车/w
   fdisk /dev/sdd : n/p/1/回车/回车/w
   fdisk /dev/sde : n/p/1/回车/回车/w
   fdisk -l
   
9、安装asmlib包
10、配置裸设备
vi /etc/udev/rules.d/60-raw.rules

ACTION=="add",KERNEL=="/dev/sda1",RUN+="/bin/raw /dev/raw/raw1 %N"
#ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"

ACTION=="add",KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw2 %N"
#ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"

ACTION=="add",KERNEL=="/dev/sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"
#ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"

ACTION=="add",KERNEL=="/dev/sdd1",RUN+="/bin/raw /dev/raw/raw4 %N"
#ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw /dev/raw/raw4 %M %m"

KERNEL=="raw[1-4]",OWNER="oracle",GROUP="oinstall",MODE="640"

--重启服务
start_udev
--验证
ls /dev/raw/ -l

11、配置node2节点
--由node1复制noode2

--修改hostname
hostname node2
vi /etc/sysconfig/network
重启node2

--修改ip
ifconfig

cd /etc/sysconfig/network-scripts/
mv ifcfg-eth0.bak ifcfg-eth0 -f
mv ifcfg-eth1.bak ifcfg-eth1 -f
vi ifcfg-eth0
修改ip
修改HWaddr(ifconfig中显示)
service network restart
ping ip priv-ip

--修改oracle环境变量
ORACLE_SID改为RACDB2

三、配置Clusterware
1、设置ssh
--node1
su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

--node2
su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

--node1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
--以下需node2节点的oracle密码
ssh node2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh node2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys node2:~/.ssh/authorized_keys

--测试
--node1
ssh node1 date
ssh node2 date
ssh node1-priv date
ssh node2-pirv date

--node2
ssh node1 date
ssh node2 date
ssh node1-priv date
ssh node2-pirv date


2、配置asm(root)
--node1
/etc/init.d/oracleasm configure : oracle / dba / y / y 

--node2
/etc/init.d/oracleasm configure : oracle / dba / y / y 

--node1
/etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
/etc/init.d/oracleasm createdisk VOL2 /dev/sde1

/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks

-node2
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks


四、安装Clusterware
xhost +
su - oracle
--由于rhel5不被oracle10g支持,指定-ignoreSysPreReqs跳过安装时的操作系统检查
./runInstaller  -ignoreSysPreReqs

Specify OCR Location : /dev/raw/raw2
Voting Disk Location :/dev/raw/raw1

--出现PRKC-1044错误:the following error was retruned by the operating system
--重新配置ssh后,解决PRKC-1044错误

--node2运行root.sh出错

--错误1:
/opt/ora10g/product/10.2.0/crs_1/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
解决方法:   
--修改vipca文件
vi /opt/ora10g/product/10.2.0/crs_1/bin/vipca
在如下内容:
#Remove this workaround when the bug 3937317 is fixed
      arch=`uname -m`
      if [ "$arch" = "i686" -o "$arch" = "ia64" ]
      then
           LD_ASSUME_KERNEL=2.4.19
           export LD_ASSUME_KERNEL
      fi
      #End workaround
   在fi后新加一行: unset LD_ASSUME_KERNEL
   
 --修改srvctl文件
 vi /opt/ora10g/product/10.2.0/crs_1/bin/srvctl
 在如下内容:
 #Remove this workaround when the bug 3937317 is fixed
 LD_ASSUME_KERNEL=2.4.19
 export LD_ASSUME_KERNEL
 在fi后新加一行: unset LD_ASSUME_KERNEL
 
 删除/etc/oracle/scls_scr/node2/oracle/cssfatal文件
 重新运行root.sh
 报错误2,此时crs服务已装好,vip还未设置
 
 --错误2:
Error 0(Native: listNetInterfaces:[3])
      [Error 0(Native: listNetInterfaces:[3])]
   解决方法:   
   cd /opt/ora10g/product/10.2.0/crs_1/bin/
   ./oifcfg iflist
  eth0  192.168.220.0
eth1  192.168.190.0
   ./oifcfg setif -global eth0/192.168.220.0:public
./oifcfg setif -global eth1/192.168.190.0:cluster_interconnect
./oifcfg getif
eth0  192.168.220.0  global  public
eth1  192.168.190.0  global  cluster_interconnect

运行 /opt/ora10g/product/10.2.0/crs_1/bin/vipca
在IP address are required for defining vitual IP resource application for each cluster node中填满vip
完成后,exit退出,返回node1中点OK结束脚本窗口.
完成cluster安装后,检查crs环境(root)
/opt/ora10g/product/10.2.0/crs_1/bin/./crs_stat -t

五、安装database   
进入database目录
./runInstaller  -ignoreSysPreReqs
选择所有节点,只安装软件,不装库


六、安装数据库和asm实例
1、配置监听
--创建数据库过程应遵循先配置监听,再配置ASM,最后创建数据库实例方式
--具体操作中出现监听错误,在node2上运行了netca重新配置了监听后正常
在任一节点运行netca
(1)选择所有node
(2)选择Listener configureation
(3)添加一个LISTENER,1521 port,后结束配置
(4)通过crs_stat -t -v查看Listener状态


2、创建ASM实例
(1)运行dbca
(2)选择oracle real application clusters database
(3)选择creat a Database
(4)选择所有节点
(5)选择custom database
(6)指定数据库标识 Global database name:RACDB   SID Prefix:RACDB
--oracle会自动为各节点分配sid,前缀为RACDB,node1为RACDB1,node2为RACDB2
(7)取消configure the database with enterprise manager
(8)为管理员分配password
(9)选择存储
a.选择automatic storage management(ASM)
b.填入sys password,选择create initlalization parameter file(ifile)
c.next,创建asm instance creation
--具体操作中未配netca,报listener错,重配listener
d.选择asm可用磁盘组,点击create new
e.Disk Group Name: rac_disk
 Redundancy: External(虚机磁盘不多,不启用冗余)
 Select Member Disks: show candidates
 勾选diskpath、/dev/raw/raw3、/dev/raw/raw4(全选所有asm磁盘)
 点击ok创建asm磁盘组。
 --具体操作中报错,不能mount node2。上一步后重试成功
f.指定数据库文件夹位置:选择Use Oracle-managed Files(即OMF)
g.不启用闪回和归档(只设了一个磁盘组,无法启用闪回。磁盘太小,无法启用归档)
h.并掉所有可选数据库组件(可根据实际情况开启)
i.数据库服务,先不配置,直接next
j.设置sga,pga,block_size
 --Character Sets选ZHS16GBK和AL16UTF16
 --点击All initiallzation Parameters,关掉remote_listener初始化参数的值,不然dbca建库时可能会出错
   ORA-00119:invalid specification for system parameter LOCAL_LISTENER
   ORA_00132:syntax error or unresolved network name 'LISTENERS_RACDB'
k.选中Create Database,单击finish开始建库 
l.摘要信息,ok
m.exit后自动启动数据库

3、将crs命令加入root和oracle的PATH
   export PATH=/opt/ora10g/product/10.2.0/crs_1/bin:$PATH
   
4、关机重启后启动RAC
(1)启动后状态
[root@node1 ~]# crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....B1.inst application    ONLINE    OFFLINE               
ora....B2.inst application    ONLINE    OFFLINE               
ora.RACDB.db   application    ONLINE    UNKNOWN   node1       
ora....SM1.asm application    ONLINE    UNKNOWN   node1       
ora....E1.lsnr application    ONLINE    UNKNOWN   node1       
ora.node1.gsd  application    ONLINE    UNKNOWN   node1       
ora.node1.ons  application    ONLINE    UNKNOWN   node1       
ora.node1.vip  application    ONLINE    OFFLINE               
ora....SM2.asm application    ONLINE    UNKNOWN   node2       
ora....E2.lsnr application    ONLINE    UNKNOWN   node2       
ora.node2.gsd  application    ONLINE    UNKNOWN   node2       
ora.node2.ons  application    ONLINE    UNKNOWN   node2       
ora.node2.vip  application    ONLINE    OFFLINE  
  (2)失败原因是由于2个节点时间不同步,进而造成crs在启动时无法认到系统已决册源造成的
  (3)解决方法:
a、crs_stat -t;            --查看服务状态
b、crs_stat;               --查看所有资源的完整服务名称
c、crs_stop -all;          --关闭所有State为ONLINE的服务,state为UNKNOWN的资源不能通过这个命令关闭
d、crs_stop 完整服务名;    --关闭状态为UNKNOWN相应的服务(每一个都用该命令关闭一次)
e、crs_stat -t;            --确保所有服务都关闭
f、crs_start -all;         --重启所有服务
g、crs_stat -t;            --查看服务状态
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....B1.inst application    ONLINE    ONLINE    node1       
ora....B2.inst application    ONLINE    ONLINE    node2       
ora.RACDB.db   application    ONLINE    ONLINE    node1       
ora....SM1.asm application    ONLINE    ONLINE    node1       
ora....E1.lsnr application    ONLINE    ONLINE    node1       
ora.node1.gsd  application    ONLINE    ONLINE    node1       
ora.node1.ons  application    ONLINE    ONLINE    node1       
ora.node1.vip  application    ONLINE    ONLINE    node1       
ora....SM2.asm application    ONLINE    ONLINE    node2       
ora....E2.lsnr application    ONLINE    ONLINE    node2       
ora.node2.gsd  application    ONLINE    ONLINE    node2       
ora.node2.ons  application    ONLINE    ONLINE    node2       
ora.node2.vip  application    ONLINE    ONLINE    node2 


5、RAC服务说明
(1)inst : Database instance
(2)db   : Database
(3)asm  : ASM service
(4)gsd  : Global Service Daemon
(5)ons  : Oracle Notification Service Daemon
(6)vip  :VIRTUAL IP
(7)lsnr : Listener

七、RAC 安装失败后的删除(完整版)




dd if=/dev/zero of=/dev/raw/raw1 bs=1M
dd if=/dev/zero of=/dev/raw/raw2 bs=1M
dd if=/dev/zero of=/dev/raw/raw3 bs=1M
dd if=/dev/zero of=/dev/raw/raw4 bs=1M


rm  -rf -rf /opt/ora10g/*
rm  -rf /etc/rc.d/rc5.d/S96init.crs
rm  -rf /etc/rc.d/init.d/init.crs
rm  -rf /etc/rc.d/rc4.d/K96init.crs
rm  -rf /etc/rc.d/rc6.d/K96init.crs
rm  -rf /etc/rc.d/rc1.d/K96init.crs
rm  -rf /etc/rc.d/rc0.d/K96init.crs
rm  -rf /etc/rc.d/rc2.d/K96init.crs
rm  -rf /etc/rc.d/rc3.d/S96init.crs
rm  -rf /etc/oracle/*
rm  -rf /etc/oraInst.loc
rm  -rf /etc/oratab
rm  -rf /usr/local/bin/coraenv
rm  -rf /usr/local/bin/dbhome
rm  -rf /usr/local/bin/oraenv
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
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -f /etc/inittab.crs


mv /etc/inittab /etc/inittab_bak
cp /etc/inittab.orig /etc/inittab




  






Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐