Oracle11g rac安装

最近一段时间一直在折腾ORACLE11g的rac安装,因为之前一直没有安装成功,所以这次卯足了劲,费了九牛二虎之力终于给装好了,自我感觉还是学到了不少东西,现在总结起来,以备后用。

首先说下RAC:

RAC,全称real application clusters,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。(引自百度知道)

 从我日常的理解来看,Rac就是oracle提供的一个高可用性的集群,可以实现类似双机热备的功能,实现业务的无缝切换。

Rac本身他并不能提高数据库的性能,若想提高数据库的性能,还得应用与数据库协调进行应用分离,保证业务层面的相互独立,才能发挥Rac的最大性能优势,若只是追求业务的安全性,个人感觉,Rac并没有多大性能上的提高,反而在某些OLTP的业务层面上 会有一定的下降。

仍有两个问题需要了解:udev的设置规则、dd命令的使用

下面就开始说我的安装操作步骤:

1.环境准备

虚拟机:ORACLE VIRTURALBOX(用VMWARE也可以,我之前一直用VMWARE没有安装成功,后来放弃改用了VIRTURALBOX)

主机:6G+内存,100G+硬盘

介质:RedHat 5.4 x64(之前用的Oracle Linux6.1,出现了好多问题,后来放弃了)

oracle 11.2.0.1的grid和database介质(建议直接做成ISO,这样在虚拟机里直接挂载,不需要上传安装文件解压)

注:操作系统版本如果选择Redhat 6以上的版本,建议使用11.2.0.3的版本,因为11.2.0.1的版本是在6之前发布的,所以在6的版本上安装会出现各种各样莫名其妙的问题,中间我安装的时候,出过几次问题,最后就要成功的时候,电脑蓝屏,彻底放弃了那个版本。

这次安装参考了david的安装手册(去csdn下载“Oracle+Linux+6.1+++Oracle+11.2.0.1+RAC+++RAW安装文档”)和百度知道里的安装手册,才完成。

下面是参考的百度知道的地址:

http://wenku.baidu.com/view/bd846aa60029bd64783e2c5f.html

2.虚拟机安装

安装步骤跟以往的安装步骤无区别,但是需要把一些关键的系统包给安装进去。

(gcc,libstdc++,glibc,compat-libstdc++,liaio,libaio-devel,unixODBC,unixODBC-devel,syssta,pdksh……)

安装虚拟机的时候需要选择两块网卡,一块作为private,一块作为public的,public主要是为以后的vip地址使用。

需要关闭iptables selinux ntp

service iptables stop

chkconfig iptables off

service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf/etc/ntp.conf.bak

vi /etc/selinux/config SELINUX=disabled

3.虚拟机的系统参数调整

涉及以下几个文件:

/etc/security/limit.conf 修改针对用户的进程和文件数量的限制,在文件结尾添加即可,如下:

oracle hard noproc 65536
oracle soft noprof 65536
oracle hard nofile 65536
oracle soft nofile 65536
grid hard noproc 65536
grid soft noprof 65536
grid hard nofile 65536
grid soft nofile 6553
6

注:如果是redhat6版本的,还需要再修改一个文件/etc/security/limits.d/90-nproc.conf

*          soft    nproc    65536

/etc/sysctl.conf 该文件主要是修改系统的关键参数,包括网络和内存资源等。

fs.file-max = 6815744 
kernel.shmall = 2097152  
kernel.shmmax = 1054504960 
kernel.shmmni = 4096  
# semaphores: semmsl, semmns, semopm, semmni 
kernel.sem = 250 32000 100 128  
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_default=262144 
net.core.wmem_max=1048586

4.用户以及目录设置:(oracle用户主要是用于管理数据库的,grid主要是管理asm和crs的)

groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
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
echo oracle| passwd oracle --stdin
echo grid| passwd grid --stdin

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

5.修改oracle和grid用户的环境变量。

grip(两台机器上的ORACLE_SID必须得不一样,rac1是ASM1,那么rac2就得是ASM2)
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
oracle
ORACLE_SID=slim1; export ORACLE_SID
ORACLE_UNQNAME=slim; 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_HOME/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
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022

6.主机hosts文件修改

以下是我主机上的设置。

127.0.0.1               localhost.localdomain localhost
192.168.56.101 rac1
192.168.56.102 rac2
192.168.117.101 rac1-pri
192.168.117.102 rac2-pri
192.168.56.201 rac1-vip
192.168.56.202 rac2-vip
192.168.56.200 rac-scan

7.增加共享磁盘

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename Ocrvoting01.vdi  -size 1024 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename Ocrvoting02.vdi  -size 1024 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename Ocrvoting03.vdi  -size 1024 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename arch01.vdi  -size 5120 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename arch02.vdi  -size 5120 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename data01.vdi  -size 5120 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename data02.vdi  -size 5120 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename data03.vdi  -size 5120 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename data04.vdi  -size 5120 -format VDI -variant Fixed
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd -filename data05.vdi  -size 5120 -format VDI -variant Fixed

这个步骤会比较长,然后增加完之后,将共享磁盘挂载到rac1上,此时需要保证rac1是关机状态。

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 2 --device 0 --type hdd --medium arch01.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 3 --device 0 --type hdd --medium arch02.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 4 --device 0 --type hdd --medium Ocrvoting01.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 5 --device 0 --type hdd --medium Ocrvoting02.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 6 --device 0 --type hdd --medium Ocrvoting03.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 7 --device 0 --type hdd --medium data01.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 8 --device 0 --type hdd --medium data02.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 9 --device 0 --type hdd --medium data03.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 10 --device 0 --type hdd --medium data04.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac1 --storagectl SATA --port 11 --device 0 --type hdd --medium data05.vdi --mtype shareable

设置磁盘共享:

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd Ocrvoting01.vdi --type shareable

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd Ocrvoting02.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd Ocrvoting03.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd arch01.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd arch02.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data01.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data02.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data03.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data04.vdi --type shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd data05.vdi --type shareable

启动rac1节点,进行fdisk操作!

进入系统后,进入/dev目录下,会看到有很多sd开头的文件,sda是操作系统的,不需要关注。

sda  sda1  sda2  sdb  sdc  sdd  sde  sdf  sdg  sdh  sdi  sdj  sdk  

然后分别对新建的每个盘进行格式化,fdisk sdb(按照提示格式化即可)

格式化完成后,在目录下会生成几个文件:

sda  sda1  sda2  sdb  sdb1  sdc  sdc1  sdd  sdd1  sde  sde1  sdf  sdf1  sdg  sdg1  sdh  sdh1  sdi  sdi1  sdj  sdj1  sdk  sdk1

后缀1就代表已经格式好的磁盘。

格式化ok后,添加udev规则。/etc/udev/rule.d/99-oracle-asmdevices.rules 

KERNEL=="sdb1",NAME="arch01" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc1",NAME="arch02" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdd1",NAME="ocrvoting1" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sde1",NAME="ocrvoting2" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdf1",NAME="ocrvoting3" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdg1",NAME="data01" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdh1",NAME="data02" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdi1",NAME="data03" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdj1",NAME="data04" OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdk1",NAME="data05" OWNER="grid", GROUP="asmadmin", MODE="0660"

然后start_udev将刚才添加的udev策略生效。

8.将刚做好的虚拟机1做好后,停止,然后通过VBoxManage拷贝成rac2(这个步骤比较关键)

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd "D:\system\rac\rac1\rac1.vdi" "D:\system\rac\rac2\rac2.vdi"

创建rac2节点,用Virtualbox创建的时候,选择已有的虚拟文件,选择刚创建好的文件,然后再启动。

注意:创建的时候需要选择两块网卡。

添加rac2节点的共享磁盘。

"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 2 --device 0 --type hdd --medium arch01.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 3 --device 0 --type hdd --medium arch02.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 4 --device 0 --type hdd --medium Ocrvoting01.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 5 --device 0 --type hdd --medium Ocrvoting02.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 6 --device 0 --type hdd --medium Ocrvoting03.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 7 --device 0 --type hdd --medium data01.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 8 --device 0 --type hdd --medium data02.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 9 --device 0 --type hdd --medium data03.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 10 --device 0 --type hdd --medium data04.vdi --mtype shareable
"D:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac2 --storagectl SATA --port 11 --device 0 --type hdd --medium data05.vdi --mtype shareable

启动之后需要注意修改以下几个地方:

/etc/sysconfig/network   host名称修改成rac2

/etc/sysconfig/network-scripts/ifcfg-eth0 

/etc/sysconfig/network-scripts/ifcfg-eth1

oracle和grid用户的环境变量里的ORACLE_SID

注:如果是redhat linux5版本,就需要把ifcfg-eth0.bak 里的mac地址修改成/ifcfg-eth0里的mac地址,然后把ifcfg-eth0.bak里的ip地址修改下,然后再cp ifcfg-eth0.bak ifcfg-eth0,ifcfg-eth1的操作同样这样做一遍。然后重启网络。ping各自的网关,看是否可以ping通。

如果是redhat linux6版本,则需要把/etc/udev/rule.d里的70-persistent-net.rules删除掉,然后再重启主机,系统会重新生成该文件,把该文件里的mac地址和网卡名都修改好,然后再修改/etc/sysconfig/network-script/ifcfg-eth0和/etc/sysconfig/network-script/ifcfg-eth1对应的mac和ip地址,再重启网络。

重启rac2节点,重启后,看两个虚拟机是否可以ping通。主机名是否都正确。


9.grid安装:

这里我是操作david的安装手册进行的。http://blog.csdn.net/tianlesoftware

grid的安装过程中,需要有以下几个地方注意:

1)在SSH配置的时候,需要增加RAC2节点的配置。名称就填写hosts文件中标注的rac2和rac2-vip即可

2)配置信任关系。也是在刚才的那一步,需要在SSH Connectivity里输入正确的密码,点setup

3)使用ASM配置的时候,不要都选,只选择OCR的那几个裸设备创建一个OCR的ASM组即可

4)ORACLE_BASE的地址选择oracle用户的BASE地址/u01/app/oracle

然后按照步骤安装,执行root.sh文件即可,root.sh需要用root用户执行。执行完有些目录会变成成root属主,这时候需要修改下:

chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01

安装完成后,通过crscrl stat res -t查看节点的状态即可。

如果是在redhat linux6上安装,会碰到一个bug,这个建议参考david的方法修改

提示运行root.sh,11.2.0.1 版有个bug,解决方法如下:
Oracle 11g RAC ohasd failed to start at /u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443 解决方法
http://blog.csdn.net/tianlesoftware/article/details/7697366

其实就是有个文件需要清空,我当时不知道他啥时候会产生,就写了个死循环的脚本,然shell自己去处理了,如下:

#!/bin/sh
while [ 1 -eq 1 ]
do
if [ `ls /var/tmp/.oracle/npohasd | wc -l` -gt 0 ]
then
        /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
        sleep 3600
fi
sleep 5
done

10.database安装

用oracle 用户,连上节点1,进入Oracle 的安装目录,安装Oracle 软件,
注意这里只安装软件。
1. Install databae software only
2. Select all RAC nodes
3. 设置 SSH

4. 选择语言
5. 选择 Enterprise Edition
6. 选择 Oracle 安装目录

7. 选择用户组
8. 开始安装
9. 执行 root
10.执行脚本,执行完安装结束。

11.asm组管理

在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安装OCR 和Voting Disk。 在我们继续安装Oracle 数据库之前,我们需要创建一个DATA 和ARCH 的ASM 磁盘组来存放这些文件。
用grid 用户运行asmca(ASM Configuration Assistant)命令就可以弹出创建窗口。
在窗口中创建完DATA 和 ARCH组后,退出窗口即可。

12.数据库创建

用oracle用户执行dbca创建数据库,步骤如下:

1. 选择 RAC 集群

2. Create a database
3. 选择类型:事务还是数据仓库
4. 选择 Configuration Type:Admin-Managed
5. 设置实例名: slim
6. 选择所有节点
7. 配置 Enterprise Manager 和 Automatic Maintenance Tasks
8. 设置用户密码
9. 设置数据文件存放位置: DATA
10.设置归档
11.设置内存,字符集等
12.开始安装

注:

oracle用户dbca的时候找不到磁盘组,用grid用户,执行cd $ORACLE_HOME/bin;chmod +s oracle

至此,安装结束,安装完之后即可体验。

强烈建议大家不要使用redhat linux6版本安装11.2.0.1的rac,那个过程实在是在折磨人了。附上几个当时处理的问题:

1.重启主机,crs启动不起来,报错,执行/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

2.root.sh执行不成功,重新执行前需进行的操作,清除记录

/u01/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig  -verbose -force

3.grid安装不成功,卸载grid

rm –rf /etc/oracle/*
rm -rf /etc/init.d/init.cssd
rm -rf /etc/init.d/init.crs
rm -rf /etc/init.d/init.crsd
rm -rf /etc/init.d/init.evmd
rm -rf /etc/rc2.d/K96init.crs
rm -rf /etc/rc2.d/S96init.crs
rm -rf /etc/rc3.d/K96init.crs
rm -rf /etc/rc3.d/S96init.crs
rm -rf /etc/rc5.d/K96init.crs
rm -rf /etc/rc5.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -rf /etc/inittab.crs
rm -rf /tmp/.oracle/*
cd /etc/oracle
rm -rf ocr.*
rm -rf /tmp/CVU*
rm -rf /u01/app/oracle
rm -rf /var/opt/oracle
rm -rf /usr/local/bin/dbhome
rm -rf /usr/local/bin/oraenv
rm -rf /usr/local/bin/coraenv
rm -rf /u01/app
mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01/
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
dd if=/dev/zero of=/dev/ocrvoting1 bs=1M count=256
dd if=/dev/zero of=/dev/ocrvoting2 bs=1M count=256
dd if=/dev/zero of=/dev/ocrvoting3 bs=1M count=256
dd if=/dev/zero of=/dev/arch01 bs=1M count=256
dd if=/dev/zero of=/dev/arch02 bs=1M count=256
dd if=/dev/zero of=/dev/data01 bs=1M count=256
dd if=/dev/zero of=/dev/data02 bs=1M count=256
dd if=/dev/zero of=/dev/data03 bs=1M count=256
dd if=/dev/zero of=/dev/data04 bs=1M count=256
dd if=/dev/zero of=/dev/data05 bs=1M count=256

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值