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官网下载

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

检测操作系统依赖包:

在两台服务器上分别执行

#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 安装配置的更多相关文章

  1. Linux平台 Oracle 11gR2 RAC安装Part1:准备工作

    一.实施前期准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规范分配 二.安装前期准备工作 2.1 各节点系统时间校对 2.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 ...

  3. Oracle 11gR2 RAC网络配置,更改public ip、vip和scanip

    Oracle 11gR2 RAC网络配置,更改public ip.vip和scanip 转载黑裤子 发布于2018-10-30 01:08:02 阅读数 2898  收藏 展开 转载. https:/ ...

  4. 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 ...

  5. oracle 11gR2 RAC安装手册

    --oracle 11gR2 RAC安装手册 -----------------------------2013/10/29 参考三思笔记 http://files.cnblogs.com/jackh ...

  6. 【Oracle RAC】Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂)

    [Oracle RAC]Linux系统Oracle11gR2 RAC安装配置详细过程V3.1(图文并茂) 2 Oracle11gR2 RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件 ...

  7. 【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)

    [Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 ...

  8. Oracle 11gR2 RAC 新特性说明

    最近接触了一下Oracle 11g R2 的RAC,发现变化很大. 所以在自己动手做实验之前还是先研究下它的新特性比较好. 一.    官网介绍 先看一下Oracle 的官网文档里对RAC 新特性的一 ...

  9. 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之grid安装 (四) 转自 一步一步搭建 oracle 11gR2 rac+d ...

随机推荐

  1. Starship Troopers(HDU 1011 树形DP)

    题意: 给定n个定点和m个士兵,n个定点最终构成一棵树,每个定点有一定x个bugs和y个value,每20个bug需要消耗一个士兵,不足20也消耗一个,然后最终收获y个value,只有父节点被占领后子 ...

  2. wordpress教程之get_option()

    get_option函数的作用 如果你想开发自己的一个wordpress插件,那么也许你有些数据希望保存,这些自定义数据一起都保存在 wordpress数据库的wp_options表,wp_optio ...

  3. Delphi之通过代码示例学习XML解析、StringReplace的用法(异常控制 good)

    *Delphi之通过代码示例学习XML解析.StringReplace的用法 这个程序可以用于解析任何合法的XML字符串. 首先是看一下程序的运行效果: 以解析这样一个XML的字符串为例: <? ...

  4. 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 ...

  5. 三 ICE开发初级研究

    http://www.acejoy.com/bbs/viewthread.php?tid=2878&extra=page%3D1 ICE开发初级研究(一) 最近一段一直在忙于工作,事情比较多, ...

  6. hdu2208之搜索

    唉,可爱的小朋友 Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. C#执行zip文件压缩的几种方法及我遇到的坑总结

    工作项目中需要用到zip压缩解压缩文件,一开始看上了Ionic.Zip.dll这个类库,操作方便,写法简单 对应有个ziphelper类 using Ionic.Zip; public static ...

  8. Co-prime Array&&Seating On Bus(两道水题)

     Co-prime Array Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Su ...

  9. 走进C++程序世界------继承和派生

    继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...

  10. DOS窗口中文显示乱码

    记得以前的dos是可以显示中文的,但是今天复制东西发现竟然不能显示中文了,遇见中文就成了? 在右键->默认值中的默认代码页也显示有中文GBK,但是不管用 在右键->属性中的当前代码页显示为 ...