概述:写下本文档的初衷和动力,来源于上篇的《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. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  2. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  3. [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute

    剖析 AssemblyInfo.cs - 了解常用的特性 Attribute [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5944391.html 序 ...

  4. 【算法】C语言实现数组的动态分配

    C语言实现数组的动态分配 作者:白宁超 2016年10月27日20:13:13 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的.无论从事算法优化方向研究,还是大数据处理,亦或者网站开发AP ...

  5. 拼图小游戏之计算后样式与CSS动画的冲突

    先说结论: 前几天写了几个非常简单的移动端小游戏,其中一个拼图游戏让我郁闷了一段时间.因为要获取每张图片的位置,用`<style>`标签写的样式,直接获取计算后样式再用来交换位置,结果就悲 ...

  6. javascript动画系列第二篇——磁性吸附

    × 目录 [1]范围限定 [2]拖拽范围 [3]磁性吸附 前面的话 上一篇,我们介绍了元素拖拽的实现.但在实际应用中,常常需要为拖拽的元素限定范围.而通过限定范围,再增加一些辅助的措施,就可以实现磁性 ...

  7. 体验报告:微信小程序在安卓机和苹果机上的区别

    很多人可能会问:微信小程序和在微信里面浏览一个网页有什么区别? 首先,小程序的运行是全屏的,界面跟进入了一个APP很像,更为沉浸跟在微信里面访问h5不一样:其次,它的浏览体验更为稳定. 不过,这还不够 ...

  8. javascript arguments(转)

    什么是arguments arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的.所有主要的js函数库都利用了arguments对象.所以agru ...

  9. ABAP实现屏幕自己刷新和跳转功能

    ABAP开发工程中,有时候需要让跳转出的屏幕自动实现跳转和刷新的功能,该功能的实现需要在屏幕PBO 里面调用相应的事件执行. 关键代码为: SET TITLEBAR ' 屏幕自动程序'. IF g_c ...

  10. 安卓自定义组合控件--toolbar

    最近在学习安卓APP的开发,用到了toolbar这个控件, 最开始使用时include layout这种方法,不过感觉封装性不好,就又改成了自定义组合控件的方式. 使用的工具为android stud ...