Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1024476
  • 博文数量: 171
  • 博客积分: 55
  • 博客等级: 民兵
  • 技术积分: 2077
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 10:11
个人简介

pugna

文章分类

全部博文(171)

文章存档

2021年(4)

2020年(1)

2019年(4)

2018年(5)

2017年(7)

2016年(9)

2015年(36)

2014年(8)

2013年(96)

2012年(1)

分类: Oracle

2013-04-06 05:56:57

Oracle RAC 11g R2安装步骤

 

前提:

a.至少两台用于安装RAC的主机

b.每台主机都至少有2个网卡

c.主机之间各有一个网卡处于同一个私有网段(即通过内网相连,用于RAC的心跳检测及同步,private ip

d.主机之间还 各有一个网卡处于另一个网段(此网段不要与之前的private ip的网段相同,一般用于DBA管理使用,public ip

 

另:对于c,若使用虚拟机安装,只要宿主机是同一台机器即可(宿主机不同的情况没测试过,不清楚是否也可以)。

 

 

 

一、关闭selinux

#vim /etc/selinux/config

***********************************************************

SELINUX=disabled

SELINUXTYPE=targeted

***********************************************************

 

#setenforce 0

 

 

 

二、关闭防火墙

#service iptables stop

 

 

 

三、检验安装条件(各节点)

每个节点的内存至少1.5Gswap至少2G,磁盘空间4.5G/tmp 大小至少1G

#grep MemTotal /proc/meminfo

#grep SwapTotal /proc/meminfo

#df -h

#df -h /tmp

 

 

 

四、安装依赖包(各节点)

1.安装依赖包

#yum install -y make sysstat binutils gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers compat-libstdc++ elfutils-libelf elfutils-libelf-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel ksh pdksh

 

#rpm -q make sysstat binutils gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers compat-libstdc++ elfutils-libelf elfutils-libelf-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel ksh pdksh | grep not

 

2.安装cvuqdisk包(各节点)

grid安装目录的rpm文件夹下有cvuqdiskrpm包。

使用root安装此包(如果提示需要使用oinstall组用户执行,就先用grid用户安装,此时系统会提示没有权限,再用root安装即可)。

 

3.安装readline包和rlwrap软件

#yum install -y readline*

 

#tar -xzvf rlwrap-0.37.tar.gz

#cd rlwrap-0.37 && ./configure && make && make install

 

 

 

五、创建用户和组(各节点)

#groupadd -g 1001 oinstall

#groupadd -g 1002 dba

#groupadd -g 1003 oper

#groupadd -g 1004 asmadmin

#groupadd -g 1005 asmoper

#groupadd -g 1006 asmdba

 

grid用户用于安装Oracle Grid Infrastructure

oracle用户用于安装Oracle Database

 

#useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba,asmoper grid

#useradd -u 1002 -g oinstall -G dba,asmadmin,asmdba,asmoper oracle

 

#passwd grid

#passwd oracle

 

注:此步中各个节点的用户和组的id一定要相同。

 

 

 

六、修改limits.conf文件(各节点)

限制gridoracle用户对系统资源的使用

#vim /etc/security/limits.conf

***********************************************************

oracle    soft nproc     2047

oracle    hard       nproc     16384

oracle    soft nofile     1024

oracle    hard       nofile     65536

oracle    soft stack      10240

 

grid soft nproc     2047

grid hard       nproc     16384

grid soft nofile     1024

grid hard       nofile     65536

grid soft stack      10240

***********************************************************

 

 

 

七、修改login文件(各节点)

要使limits.conf文件的配置生效,必须要将pam_limits.so文件加入到启动文件中

#vim /etc/pam.d/login

***********************************************************

session    required    /lib64/security/pam_limits.so #64为系统位数

session    required    pam_limits.so

***********************************************************

 

 

 

八、修改profile文件(各节点)

功能和步骤七和八相同,都是为了限制gridoracle用户对系统资源的使用

#vim /etc/profile

***********************************************************

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

 if [ $SHELL = "/bin/ksh" ]; then

  ulimit -p 16384

  ulimit -n 65536

 else

  ulimit -u 16384 -n 65536

 fi

fi

***********************************************************

 

 

 

九、修改sysctl.conf文件(各节点)

修改内核参数配置文件

#vim /etc/sysctl.conf

***********************************************************

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1176379392

kernel.shmmni = 4096

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

***********************************************************

 

让参数生效

#sysctl -p

 

 

 

十、配置hosts文件(各节点)

#vim /etc/hosts

*******************************************************************************

# Public IP

192.168.1.201    racnode1

192.168.1.202    racnode2

 

# Virtual IP

192.168.1.211    racvip1

192.168.1.212    racvip2

 

# Private IP

10.0.0.211    racpriv1

10.0.0.212    racpriv2

 

# Scan IP

192.168.1.231    racscan

 

127.0.0.1      racnode1 localhost.localdomain localhost

::1          localhost6.localdomain6 localhost6

*******************************************************************************

 

配置完成之后,各个节点之间应该可以相互pingPublic IPVirtual IP对应的主机名和IP

 

注:主机名不能含有"."。另外,127.0.0.1对应的主机名在各个节点上是不一样,分别是各节点的主机名。

 

 

 

十一、配置DNSDNS服务器)

DNS中配置SCAN域名对应的SCAN IP的解析。

若不设置此步,则不可以使用SCAN来实现负载均衡的功能(可以通过在客户端配置VIP来实现负载均衡),并不会影响其它功能的使用。

 

 

 

十二、配置NTP服务(各节点)

保证各节点都启用NTP服务,或都不启用NTP服务。

若启用,保证各节点与外网连通,且使用同一个NTP地址。

若不启用,后面检验条件时会提示不通过,可以直接忽略,因为Oracle会自动使用ctss服务来同步各节点的时间。

 

 

 

十三、手动配置ssh互信

这一步可以直接跳过,在图形安装过程中,可由Oracle自动完成配置。

如要手动配置,参考我的blog

 

 

 

十四、创建目录(各节点)

#mkdir -p /opt/rac/base

#mkdir -p /opt/rac/grid

#mkdir -p /opt/rac/oracle

#mkdir -p /opt/rac/oracle/11.2/dbhome_1

#chown -R oracle:oinstall /opt/rac

#chmod -R 775 /opt/rac

 

注:/opt/rac的属主和属组只能是oracle:oinstall

 

 

 

十五、配置grid用户和Oracle用户的环境变量(各节点)

1.grid用户(这是节点1的配置,不同节点的ORACLE_SID不同)

#vim /home/grid/.bash_profile

***********************************************************

umask 022

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_TERM=xterm

export ORACLE_SID=+ASM1

export ORACLE_BASE=/opt/rac/base

export ORACLE_HOME=/opt/rac/grid

 

export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

 

export LD_LIBRARY_PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

 

export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

 

export DISPLAY=192.168.1.32:0.0

 

export PATH

 

alias asmcmd='rlwrap asmcmd'

alias lsnrctl='rlwrap lsnrctl'

***********************************************************

 

 

 

2.Oracle用户(这是节点1的配置,不同节点的ORACLE_SID不同)

#vim /home/oracle/.bash_profile

***********************************************************

umask 022

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_TERM=xterm

export ORACLE_SID=racdb1

export ORACLE_BASE=/opt/rac/oracle

export ORACLE_HOME=$ORACLE_BASE/11.2/dbhome_1

 

export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

 

export LD_LIBRARY_PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

 

export DISPLAY=192.168.1.32:0.0

 

export PATH

 

alias sqlplus='rlwrap sqlplus'

alias lsnrctl='rlwrap lsnrctl'

alias rman='rlwrap rman'

***********************************************************

 

 

 

十六、使用udev来配置共享存储(各节点)

#ls -l /dev/sd*

 

#echo "options=--whitelisted --replace-whitespace"  >> /etc/scsi_id.config

 

#touch /etc/udev/rules.d/99-oracle-asmdevices.rules

 

将以下脚本输出的内容输入到/etc/udev/rules.d/99-oracle-asmdevices.rules文件中

***********************************************************

for i in b c d e f g h i ;

do

echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""     

done

***********************************************************

 

#vim /etc/udev/rules.d/99-oracle-asmdevices.rules

 

#start_udev

 

#ls -l /dev/sd*

#ls -l /dev/asm*

 

#scp /etc/udev/rules.d/99-oracle-asmdevices.rules racnode2:/etc/udev/rules.d/99-oracle-asmdevices.rules

 

 

 

十七、使用grid用户调用图形界面进行安装Oracle Grid Infrastructure

$cd /opt/file/grid

 

使用 CVU 验证是否满足 Oracle 集群件要求

$./runcluvfy.sh stage -pre crsinst -n racnode1,racnode2 -fixup -verbose

 

使用 CVU 验证硬件和操作系统设置

$./runcluvfy.sh stage -post hwos -n racnode1,racnode2 -verbose

 

$export LANG=en.UTF8

$./runInstaller

 

 

 

十八、检验cluster安装是否成功

1.检查集群中的结点状态

2.检查SCAN是否产生,是否能ping

3.检查所有服务的状态

4.检查ASM实例的状态

 

 

 

十九、使用oracle用户调用图形界面进行安装Oracle Database

$cd /opt/file/database

$export LANG=en.UTF8

$./runInstaller

 

 

 

二十、使用oracle用户调用dbca创建数据库

$export LANG=en.UTF8

$dbca

 

 

 

二十一、查看整个集群状态

#crs_stat -t

Name           Type           Target    State     Host       

------------------------------------------------------------

ora....ER.lsnr ora....er.type ONLINE    ONLINE    racnode1   

ora....N1.lsnr ora....er.type ONLINE    ONLINE    racnode1   

ora....KGRP.dg ora....up.type ONLINE    ONLINE    racnode1   

ora.asm        ora.asm.type   ONLINE    ONLINE    racnode1   

ora.cvu        ora.cvu.type   ONLINE    ONLINE    racnode1   

ora.gsd        ora.gsd.type   ONLINE    OFFLINE              

ora....network ora....rk.type ONLINE    ONLINE    racnode1   

ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    racnode1   

ora.ons        ora.ons.type   ONLINE    ONLINE    racnode1   

ora.racdb.db   ora....se.type ONLINE    ONLINE    racnode1   

ora....SM1.asm application    ONLINE    ONLINE    racnode1   

ora....E1.lsnr application    ONLINE    ONLINE    racnode1   

ora....de1.gsd application    ONLINE    OFFLINE              

ora....de1.ons application    ONLINE    ONLINE    racnode1   

ora....de1.vip ora....t1.type ONLINE    ONLINE    racnode1   

ora....SM2.asm application    ONLINE    ONLINE    racnode2   

ora....E2.lsnr application    ONLINE    ONLINE    racnode2   

ora....de2.gsd application    ONLINE    OFFLINE              

ora....de2.ons application    ONLINE    ONLINE    racnode2   

ora....de2.vip ora....t1.type ONLINE    ONLINE    racnode2   

ora.scan1.vip  ora....ip.type ONLINE    ONLINE    racnode1

 

 

 

 

 

其它注意事项:

1.votediskocr创建ASM时,如果选择normal模式,则需要3ASM disk

2.安装Oracle Grid InfrastructureORACLE_HOME目录与ORACLE_BASE目录不能存在从属关系;而安装Oracle DatabaseORACLE_HOME又必须在ORACLE_BASE目录下。

 

 

 

 

 

部分错误整理:

 

错误1

在第一个节点执行root.sh时报错:

error while loading shared libraries:libcap.so.1:cannot open shared object file: No such file or directory

 

解决办法:

确定libcap包已经安装

rpm -q libcap

find / -name '*libcap*' -print

创建链接

ln -s /lib64/libcap.so.2.16 /lib64/libcap.so.1

 

删掉root.sh的配置:

/opt/rac/grid/crs/install/roothas.pl -deconfig -verbose -force

 

再次运行root.sh即可。

 

 

 

错误2

这个错误会在Redhat6.x/CentOS6.x上安装Oracle11gR2 11.2.0.1 RAC时出现。

在第一个节点执行root.sh时报错(各个节点都会出现这个问题):

Adding daemon to inittab

CRS-4124: Oracle High Availability Services startup failed.

CRS-4000: Command Start failed, or completed with errors.

 

解决办法:(临时)

在生成了文件/var/tmp/.oracle/npohasd文件后,使用root立即执行以下命令命令:

/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

 

如果懒得看npohasd有没有生成,就用下面的命令让它自动完成

watch -n 0.5 /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

 

 

 

错误3

通过dbca方式, 在基于ASM存储建库时, 报以下错误:

ORA-12547: TNS:lost contact

 

原因:

In environment where listener home (including SCAN listener which resides in Grid Infrastructure/ASM home) and database home are owned by different OS user, ORA-12537 could happen when connecting through listener, when creating database through DBCA, or when installing database software and creating a database in runInstaller. Job Role Separation is a typical example as SCAN and local grid home listener is owned differently than database.

 

解决办法:

检查grid安装的SCAN listener目录和Oracle Database目录的owner是不是一样的。如果不一样,改成一样或将目录设置为770权限。

 

 

 

错误4

在安装Oracle Grid Infrastructure的最后一步Oracle Cluster Verification Utility时,报以下错误:

INFO: Checking Single Client Access Name (SCAN)...

INFO: Checking name resolution setup for "racscan"...

INFO: ERROR:

INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "racscan"

INFO: ERROR:

INFO: PRVF-4657 : Name resolution setup check for "racscan" (IP address: 192.168.1.231) failed

INFO: ERROR:

INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "racscan"

INFO: Verification of SCAN VIP and Listener setup failed

 

原因:

metalink,文档ID887471.1

这是因为安装程序通过DNS无法解析出SCAN的地址。如果在DNS服务器中配置了SCAN的信息,排查DNS。如果是在/etc/hosts中配置的DNS,则在各节点ping SCAN,如果能ping通,这个错误就可以忽略。



                                                                                                            2013-04-06 05:53

阅读(3048) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~