概述:写下本文档的初衷和动力,来源于上篇的《oracle基本操作手册》。oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总。然后形成体系的总结,一则进行回顾复习,另则便于查询使用。本图文文档亦源于此。阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理。由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC。始于唐博士指导,对数据库集群进行配置安装,前后经历2,3个月的摸索。中间遇到不少问题。此文档也将一一记录整理。(本文原创/整理,转载请标注原文出处: RAC在LINUX上使用NFS安装前准备(六) )

本文极客学院入口:Oracle-RAC 体验

白宁超

2015年7月19日10:28:41

目录

介绍

Oracle Enterprise Linux 5.7

Oracle 11 g版本2(11.2)和修改和数据库软件

本文使用Oracle Enterprise Linux 5.7。 一般的图形操作系统安装指南在这里。 更具体地说,它应该是一个服务器安装的2 g交换(最好是3-4G),Linux禁用防火墙和安全。 Oracle建议默认服务器安装,但是如果你执行一个自定义安装包括以下包组:

GNOME桌面环境、编辑器、图形化网络、基于文本的网络、开发库、开发工具、服务器配置工具、管理工具、基地、系统工具、X窗口系统

符合本文的其余部分,以下信息应该设置在安装。

RAC1。

主机名:rac1.localdomain

IP地址eth0:192.168.0.101(公共地址)

默认网关eth0:192.168.0.1(公共地址)

IP地址eth1:192.168.1.101(私人地址)

默认网关eth1:没有

RAC2。

主机名:rac2.localdomain

IP地址eth0:192.168.0.102(公共地址)

默认网关eth0:192.168.0.1(公共地址)

IP地址eth1:192.168.0.102(私人地址)

默认网关eth1:没有

你可以自由地改变IP地址来满足您的网络,但要记住保持一致在本文的其余部分的调整。

自动设置【所有节点】

如果您计划使用“oracle-validated”包执行所有先决条件设置,按照说明http://public-yum.oracle.com设置OL的yum资源库,然后执行以下命令。

# yum install oracle-validated

mkdir /media/disk    #新建挂载目录

cd /usr/local/src       #查看上传后的OEL镜像文件

mv rhel-server-6.5-x86_64-dvd.iso  / usr/local/src/OEL57.iso #重命名镜像文件

mount -t iso9660 -o loop /usr/local/src/OEL57.iso  /media/ disk

vim  /etc/yum.repos.d/rhel-source.repo

cd /etc/yum.repos.d/

touch  rhel-media.repo   #建立yum配置文件

vi  rhel-media.repo   #编辑配置文件,添加以下内容

[OEL57]

name= Oracle Enterprise Linux 5.7  #自定义名称

baseurl=file:///media/disk/Service #本地光盘挂载路径

enabled=1   #启用yum源,0为不启用,1为启用

gpgcheck=1  #检查GPG-KEY,0为不检查,1为检查

yum install oracle-validated  #安装 oracle-validated 包并检查其安装配置

注:oracle-validated安装crs以及oracle dabase所需要补丁包,并创建oracle用户

执行以下步骤同时登录到“ol5 - 112 rac1”虚拟机作为根用户。

修改oracle用户密码:暂时设定密码oracle

Passwd oracle

安装下面的包从Oracle网格媒体在你定义组

cd /media/rpmname  #上传/grid/rpm包到/media下
rpm -Uvh cvuqdisk*  #安装rpm

如果您不使用DNS," / etc / hosts文件必须包含以下信息。

Vi   /etc/hosts

127.0.0.1       localhost.localdomain   localhost
# Public
192.168.0.101   rac1.localdomain        rac1
192.168.0.102   rac2.localdomain        rac2
# Private
192.168.1.101   rac1-priv.localdomain   rac1-priv
192.168.1.102   rac2-priv.localdomain   rac2-priv
# Virtual
192.168.0.103   rac1-vip.localdomain    rac1-vip
192.168.0.104   rac2-vip.localdomain    rac2-vip
# SCAN
192.168.0.105   scan.localdomain        scan
192.168.0.106   scan.localdomain        scan
192.168.0.107   scan.localdomain        scan
# NAS
192.168.0.108   nasl.localdomain        nasl

请注意。 SCAN(扫描地址)不是应该在主机文件中定义的。 而是应该定义在DNS之间循环3相同的子网的公共ip地址。 对于这个安装,我们将妥协和使用hosts文件。 这可能导致问题如果使用11.2.0.2向前。

SELinux的设置更改为允许通过编辑/etc/SELinux/config文件,确保SELinux标志设置如下。

SELINUX=disable

另外,这个变更可以通过使用GUI工具(系统>管理>安全级别和防火墙)。 单击SELinux选项卡和禁用功能。

# service iptables stop   #禁用防火墙
# chkconfig iptables off

停止NTP服务

# service ntpd stop
Shutting down ntpd:                                        [  OK  ]
# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.orig
# rm /var/run/ntpd.pid

配置时间同步

Vi /etc/sysconfig/ntpd
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
# service ntpd restart

创建oracle的安装目录

mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01/

以oracle身份登录,打开以下文件,将如下内容贴到末尾处

# 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=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=RAC1; export ORACLE_SID
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
 
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi
 
alias grid_env='. /home/oracle/grid_env'
alias db_env='. /home/oracle/db_env'

注意:rac2节点处修改:

ORACLE_HOSTNAME=rac2.localdomain; export ORACLE_HOSTNAME
ORACLE_SID=RAC2; export ORACLE_SID

两个节点都创建一个文件/home/oracle/ grid_env,并添加以下内容。

ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
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

两个节点都创建一个文件/home/oracle/db_env,并添加以下内容。Rac2修改ORACLE_SID=RAC2

#touch /home/oracle/db_env
#vi    /home/oracle/db_env
ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
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

关机:

# shutdown -r now 或者 # init 0

首先,我们需要设置一些NFS共享。

在这种情况下我们将做这个在RAC1节点上,但你可以在NAS或服务器上。 在RAC1节点上创建以下目录。

mkdir /shared_config
mkdir /shared_grid
mkdir /shared_home
mkdir /shared_data

在文件/etc/exports末尾添加以下代码:

vi /etc/exports
/shared_config              *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
/shared_grid                 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
/shared_home                 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
/shared_data                 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

运行以下命令到处NFS共享

chkconfig nfs on
service nfs restart

RAC1和RAC2创建Oracle软件安装目录

mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/oradata
mkdir -p /u01/shared_config
chown -R oracle:oinstall /u01/app /u01/app/oracle /u01/oradata /u01/shared_config
chmod -R 775 /u01/app /u01/app/oracle /u01/oradata /u01/shared_config

添加以下行到/etc/fstab文件中

# vi  /etc/fstab
nas1:/shared_config /u01/shared_config  nfs  rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0  0 0
nas1:/shared_grid   /u01/app/11.2.0/grid  nfs  rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0  0 0
nas1:/shared_home   /u01/app/oracle/product/11.2.0/db_1  nfs  rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0  0 0
nas1:/shared_data   /u01/oradata  nfs  rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0  0 0

挂载NFS到两个节点上

mount /u01/shared_config
mount /u01/app/11.2.0/grid
mount /u01/app/oracle/product/11.2.0/db_1
mount /u01/oradata

确保共享目录权限正确:授权访问权限

chown -R oracle:oinstall /u01/shared_config
chown -R oracle:oinstall /u01/app/11.2.0/grid
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/oradata

测试:在RAC1的/u01/oradata目录下创建一个测试目录test,然后打开rac的/u01/oradata查看是否存在,并在rac2删除,查看rac1是否同步

RAC1 #cd /u01/oradata              
RAC1 #mkdir –r test
RAC1 #ls
 
RAC2 # cd /u01/oradata
RAC2 #ls
RAC2 #rm –rf test

参考文献


  1. Oracle的三种高可用集群方案
  2. 集群概念介绍:栢图教育 Oracle 高级课程——理论教材
  3. Oracle 11 RAC生存指南
  4. Oracle 11gR2 RAC管理与性能优化
  5. Oracle Database 11g Release 2 RAC On Linux Using NFS
  6. 使用 VirtualBox 在 Oracle Linux 5.7 上安装Oracle Database 11g Release 2 RAC 的最佳实践
  7. Oracle RAC安装配置-NFS(一)
  8. tnsnames.ora 监听配置文件详解(博客园)

相关文章


【MySql集群搭建】   真机环境下MySQL-Cluster搭建文档

【Hadoop集群搭建】Hadoop集群的配置(一)

【Hadoop集群搭建】Hadoop集群的配置(二)

【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)的更多相关文章

  1. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  2. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)

    RAC 特殊问题和实战经验(五) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  3. 【转】【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)

    原文地址:http://www.cnblogs.com/baiboy/p/orc5.html   阅读目录 目录 共享存储 时间一致性 互联网络(或者私有网络.心跳线) 固件.驱动.升级包的一致性 共 ...

  4. 【转】【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    原文地址:http://www.cnblogs.com/baiboy/p/orc3.html 阅读目录 目录 RAC 工作原理和相关组件 ClusterWare 架构 RAC 软件结构 集群注册(OC ...

  5. 【转】【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)

    原文地址:http://www.cnblogs.com/baiboy/p/orc6.html 阅读目录 目录 介绍 下载软件 操作系统安装 Oracle安装先决条件 创建共享磁盘 参考文献 相关文章 ...

  6. Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

    ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  7. 【转】Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)

      阅读目录 目录 Oracle集群概念和原理 RAC概述 RAC 集成集群件管理 RAC 的体系结构 RAC 的结构组成和机制 RAC 后台进程 RAC 共享存储 RAC 数据库和单实例数据库的区别 ...

  8. 转载:【Oracle 集群】RAC知识图文详细教程(九)--RAC基本测试与使用

    文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...

  9. 转载:【Oracle 集群】RAC知识图文详细教程(六)--RAC在LINUX上使用NFS安装前准备

    文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...

随机推荐

  1. Intellij idea添加单元测试工具

    1.idea 版本是14.0.0 ,默认带有Junit,但是不能自动生成单元测试,需要下载JunitGererator2.0插件 2.Settings -Plugins,下载 JunitGenerat ...

  2. 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)

    Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...

  3. scala练习题1 基础知识

    1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等:     2,在scala REPL中,计算3的平方根,然 ...

  4. TCP/IP基础

    TCP/IP 是用于因特网 (Internet) 的通信协议. 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述. 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的 ...

  5. 【干货分享】流程DEMO-加班与调休

    流程名: 加班.调休  业务描述: 加班: 工作日加班可以申请调休,也可以申请支付加班费.原则上都应申请调休:周末加班原则上申请调休:法定节假日加班支付加班费. 加班申请以半小时为单位. 当月加班不能 ...

  6. BAT“搅局”B2B市场,CIO们准备好了吗?

    "CIO必须灵活构建其所在企业的IT系统,深入业务,以应对日新月异的数字化业务环境."   BAT军团"搅局"B2B市场,CIO们准备好了吗? 庞大的企业级市场 ...

  7. Android之SAX解析XML

    一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...

  8. java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE

    Android发出HTTP请求时出现了这个错误: java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INST ...

  9. AngularJS 系列 学习笔记 目录篇

    目录: AngularJS 系列 01 - HelloWorld和数据绑定 AngularJS 系列 02 - 模块 (持续更新)

  10. JavaScript中undefined与null的区别

    通常情况下, 当我们试图访问某个不存在的或者没有赋值的变量时,就会得到一个undefined值.Javascript会自动将声明是没有进行初始化的变量设为undifined. 如果一个变量根本不存在会 ...