注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mmicky 的博客

追逐刹那的惊艳

 
 
 

日志

 
 

Oracle RAC安装手记  

2013-04-30 14:39:50|  分类: ORACLE |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1:安装Oracle Enterprise Linux 6.3虚拟机(4G内存/4GSWAP/2个网卡/bridge/host-only),物理机最好有16G内存,即使8G内存,安装到node2可能会卡死。
2:设置linux root用户的外观(取消屏保和电源睡眠)
3:退出linux,编辑虚拟机属性,增加存放安装软件的LinuxSoft盘(SCSI0:1)和安装ASM的shareDisk(SCSI1:0)
4:退出VMware,修改虚拟机配置文件,增加以下参数,注意已经存在的参数就不必增加了。
disk.locking="FALSE"    
diskLib.dataCacheMaxSize = "0"
disk.EnableUUID = "TRUE"  
scsi1.present = "TRUE"
scsi1.sharedBus = "Virtual"
scsi1.virtualDev = "lsilogic" 
同时记得修改host-only的网络属性,与Private网卡IP地址处于同一网段。
 
5:配置 UDEV
[root@node1 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc
[root@node1 ~]# fdisk /dev/sdc
将/dev/sdc分成4个盘,然后获取硬盘UUID:
[root@node1 ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
36000c2906cfc93097fcd8d1dd4bbb6bd

编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行:
[root@node1 ~]# vi /etc/scsi_id.config
options=--whitelisted --replace-whitespace

编写udev rules文件
重要:每个配置文件一行为一条规则,并且,(逗号)与下一个关键词之间有空格。
[root@node1 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sdc1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2906cfc93097fcd8d1dd4bbb6bd", NAME="asm1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc2", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2906cfc93097fcd8d1dd4bbb6bd", NAME="asm2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc3", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2906cfc93097fcd8d1dd4bbb6bd", NAME="asm3", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc4", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2906cfc93097fcd8d1dd4bbb6bd", NAME="asm4", OWNER="grid", GROUP="asmadmin", MODE="0660"

重启 udev 设备,其他节点不需要再进行分区,但需要partprobe来获取磁盘的分区信息
[root@node1 ~]# /sbin/partprobe /dev/sdc1
[root@node1 ~]# /sbin/partprobe /dev/sdc2
[root@node1 ~]# /sbin/partprobe /dev/sdc3
[root@node1 ~]# /sbin/partprobe /dev/sdc4
[root@node1 ~]# /sbin/udevadm control --reload-rules
[root@node1 ~]# /sbin/start_udev

检查 udev 设备
[root@node1 ~]# ls -lsa /dev/asm*
或用udevadm进行测试,注意udevadm命令不接受/dev/sdb这样的挂载设备名,必须是使用/sys/block/sdb这样的原始设备名。
[root@node1 ~]# udevadm test /sys/block/sdc
[root@node1 ~]# udevadm info --query=all --path=/sys/block/sdc
[root@node1 ~]# udevadm info --query=all --name=asm1

6:杂项准备工作
[root@node1 ~]#vi /etc/sysconfig/selinux SELINUX=disabled

***************************************************************
停掉防火墙即可:
[root@node1 ~]# service iptables save
[root@node1 ~]# service iptables stop
[root@node1 ~]# chkconfig iptables off
[root@node1 ~]# service ip6tables save
[root@node1 ~]# service ip6tables stop
[root@node1 ~]# chkconfig ip6tables off
***************************************************************

***************************************************************
oracle11gR2 RAC中使用Cluster Time Synchronization Service(CTSS)同步各节点的时间,当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以观察者模式 启动集群时间同步服务,Oracle Clusterware 不会在集群中进行活动的时间同步。
使用root用户在node1,node2中执行以下操作,关闭ntp服务,mv配置文件
[root@node1 ~]# service ntpd stop 
Shutting down ntpd:                                        [FAILED] 
[root@node1 ~]# chkconfig ntpd off 
[root@node1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original 
[root@node1 ~]# rm -rf /var/run/ntpd.pid 
*****************************************************************

7:检查所需的软件包
oracle所需的软件包详见《Oracle Quick Installation Guide for Linux x86》,比如Oracle Linux5.4需要以下软件包:
binutils-2.20.51.0.2-5.11.el6.i686
compat-libcap1-1.10-1.i686
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6.i686
gcc-c++-4.4.4-13.el6.i686
glibc-2.12-1.7.el6.i686
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6.i686
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6.i686
sysstat-9.0.4-11.el6.i686
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6.i686 or later
elfutils-libelf-devel-0.152-1.el6.x86_64.rpm
elfutils-libelf-0.152-1.el6.x86_64.rpm

系统中需要安装版本不低于以上的软件包,若没有安装则到安装盘下找到相应的软件包进行安装。
    a:查看是否已经安装某个软件包,可以用类似命令: rpm -qa |grep compat
    b:查看所有软件包是否已经安装,可以用类似命令: rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libcap1  compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel  libaio libaio-devel make sysstat unixODBC unixODBC-devel elfutils-libelf-devel
    c:在安装盘Packages目录中未安装的软件包: find /media/{CDNAME}/Packages -name "compat-lib*"
    d:安装未安装的软件包: rpm -ihv compat-libcap1-1.10-1.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm ksh-20100621-16.el6.x86_64.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm unixODBC-2.2.14-11.el6.x86_64.rpm unixODBC-devel-2.2.14-11.el6.x86_64.rpm elfutils-libelf-devel-0.152-1.el6.x86_64.rpm

8:创建用户组和用户
[root@node1 ~]# groupadd -g 1000 oinstall
[root@node1 ~]# groupadd -g 1100 asmadmin
[root@node1 ~]# groupadd -g 1200 dba
[root@node1 ~]# groupadd -g 1300 asmdba
[root@node1 ~]# groupadd -g 1301 asmoper
[root@node1 ~]# useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
[root@node1 ~]# useradd -u 1101 -g oinstall -G dba,asmdba oracle
[root@node1 ~]# mkdir -p /app/grid
[root@node1 ~]# mkdir -p /app/11.2.0/grid
[root@node1 ~]# chown -R grid:oinstall /app
[root@node1 ~]# mkdir -p /app/oracle
[root@node1 ~]# mkdir -p /app/oracle/product/11.2.0/db_1
[root@node1 ~]# chown -R oracle:oinstall /app/oracle
[root@node1 ~]# chmod -R 775 /app
[root@node1 ~]# passwd oracle
[root@node1 ~]# passwd grid

9:修改内核参数 /etc/sysctl.conf,要启用运行:# /sbin/sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1578352640
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 = 1048576

10:修改用户shell限制 /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

11:为oracle用户修改环境变量,用命令使设置生效:source /home/oracle/.bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=node1.waihai; export ORACLE_HOSTNAME
ORACLE_BASE=/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=test1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

12:为grid用户修改环境变量,用命令使设置生效:source /home/grid/.bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=node1.waihai; export ORACLE_HOSTNAME
ORACLE_BASE=/app/grid; export ORACLE_BASE
ORACLE_HOME=/app/11.2.0/grid; export ORACLE_HOME
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

13:在" /etc/pam.d/login"文件中增加或修改如下参数:
session    required     pam_limits.so

14:修改node1的/etc/hosts
#eth0 Public
192.168.100.91 node1.waihai node1
192.168.100.92 node2.waihai node2
#eth1 Private 该地址最好是在hosts文件里解析,及时DNS服务器down,RAC仍可正常运行。
10.0.0.91 node1-priv.waihai node1-priv
10.0.0.92 node2-priv.waihai node2-priv
#Virtual
192.168.100.81 node1-vip.waihai node1-vip
192.168.100.82 node2-vip.waihai node2-vip
#cluster-scan,如果是采用DNS,将此项注释。
#在hosts设置,运行runcluvfy.sh预装检测可以pass,但实际安装Infrastructure最后验证时却会报错;
#采用DNS,运行runcluvfy.sh预装检测可能unpass,实际安装Infrastructure缺会一路pass。
192.168.100.201 node-cluster-scan.waihai node-cluster-scan

15:关闭 node1 虚拟机,在主机上复制虚拟机所在的目录到 node2 ,修改配置文件中
displayName = "node2"
然后添加到虚拟机,启动虚拟机node2,修改 node2 虚拟机的网卡、主机名、oracle 和 grid 用户.bash_profile 文件中的ORACLE_SID 以及 ORACLE_HOSTNAME 参数
网卡修改/etc/udev/rules.d/70-persistent-net.rules 中相关信息

16:安装数据库前建立节点间的SSH信任关系
节点1:
[oracle@node1 ~]$ mkdir .ssh
[oracle@node1 ~]$ chmod 700 .ssh
[oracle@node1 ~]$ /usr/bin/ssh-keygen -t rsa
三个回车后在/home/oracle/.ssh 下生成文件id_rsa 和 id_rsa.pub

节点2:
[oracle@node2 ~]$ mkdir .ssh
[oracle@node2 ~]$ chmod 700 .ssh
[oracle@node2 ~]$ /usr/bin/ssh-keygen -t rsa
三个回车后在/home/oracle/.ssh 下生成文件id_rsa 和 id_rsa.pub

整合公钥文件并复制到其他节点
[oracle@node1 ~]$ cd .ssh
[oracle@node1 .ssh]$ /usr/bin/ssh node1 cat /home/oracle/.ssh/id_rsa.pub>>authorized_keys
[oracle@node1 .ssh]$ /usr/bin/ssh node2 cat /home/oracle/.ssh/id_rsa.pub>>authorized_keys
[oracle@node1 .ssh]$ chmod 600 authorized_keys
[oracle@node1 .ssh]$ /usr/bin/scp authorized_keys node2:/home/oracle/.ssh/

节点测试,不需要密码为互相信任
[oracle@node1 .ssh]$ ssh node1 date
[oracle@node1 .ssh]$ ssh node2 date
[oracle@node2 .ssh]$ ssh node1 date
[oracle@node2 .ssh]$ ssh node2 date

17:node1 中打开命令行,用 root 用户输入命令 xhost +。
[root@node1 ~]# xhost +
切换到 grid 用户和grid安装盘目录,运行
[grid@node1 grid]$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose
[grid@node1 grid]$ export LANG=en_US
[grid@node1 grid]$ ./runInstaller

18:安装中检查会有cvuqdisk-1.0.9-1 警告,不需要理会,在运行root.sh的时候会安装。
运行script时需要一个一个节点运行,运行脚本的时候如果内存不够很容易卡死或重新启动。
至于Infrastructure和database的安装就比较轻松了。

19:推荐文档
  评论这张
 
阅读(217)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017