Installing Oracle11g R2 RAC on RedHat Linux AS 5.8
1 系统运行环境
2 安装前准备
3 安装oracle grid
4 创建ASM磁盘
5 安装ORACLE软件
6 创建ORACLE数据库
7 验证
产品名称 |
产品描述 |
数量 |
服务器节点 |
Cpu: Intel(R) Xeon(R) CPU E7- 4830 @ 2.13GHz memory:8G Core:4 Swap:6G |
2 |
共享存储 |
一块214G scsi硬盘 |
1 |
分类 |
项目 |
说明 |
备注 |
主机 |
主机名 |
S01,s02 |
|
操作系统 |
Red hat as 5 |
5.8 |
|
内核 |
2.6.18-308.el5 |
x86_64 |
|
数据库
|
数据库版本 |
Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 |
|
运行模式 |
RAC |
|
|
数据库名 |
test |
|
|
实例名 |
Test1,test2 |
|
|
ASM |
+DATA,+FLASH,+OCR_VOTE |
|
存储 |
||||
组件 |
文件系统 |
卷大小 |
ASM卷组名 |
ASM冗余 |
OCR-VOTE |
ASM |
3G |
+OCR_VOTE |
NOMAL |
数据库文件 |
ASM |
110G |
+DATA |
EXTERNAL |
恢复区 |
ASM |
110G |
+FLASH |
EXTERNAL |
网络配置 |
|||||
节点 |
公共IP |
私有IP |
虚拟IP |
scan名称 |
SCAN IP |
S01 |
172.31.2.36 |
192.168.0.2 |
172.31.2.251 |
s-scan |
172.31.2.253 |
S02 |
172.31.2.62 |
192.168.0.3 |
172.31.2.63 |
检查内存:内存>=1G,
[root@S01]# grep MemTotal /proc/meminfo
检查swap:交换空间swap为4G(内存为1~2G时,swap为起1.5倍,如果大于2G,swap等于内存大小
[root@S01]#grep SwapTotal /proc/meminfo
检查/tmp:/tmp> 500M 最好不少于1G
[root@S01]# df -k /tmp
检查系统空间:系统磁盘空间还有不少于6G空间
[root@S01]#df –h
检查系统内核
[root@S01]#uname –r
检查系统版本
[root@S01]#cat /proc/version
检查软件包
[root@S01]#rpm –aq|grep rpm
网络规划
PUBLIK IP |
节点1:172.31.2.36 s01 节点2:172.31.2.62 s02 |
PRIV IP |
节点1:192.168.0.2 s01-priv 节点2: 192.168.0.3 s02-priv |
vip |
节点1:172.31.2.251 s01-vip 节点2: 172.31.2.63 s02vip |
SCAN IP |
172.31.2.253 s-can |
配置两节点的/etc/hosts文件
[root@S01]#Vi /etc/hosts
172.31.2.36 S01
172.31.2.62 S02
172.31.2.251 S01-vip
172.31.2.63 S02-vip
192.168.0.2 S01-priv
192.168.0.3 S02-priv
172.31.2.253 S-scan
[root@S01]#groupadd -g 501 oinstall
[root@S01]#groupadd -g 502 dba
[root@S01]#groupadd -g 503 oper
[root@S01]#groupadd -g 504 asmadmin
[root@S01]#groupadd -g 505 asmoper
[root@S01]#groupadd -g 506 asmdba
[root@S01]#useradd -g oinstall -G dba,asmdba,oper oracle
[root@S01]#useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
[root@S01]#passwd oracle
[root@S01]#passwd grid
注:两节点分别完成以前操作,并要ID号保持一致
[root@S01]#mkdir -p /app/oraInventory
[root@S01]#chown -R grid:oinstall /app/oraInventory
[root@S01]#chmod -R 775 /app/oraInventory
[root@S01]#mkdir -p /app/11.2.0/grid
[root@S01]#chown -R grid:oinstall /app/11.2.0/grid
[root@S01]#chmod -R 775 /app/grid
[root@S01]#mkdir -p /app/oracle
[root@S01]#chown -R oracle:oinstall /app/oracle
[root@S01]#chmod -R 775 /app/oracle
[root@S01]#mkdir -p /app/oracle/product/11.2.0/db_1
[root@S01]#chown -R oracle:oinstall /app/oracle/product/11.2.0/db_1
[root@S01]#chmod -R 775 /app/oracle/product/11.2.0/db_1
[root@S01]#su – oracle
[grid@S01]#vi .bash_profile
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=S01;
export ORACLE_BASE=/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11g/db_1;
export ORACLE_UNQNAME=test;
export ORACLE_SID=test1;
export ORACLE_TERM=xterm;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
注:节点2操作类同
[root@S01]#su - grid
[grid@S01]#vi .bash_profile
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=S02;
export ORACLE_SID=+ASM2;
export ORACLE_BASE=/app/grid;
export ORACLE_HOME=/app/11.2.0/grid;
export NLS_DATE_FORMAT="yy-mm-dd HH24:MI:SS";
export PATH=$ORACLE_HOME/bin:$PATH;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
注:节点2操作类同
两个节点
[grid@S01]su - oracle
[oracle@S01]mkdir ~/.ssh
[oracle@S01]chmod 755 ~/.ssh
[oracle@S01]ssh-keygen -t rsa
[oracle@S01]ssh-keygen -t dsa
在一个节点1 上
[oracle@S01]cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
[oracle@S01]cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@S01]scp ~/.ssh/authorized_keys s02: ~/.ssh/authorized_keys
在第二个节点上
[oracle@S02]cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
[oracle@S02]cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@S02]scp ~/.ssh/authorized_keys s01: ~/.ssh/authorized_keys
验证等效性
[oracle@s01 ~]$ ssh s02 date
[oracle@s01 ~]$ ssh s02-priv date
[oracle@s01 ~]$ ssh s01 date
[oracle@s01 ~]$ ssh s01-priv date
[oracle@s02 ~]$ ssh s02 date
[oracle@s02 ~]$ ssh s01 date
[oracle@s02 ~]$ ssh s01-priv date
[oracle@s02 ~]$ ssh s02-priv date
注:grid用户同oracle用户一样设置
[root@s01 ~]# cat >> /etc/security/limits.conf <
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
[root@s01 ~]# cat >> /etc/pam.d/login <
session required pam_limits.so
EOF
注: 在安装完Oracle之后,可能会发现在本地登录系统时,即使密码输入正确也无法正常登录,这很有可能与/etc/pam.d/login的配置有关。由于很多文档login文件加入的是session required pam_limits.so配置,这就可能导致安装64位的操作系统无法正常登录。按照上面的步骤在login文件中加入/lib64/security/pam_limits.so配置便可以正常登录。
[root@s01 ~]#/etc/init.d/ntpd stop
[root@s01 ~]#chkconfig ntpd off
[root@s01 ~]#mv /etc/ntp.conf /etc/ntp.conf.org
[root@s01 ~]#rm /etc/ntp.conf
[root@s01 ~]#rm /var/run/ntpd.pid
注:也可以使用NTP但不用集群时间同步服务功能
[root@s01 ~]vi /etc/sysconfig/ntpd
OPTIONS=”-x –u ntp:ntp –p /var/run/ntpd.pid”中添加-X标志
[root@s01 ~]/sbin/service ntp restart
[root@s01 ~]vi /etc/sysctl.conf
kernel.shmmax = 4294967295
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
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
fs.aio-max-nr=1048576
生效:
[root@s01 ~]sysctl -p
根据OS版本和内核下载相应的ASM软件,具体依照
http://www.oracle.com/technology/global/cn/tech/linux/asmlib/install.html
[root@S01]#rpm –uvh *.rpm
[root@S02]#rpm –uvh *.rpm
[root@S01]# /etc/init.d/oracleasm configure
[root@S02]# /etc/init.d/oracleasm configure
User:grid
Dba:asmadmin
注不同位置的oracleasm提供不同的功能。
其中/usr/sbin下的oracleasm能够加载(init)/卸载(exit)ASMLib驱动、重命名ASMLib磁盘标签(renamedisk),以及下载最新的ASMLib驱动(update-driver);
/etc/init.d/下面的oracleasm包含日常维护中的启动、停止、重启、启用、禁用和配置的功能
[root@S01]#fdisk /dev/sdb
注 挂载到本地的iSCSI磁盘一定要分区后再使用,而且分区一定要是主分区。如果挂载的单张磁盘大于2TB,使用parted工具创建分区(fdisk不支持在大于2.2TB的磁盘上创建分区)。
[root@S01]#/etc/init.d/oracleasm createdisk OCR_VOTE1 /dev/sdb1
[root@S01]#/etc/init.d/oracleasm createdisk OCR_VOTE2 /dev/sdb2
[root@S01]#/etc/init.d/oracleasm createdisk OCR_VOTE3 /dev/sdb3
[root@S01]#/etc/init.d/oracleasm createdisk DATA /dev/sdb5
[root@S01]#/etc/init.d/oracleasm createdisk FLASH /dev/sdb6
注 确保/dev/oracleasm/disks下文件的所有者都是grid:oinstall
[root@s01 ~]# /etc/init.d/oracleasm listdisks
DATA
FLASH
OCR_VOTE1
OCR_VOTE2
OCR_VOTE3
注:ASM相关日志在/var/log/ oracleasm
[root@s01 ~]su – grid
[grid@s01 ~]cd /app/soft/
[grid@s01 grid]unzip p10404530_112030_Linux-x86-64_3of7.zip
[grid@s01 grid]cd grid
[grid@s01 grid]$ ./runcluvfy.sh stage -pre crsinst -n s01,s02 -verbose
[grid@s01 grid]cd /app/soft/grid
[grid@s01 grid]./runInstaller
1)选择Install and Configure Grid infrastructure a Cluster
2) 选择Advanced Installation,并下一步
3) 选择English,并下一步
4)配置DNS解析,并下一步
5)选择Add,填写其它节点信息,并下一步
6)纠正公网,私网的网络地址,并下一步
7)选择ASM,并下一步
8)创建OCR_VOTE磁盘组,并下一步
9)填写帐户密码,并下一步
10)选择第二项,并下一步
11)核对操作系统组,并下一步
12)填写、核实GRID_BASE,GRID_HOME,并下一步
13)填写INVENTORY,并下一步
14)忽略可以忽略的,也可更正后重新CHECK,当不影响正常安装时,继续安装
15) 下一步
下一步
16)分别在两节点上按序运行以下两脚本,成功后下一步
[root@S01 ~]/app/oraInventory/orainstRoot.sh
[root@S02 ~]/app/oraInventory/orainstRoot.sh
[root@S01 ~]/app/11.2.0/grid/root.sh
[root@S02 ~]/app/11.2.0/grid/root.sh
注:当root.sh脚本有误时,需删除配置后再执行
[root@S01 ~]# /app/11.2.0/grid/crs/install/roothas.pl -delete -force –verbose
17)执行完,点ok。 结束Clusterware的安装
18)验证
[root@S01 ~]crs_stat -t
在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安装OCR 和Voting Disk。 在继续安装Oracle 数据库之前,GIP 需要创建一个DATA 和 FLASH等需要的ASM 磁盘组。在此用,ASM自带的创建工具来完成磁盘配置。
[grid@S01 ~]asmca
创建DATA组
创建FLASH组
[root@s01 ~]su – grid
[oracle@s01 grid]cd /app/soft/database
[oracle@s01 database]$ ./runInstaller
1) 可根据情况填写,并下一步
2)选择只安装软件,并下一步
3)选择rac database install,并下一步
4)语言推荐选择English,并下一步
5)选择企业版,并下一步
6)填写、核实ORACLE_BASE,ORACLE_HOME,并下一步
7)核实OS权利组,并下一步
8)需求检查,核定后下一步
9)下一步
10)下一步
11)两节点上分别执行下列脚本
[root@s01 ~]# /app/oracle/product/11g/db_1/root.sh
[oracle@s01 grid]dbca
1)选择ORACLE RAC DATABASE,并下一步
2)选择create a database,并下一步
3)选择CUSTOME DATABASE,并下一步
4)填写SID,GLOBAL NAME,并下一步
5)选择OEM,并下一步
6)明确ORACLE用户密码,并下一步
7)明确database area,并下一步
8)配置归档信息,并下一步
9)下一步
10)修改内存分,连接数,字符集等信息,并下一步
11)修改数据文件大小,并下一步
12)填写DATABASE NAME,并下一步
13)完成
启动OC4J
[root@s01 grid]# srvctl enable oc4j
[root@s01 grid]# srvctl start oc4j
启动GSD
[root@s01 grid]# srvctl enable nodeapps
[root@s01 grid]# srvctl start nodeapps
[root@s01 grid]crs_stat –t
错误1:
[INS-20802] Oracle Cluster Verification Utility failed
导致这个错误的原因是在/etc/hosts中配置了SCAN的地址,尝试ping这个地址信息,如果可以成功,则这个错误可以忽略