Oracle 11gR2 RAC 安装配置
1. 简介
Oracle RAC,全称real application clusters,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。本文档主要描述Oracle 11gR2 RAC上中标麒麟安全操作系统5U6版本上的安装以及配置。
2. 准备工作
硬件方面:
至少两台服务器,服务器至少有两块网卡,其中一块网卡用于对外提供服务,别一块网卡用于oracle rac节点之间通信。
一台存储,oracle rac需要使用共享磁盘,仲裁磁盘等。 存储可以是专业的光纤存储设备,也可以是NAS存储,如iscsi,nfs等。
软件方面:
中标麒麟安全操作系统光盘,用于在服务器上安装操作系统,以及安装好系统后,使用光盘安装oracle 11gR2 依赖的包。
Oracle 11gR2 安装软件包:

其中linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip是oracle 11gR2数据库安装包,linux.x64_11gR2_grid.zip是oracle网格基础结构,是oracle rac中非常重要的组件。
以上软件包从oracle官网下载
检测操作系统依赖包:
在两台服务器上分别执行
#rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common
gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21
查看上述软件包是否都安装,如果没有安装的,把操作系统安装光盘挂载到服务器上,安装缺失的包。
安装操作系统时,两台服务器的主机名分别为rac1和rac2
操作系统设置
设置操作系统IP地址和修改/etc/hosts文件
这样,在两台主机之间可以直接通过主机名进行访问
[root@rac1 ~]# vi /etc/hosts
#Public 对外提供服务的IP
192.168.1.171 rac1 rac1.localdomain
192.168.1.173 rac2 rac2.localdomain
#Private 私有IP地址,用于RAC节点间通讯
172.168.1.191 rac1-priv rac1-priv.localdomain
172.168.1.192 rac2-priv rac2-priv.localdomain
#Virtual 虚拟IP地址
192.168.1.172 rac1-vip rac1-vip.localdomain
192.168.1.174 rac2-vip rac2-vip.localdomain
#SCAN
192.168.1.176 rac-cluster rac-cluster-scan
创建oracle用户和grid用户
在两台服务器上分别执行下列操作
[root@rac1 ~]# groupadd -g 5000 asmadmin
[root@rac1 ~]# groupadd -g 5001 asmdba
[root@rac1 ~]# groupadd -g 5002 asmoper
[root@rac1 ~]# groupadd -g 6000 oinstall
[root@rac1 ~]# groupadd -g 6001 dba
[root@rac1 ~]# groupadd -g 6002 oper
[root@rac1 ~]# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid
#创建grid用户,这个用户属于oinstall组,附加组有asmadmin,asmdba,asmoper
[root@rac1 ~]# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash oracle
#创建oracle用户,这个用户属于oinstall组,附加组有asmadmin,asmdba,asmoper
[root@rac1 ~]# mkdir -p /oracle/app/grid
[root@rac1 ~]# mkdir -p /oracle/app/11.2.0/grid
[root@rac1 ~]# mkdir -p /oracle/app/oracle
[root@rac1 ~]# passwd oracle
[root@rac1 ~]# passwd grid
[root@rac1 ~]# chown -R grid:oinstall /oracle/app/grid
[root@rac1 ~]# chmod -R 775 /oracle/app/grid
[root@rac1 ~]# chown -R grid:oinstall /oracle/app/11.2.0/grid
[root@rac1 ~]# chmod -R 775 /oracle/app/11.2.0/grid
[root@rac1 ~]# chown -R oracle:oinstall /oracle/app/oracle
[root@rac1 ~]# chmod -R 775 /oracle/app/oracle
设置oracle用户和grid用户的环境变量
设置oracle用户环境变量,在两个节点上执行下列操作,注意两节点的ORACLE_SID是不同的
[oracle@rac1 ~]# vim .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=RAC; export ORACLE_UNQNAME
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=RAC1; export ORACLE_SID #注意这里,在主机rac1上,它的实例名为RAC1
而在rac2主机,它的实例名RAC2
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_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
设置grid用户的环境变量,两个节点都要执行下列操作,但ORACLE_SID是不同的
[grid@rac1 ~]# vim .bash_profile
#Grid Settings
CRS_HOME=/oracle/app/11.2.0/grid
ORACLE_BASE=/oracle/app/grid ORACLE_SID=+ASM1 #注意在rac2中,将ORACLE_SID=+ASM2
PATH=$CRS_HOME/bin:$PATH:$Home/bin
export PATH CRS_HOME ORACLE_BASE ORACLE_SID
调整操作系统内核参数
参数的大小,请根据服务器硬件配置,应用程序访问具体情况进行调整。以下参数仅做参考,分别在两台机器执行。
编辑/etc/sysctl.conf文件
[root@rac1 ~]# vim /etc/sysctl.conf
fs.file-max = 6815744
kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65536
kernel.sem = 250 32000 100 142
kernel.shmmni = 4096
物理内存除以pagesize
kernel.shmall = 1073741824
物理内存的一半
kernel.shmmax = 4294967295
kernel.sysrq = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 3145728
net.ipv4.ip_local_port_range = 9000 65500
vm.min_free_kbytes = 51200
编辑/etc/security/limits.conf
[root@rac1 ~]# vi /etc/security/limits.conf
#oracle数据库用户使用资源限制
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 3500000
oracle hard memlock 3500000
#grid数据库用户使用资源限制
grid soft nofile 131072
grid hard nofile 131072
grid soft nproc 131072
grid hard nproc 131072
grid soft core unlimited
grid hard core unlimited
grid soft memlock 3500000
grid hard memlock 3500000
设置ntp服务器,确保两个节点的时间一致
登录节点rac1,备份系统原来的ntp.conf配置文件

编辑/etc/ntp.conf配置文件

再登录节点rac2,
编辑/etc/ntp.conf配置文件

配置存储
设置一个iscsi或是光纤存储磁盘,确保这个磁盘可以被rac1和rac2两个节点都发现。
在rac1上执行fdisk命令,对存储磁盘进行分区,注意只分区不进行格式化的操作。
至少划分三个分区,分区只需要在一台机器上操作即可

由于oracle rac 不支持在2.6.32上的内核直接使用ASM,因此,在这里,将磁盘设置为裸设备。
编辑/etc/sysconfig/rawdevices,加入如下内容.两个节点上都做相同的操作

在中标麒麟安全操作系统5U8版本上,没有raw设备的启动脚本,因此需要创建一个raw设备的启动脚本,

[root@host02 ~]# vim /etc/init.d/rawdevices
#!/bin/bash
#
# rawdevices This shell script assignes rawdevices to block devices
#
# chkconfig: 345 56 44
# description: This scripts assignes raw devices to block devices \
# (such as hard drive partitions). This is for the use \
# of applications such as Oracle. You can set up the \
# raw device to block device mapping by editing \
# the file /etc/sysconfig/rawdevices.
# config: /etc/sysconfig/rawdevices
[ -f /bin/raw ] || exit 0
[ -f /etc/sysconfig/rawdevices ] || exit 0
# Exit if the file just has the default comments.
LC_ALL=C
/bin/egrep -q -v "^ *#" /etc/sysconfig/rawdevices 2>/dev/null || exit 0
. /etc/init.d/functions
function assign_raw()
{
LC_ALL=C egrep -v '^ *#' /etc/sysconfig/rawdevices |
while read RAW BLOCK; do
if [ -n "$RAW" -a -n "$BLOCK" ]; then
rawdirname=${RAW%/*}
if [ "$rawdirname" = "/dev" -a -d /dev/raw ]; then
echo $" Please correct your /etc/sysconfig/rawdevices:"
echo $" rawdevices are now located in the directory /dev/raw/ "
echo $" If the command 'raw' still refers to /dev/raw as a file."
echo $" you'll have to upgrade your util-linux package"
exit 0
fi
if [ "$rawdirname" = "/dev/raw" -a -f /dev/raw ]; then
echo $" Please correct your /etc/sysconfig/rawdevices:"
echo $" rawdevices are now located in the directory /dev/raw/ "
echo $" If the command 'raw' still refers to /dev/raw as a file."
echo $" you'll have to upgrade your util-linux package"
exit 0
fi
echo " $RAW --> $BLOCK";
raw $RAW $BLOCK
fi
done
}
# See how we were called.
case "$1" in
start)
# Assign devices
echo $"Assigning devices: "
assign_raw
#添加以下两行(默认不存在),即默认情况下生成的裸设备为root所有,
#所以必须修改属主,否则oracle用户无法使用裸设备
sleep 5
#chown -R oracle:oinstall /dev/raw/
chown -R oracle /dev/raw/
echo $"done"
;;
stop)
# No action to be taken here
;;
status)
ID=`id -u`
if [ $ID -eq 0 ]; then
raw -qa
else
echo $"You need to be root to use this command ! "
fi
;;
restart|reload)
$0 start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
把rawdevices服务加入系统启动项,确保每次开机都自动启动rawdevices服务
#chkconfig rawdevices on
修改raw设备的udev规则

把两个节点的rawdevices服务启动,查看两节点是否都已经识别了raw设备。

设置libcap.so.1的软链接:
cd /lib64 && ln -s libcap.so.2.16 libpcap.so.1
3. 安装oracle 11g grid
将oracle 11g grid压缩包解压到/tmp目录,解决完,需要在其安装文件中的all.jdk中加入中文字体,目录是为了解决安装过程乱码的问题
桌面上新建一个文件夹,fallback,将/usr/share/fonts/zh_CN/TrueType/下面的
zysong.ttf 复制到 fallback 目录里.进入 oracle 的安装源目录,
database/stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles/,右击 all.jar, 用归档管理器打开,进入 jdk/jre/lib/fonts/,桌面上的 fallback 文件夹拖到进去,最终目录为jdk/jre/lib/fonts/fallback/zysong.ttf

加好中文字体,all.jar包如下

安装cvuqdisk-1.0.7-1.rpm

在root用户下,执行xhost + ,重新开启一个终端,执行su - grid,运行grid的安装文件,
[grid@host01 grid]$ ./runInstaller

点击“下一步”

选择“典型安装”,点击“下一步”

填写SCAN的名称,添加两个节点的主机名与虚拟IP地址,配置SSH免密码登录,点击“下一步”,

安装程序正在验证两节点是否准备好,验证完毕,点击“下一步”,

集群注册表存储类型,选择“自动存储管理”,设置SYSASM用户口令,点击“下一步”

设置磁盘组名,添加磁盘,点击“下一步”,

选中要添加的磁盘,点击“下一步”

正在检查系统安装配置环境,请等待

开始安装

在第二个节点上执行第一条脚本,两个节点都执行第二条脚本
4. Oracle 11gR2 数据库的安装
把oracle 11gR2 两个安装文件解压到/tmp目录,在root用户下打开终端,执行xhost +命令,再su - oracle用户,进行oracle 11gR2 安装文档的解压目录,运行./runInstaller

点击“下一步”

点击“下一步”

选择“创建和配置数据库”,点击“下一步”

选择“服务器类”,点击“下一步”

选择“Real Application Clusters数据库安装”,点击“下一步”,接下来就不截图了,点击下一步继续安装。
Oracle 11gR2 RAC 安装配置的更多相关文章
- Linux平台 Oracle 11gR2 RAC安装Part1:准备工作
一.实施前期准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规范分配 二.安装前期准备工作 2.1 各节点系统时间校对 2.2 各节点关闭防火墙和 ...
- Linux平台 Oracle 11gR2 RAC安装Part2:GI安装
三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面安装GI 3 ...
- Oracle 11gR2 RAC网络配置,更改public ip、vip和scanip
Oracle 11gR2 RAC网络配置,更改public ip.vip和scanip 转载黑裤子 发布于2018-10-30 01:08:02 阅读数 2898 收藏 展开 转载. https:/ ...
- Linux平台 Oracle 11gR2 RAC安装Part3:DB安装
四.DB(Database)安装 4.1 解压DB的安装包 4.2 DB软件安装 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 11 ...
- oracle 11gR2 RAC安装手册
--oracle 11gR2 RAC安装手册 -----------------------------2013/10/29 参考三思笔记 http://files.cnblogs.com/jackh ...
- 【Oracle RAC】Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂)
[Oracle RAC]Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂) 2 Oracle11gR2 RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件 ...
- 【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)
[Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 ...
- Oracle 11gR2 RAC 新特性说明
最近接触了一下Oracle 11g R2 的RAC,发现变化很大. 所以在自己动手做实验之前还是先研究下它的新特性比较好. 一. 官网介绍 先看一下Oracle 的官网文档里对RAC 新特性的一 ...
- 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)【转】
一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之grid安装 (四) 转自 一步一步搭建 oracle 11gR2 rac+d ...
随机推荐
- Starship Troopers(HDU 1011 树形DP)
题意: 给定n个定点和m个士兵,n个定点最终构成一棵树,每个定点有一定x个bugs和y个value,每20个bug需要消耗一个士兵,不足20也消耗一个,然后最终收获y个value,只有父节点被占领后子 ...
- wordpress教程之get_option()
get_option函数的作用 如果你想开发自己的一个wordpress插件,那么也许你有些数据希望保存,这些自定义数据一起都保存在 wordpress数据库的wp_options表,wp_optio ...
- Delphi之通过代码示例学习XML解析、StringReplace的用法(异常控制 good)
*Delphi之通过代码示例学习XML解析.StringReplace的用法 这个程序可以用于解析任何合法的XML字符串. 首先是看一下程序的运行效果: 以解析这样一个XML的字符串为例: <? ...
- Spring Task Scheduler - No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined
1. Overview In this article, we are discussing the Springorg.springframework.beans.factory.NoSuchBea ...
- 三 ICE开发初级研究
http://www.acejoy.com/bbs/viewthread.php?tid=2878&extra=page%3D1 ICE开发初级研究(一) 最近一段一直在忙于工作,事情比较多, ...
- hdu2208之搜索
唉,可爱的小朋友 Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- C#执行zip文件压缩的几种方法及我遇到的坑总结
工作项目中需要用到zip压缩解压缩文件,一开始看上了Ionic.Zip.dll这个类库,操作方便,写法简单 对应有个ziphelper类 using Ionic.Zip; public static ...
- Co-prime Array&&Seating On Bus(两道水题)
Co-prime Array Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Su ...
- 走进C++程序世界------继承和派生
继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...
- DOS窗口中文显示乱码
记得以前的dos是可以显示中文的,但是今天复制东西发现竟然不能显示中文了,遇见中文就成了? 在右键->默认值中的默认代码页也显示有中文GBK,但是不管用 在右键->属性中的当前代码页显示为 ...