-
安装Oracle RAC
-
打补丁到最新版本
-
完成安装后的调试
三、详细安装过程及说明(参考官方文档)
1.通过SecureCRT或TerminalX建立命令行连接。
2.在每一个节点上添加安装Oracle Grid的用户、组和家目录,并设置权限。
-
# /usr/sbin/groupadd -g 1000 oinstall
-
# /usr/sbin/groupadd -g 1020 asmadmin
-
# /usr/sbin/groupadd -g 1021 asmdba
-
# /usr/sbin/groupadd -g 1022 asmoper
-
# /usr/sbin/groupadd -g 1031 dba
-
# /usr/sbin/groupadd -g 1032 oper
-
# useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
-
# useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle
-
# mkdir -p /u01/app/11.2.0/grid
-
# mkdir -p /u01/app/grid
-
# chown -R grid:oinstall /u01
-
# mkdir /u01/app/oracle
-
# chown oracle:oinstall /u01/app/oracle
-
# chmod -R 775 /u01/
参照官方文档,采用GI与DB分开安装和权限的策略,对于多实例管理有利。
3.检查服务器各个节点的配置是否符合安装要求
I.服务器硬盘空间要求
/tmp目录大小至少:1GB
安装Grid Infrastracture所需空间:6.6GB
安装Oracle Database所需空间:4GB
此外安装过程中分析、收集、跟踪文件所需空间:10GB
建议总共至少30GB,放心!(此处不包含ASM或NFS的空间需求)
II.服务器内存要求
内存大小:至少2.5GB
Swap大小:
当内存为2.5GB-16GB时,Swap需要大于等于系统内存。
当内存大于16GB时,Swap等于16GB即可。
III.检查和调试代码
-
# grep MemTotal /proc/meminfo
-
# grep SwapTotal /proc/meminfo
-
# df -h /tmp
-
# lvcreate -L 2G -n lv_tmp vg_temp
-
# mount /dev/vg_temp/lv_tmp /tmp
-
# df -h /tmp
4.设置操作系统相关参数
这一项在非Oracle Linux的操作系统中算是一项比较繁琐的工作,然而我们这次安装的版本是Oracle Linux 6.4 with
Unbreakable Enterprise Kernel,因此我们有了更简单的办法,就是通过安装Oracle Preinstallation RPM来实现相关操作系统参数的调整和软件包的安装。
这个安装包主要完成以下工作:
-
Automatically downloads and installs any additional RPM packages
needed for installing Oracle Grid Infrastructure and Oracle Database,
and resolves any dependencies
-
Creates an oracle user, and creates the oraInventory (oinstall) and OSDBA (dba) groups for that user
-
As needed, sets sysctl.conf settings, system startup
parameters, and driver parameters to values based on recommendations
from the Oracle Preinstallation RPM program
-
Sets hard and soft resource limits
-
Sets other recommended parameters, depending on your kernel version
此安装包位于操作系统安装盘的Packages目录下。
-
# cd /mnt/install_DVD
-
# cd Packages
-
# ll | grep preinstall
-
-rw-r--r-- 1 root root 15524 Jan 16 2013 oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
-
# rpm -ivh oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
安装包修改/etc/sysctl.conf的内容如下:
其中标有oracle-rdbms-server-11gR2-preinstall字样注释的便是安装包所添加的参数。
-
# cat /etc/sysctl.conf
-
# Kernel sysctl configuration file for Red Hat Linux
-
#
-
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
-
# sysctl.conf(5) for more details.
-
-
# Controls IP packet forwarding
-
net.ipv4.ip_forward = 0
-
-
# Controls source route verification
-
net.ipv4.conf.default.rp_filter = 1
-
-
# Do not accept source routing
-
net.ipv4.conf.default.accept_source_route = 0
-
-
# Controls the System Request debugging functionality of the kernel
-
kernel.sysrq = 0
-
-
# Controls whether core dumps will append the PID to the core filename.
-
# Useful for debugging multi-threaded applications.
-
kernel.core_uses_pid = 1
-
-
# Controls the use of TCP syncookies
-
net.ipv4.tcp_syncookies = 1
-
-
# Disable netfilter on bridges.
-
net.bridge.bridge-nf-call-ip6tables = 0
-
net.bridge.bridge-nf-call-iptables = 0
-
net.bridge.bridge-nf-call-arptables = 0
-
-
# Controls the default maxmimum size of a mesage queue
-
kernel.msgmnb = 65536
-
-
# Controls the maximum size of a message, in bytes
-
kernel.msgmax = 65536
-
-
# Controls the maximum shared segment size, in bytes
-
-
# Controls the maximum number of shared memory segments, in pages
-
-
# oracle-rdbms-server-11gR2-preinstall setting for fs.file-max is 6815744
-
fs.file-max = 6815744
-
-
# oracle-rdbms-server-11gR2-preinstall setting for kernel.sem is '250 32000 100 128'
-
kernel.sem = 250 32000 100 128
-
-
# oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmni is 4096
-
kernel.shmmni = 4096
-
-
# oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on x86_64
-
# oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on i386
-
kernel.shmall = 1073741824
-
-
# oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4398046511104 on x86_64
-
# oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4294967295 on i386
-
kernel.shmmax = 4398046511104
-
-
# oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_default is 262144
-
net.core.rmem_default = 262144
-
-
# oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_max is 4194304
-
net.core.rmem_max = 4194304
-
-
# oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_default is 262144
-
net.core.wmem_default = 262144
-
-
# oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_max is 1048576
-
net.core.wmem_max = 1048576
-
-
# oracle-rdbms-server-11gR2-preinstall setting for fs.aio-max-nr is 1048576
-
fs.aio-max-nr = 1048576
-
-
# oracle-rdbms-server-11gR2-preinstall setting for net.ipv4.ip_local_port_range is 9000 65500
-
net.ipv4.ip_local_port_range = 9000 65500
5.配置Oracle网络
I.硬件配置要求
-
每个服务器节点至少需要2块网卡,一块对外网络接口,一块私有网络接口(心跳)。
-
如果你通过OUI安装Oracle集群软件,需要保证每个节点用于外网或私网接口(网卡名)保证一致。比如,node1使用eth0作为对外接口,node2就不能使用eth1作为对外接口。
II.IP配置要求
III.非GNS下手动配置IP实例
6.检查操作系统软件包
首先,根据操作系统版本到官方文档中找到安装包需求列表,如下图
可以通过mount安装盘或直接通过yum源检查和安装所需要的包:
-
# rpm -qa packages_name
-
# rpm -ivh packages_name
-
-
# yum list packages_name
-
# yum install packages_name
这里还要提一下:CVUdisk这个包也可以在这个时候一起安装好,以备之后使用CVU时会用到。
-
# 检查是否已经安装
-
# rpm -qi cvuqdisk
-
# 如果已安装需要先卸载之前的版本
-
# rpm -e cvuqdisk
-
# 安装新版本
-
# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
-
# rpm -ivh cvuqdisk-1.0.9-1.rpm
7.关闭NTP及端口范围参数修改
-
# Oracle建议使用Oracle Cluster Time Synchronization Service,因此关闭删除NTP
-
# /sbin/service ntpd stop
-
# chkconfig ntpd off
-
# rm /etc/ntp.conf (mv /etc/ntp.conf /etc/ntp.conf.old)
-
# rm /var/run/ntpd.pid
-
-
检查TCP/UDP端口范围
-
# cat /proc/sys/net/ipv4/ip_local_port_range
-
如果已经显示9000 65500,就不用进行下面的步骤了
-
# echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range
-
# vim /etc/sysctl.conf
-
# 添加此行:
-
# TCP/UDP port range
-
net.ipv4.ip_local_port_range = 9000 65500
-
# 重启网络
-
# /etc/rc.d/init.d/network restart
8.调整.bash_profile内容并设置显示地址
-
设置参数:
-
$ su - root
-
# mkdir /mount_point/tmp
-
# chmod 775 /mount_point/tmp
-
# exit
-
-
$ vi .bash_profile
-
加入行:
-
TEMP=/mount_point/tmp
-
TMPDIR=/mount_point/tmp
-
export TEMP TMPDIR
-
加入行:umask 022
-
加入行:DISPLAY=local_IP:0.0 ; export DISPLAY
-
local_IP为你要将安装视图所显示的桌面地址
-
-
检查设置参数
-
$ umask
-
$ env | more
-
$ echo $DISPLAY
-
$ echo $TEMP
-
$ echo $TMPDIR
9.配置SSH互信
这是很关键的一步,虽然官方文档中声称安装GI和RAC的时候OUI会自动配置SSH,但为了在安装之前使用CVU检查各项配置,还是手动配置互信更优。
-
配置过程如下:
-
各节点生成Keys:
-
[root@rac1 ~]# su - oracle
-
[oracle@rac1 ~]$ mkdir ~/.ssh
-
[oracle@rac1 ~]$ chmod 700 ~/.ssh
-
[oracle@rac1 ~]$ ssh-keygen -t rsa
-
[oracle@rac1 ~]$ ssh-keygen -t dsa
-
[root@rac2 ~]# su - oracle
-
[oracle@rac2 ~]$ mkdir ~/.ssh
-
[oracle@rac2 ~]$ chmod 700 ~/.ssh
-
[oracle@rac2 ~]$ ssh-keygen -t rsa
-
[oracle@rac2 ~]$ ssh-keygen -t dsa
-
-
在节点1上进行互信配置:
-
[oracle@rac1 ~]$ touch ~/.ssh/authorized_keys
-
[oracle@rac1 ~]$ cd ~/.ssh
-
[oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
-
[oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
-
[oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
-
[oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
-
-
在rac1把存储公钥信息的验证文件传送到rac2上
-
[oracle@rac1 .ssh]$ pwd
-
/home/oracle/.ssh
-
[oracle@rac1 .ssh]$ scp authorized_keys rac2:'pwd'
-
oracle@rac2's password:
-
authorized_keys 100% 1644 1.6KB/s 00:00
-
-
设置验证文件的权限
-
在每一个节点执行:
-
$ chmod 600 ~/.ssh/authorized_keys
-
-
启用用户一致性
-
在你要运行OUI的节点以oracle用户运行(这里选择rac1):
-
[oracle@rac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
-
[oracle@rac1 .ssh]$ ssh-add
-
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
-
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
-
-
验证ssh配置是否正确
-
以oracle用户在所有节点分别执行:
-
ssh rac1 date
-
ssh rac2 date
-
ssh rac1-priv date
-
ssh rac2-priv date
-
-
如果不需要输入密码就可以输出时间,说明ssh验证配置成功。必须把以上命令在两个节点都运行,每一个命令在第一次执行的时候需要输入yes。
-
如果不运行这些命令,即使ssh验证已经配好,安装clusterware的时候也会出现错误:
-
The specified nodes are not clusterable
-
因为,配好ssh后,还需要在第一次访问时输入yes,才算是真正的无障碍访问其他服务器。
请谨记,SSH互信需要实现的就是各个节点之间可以无密码进行SSH访问。
10.为Grid集群基础软件配置存储(使用ASM)
Oracle所允许的存储主要有ASM、NFS和ACFS等,这里仅介绍ASM的配置过程。
(1)安装ASM配置软件
-
依然是可以通过yum或者系统DVD光盘安装
-
# cd /mnt/install_DVD/Packages
-
# rpm -qi oracleasm
-
# rpm -qi oracleasm-support
-
# rpm -qi oracleasm-support-2.1.8-1.el6.x86_64.rpm
-
//我们是Oracle Linux系统,此版本已经集成了oracleasm和oracleasmlib,所以就不用再安装了~
(2)规划ASM磁盘组
官方文档中规定了不同冗余策略下OCR、Voting Disk、Database和Recovery所需求的大小。
找到存储管理员,把规划好的磁盘都让他给你配置好~
(3)配置ASM
-
格式化每个磁盘
-
[root@rac1 ~]# fdisk /dev/sdb
-
-
完成后我们通过fdisk -l查看一下
-
[root@rac1 ~]# fdisk -l
-
-
[root@rac1 ~]# /usr/sbin/oracleasm configure -i
-
Default user to own the driver interface []: grid
-
Default group to own the driver interface []: asmadmin
-
Start Oracle ASM library driver on boot (y/n) [n]: y
-
Scan for Oracle ASM disks on boot (y/n) [y]: y
-
-
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
-
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
-
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
-
-
以下操作在另一个节点上进行,RAC2上操作
-
[root@rac2 ~]# oracleasm scandisks
-
这里用到的是asmlib来做磁盘设备管理的,这里大家也可以使用UDEV来管理,在RHEL6中asmlib已经被废弃了,以后就是UDEV的天下
11.使用CVU检查各个节点的配置工作
千辛万苦终于到了安装前的最后一步~
-
[root@node1 ~]# su - grid
-
[grid@node1 ~]$ cd grid_sw
-
[grid@node1 grid_sw]$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose
-
其中“grid_sw”为安装包解压出来的grid安装文件。
这一步的重点在于遇到报错怎样处理:
我这次安装遇到了
PRVF-5636,此问题是由于没有DNS以及/etc/resolv.conf 的设置引起的,因为脚本要用nslookup命令去检测两个节点的连通性。
12.安装GI和RAC
(1)安装Oracle Grid Infrastructure
安装过程中遇到了udev的报错,由于我们使用的oracleasmlib,所以直接无视~
(2)安装Oracle Database 11
g with Oracle Real Application Clusters
安装Grid是难点,RAC只要Grid安装顺利基本不是问题,安装过程中也请先使用CVU进行安装前检测,本次安装过程中遇到了一些文件权限的问题,大家安装时也请多注意。尤其是ASM的权限和安装用户的家目录权限。
13.使用ASMCA和DBCA管理数据库
关于这两个管理软件网上文章很多,这里不再赘述。
鸣谢:
本文参考了众多高手的博客和文章,特此说明,以表敬意!
http://blog.itpub.net/28883355/viewspace-1125122/
http://blog.itpub.net/20674423/viewspace-1130320/