概述:写下本文档的初衷和动力,来源于上篇的《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. UWP中实现自定义标题栏

    UWP中实现自定义标题栏 0x00 起因 在UWP开发中,有时候我们希望实现自定义标题栏,例如在标题栏中加入搜索框.按钮之类的控件.搜了下资料居然在一个日文网站找到了一篇介绍这个主题的文章: http ...

  2. Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...

  3. Web安全相关(四):过多发布(Over Posting)

    简介 过多发布的内容相对比较简单,因此,我只打算把原文中的一些关键信息翻译一下.原文链接如下: http://www.asp.net/mvc/overview/getting-started/gett ...

  4. Nexus(一)环境搭建

    昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...

  5. FILE文件流的中fopen、fread、fseek、fclose的使用

    FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满 ...

  6. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  7. javaScript中的小细节-script标签中的预解析

    首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是bug经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数( ...

  8. Linux虚拟化学习笔记<一>

    关于虚拟化,原理的东西是非常复杂的,要想完全理解,没有足够的耐心是不不能完全学透这部分内容的.那下面我主要以资源汇总的形式把一些资料罗列出来,帮助大家快速理解虚拟化,快速使用和配置. 为什么要虚拟化: ...

  9. 万向节锁(Gimbal Lock)的理解

    [TOC] 结论 我直接抛出结论: Gimbal Lock 产生的原因不是欧拉角也不是旋转顺序,而是我們的思维方式和程序的执行逻辑没有对应,也就是说是我们的观念导致这个情况的发生. 他人解释 首先我们 ...

  10. ReactNative入门 —— 动画篇(上)

    在不使用任何RN动画相关API的时候,我们会想到一种非常粗暴的方式来实现我们希望的动画效果——通过修改state来不断得改变视图上的样式. 我们来个简单的示例: var AwesomeProject ...