Oracle RAC集群安装

安装企业版Oracle数据库需要安装两部分:Oracle RAC, Oracle Database. Oracle RAC原理请参考这篇文章。本篇原创介绍的是RAC 安装的实操部分,数据库的安装部分请参考这篇文章。

以Oracle 12C为例。

  1. Oracle官方网站下载grid 安装包:

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html

安装前准备。

oracle rac作为集群软件,在安装之前需要对各个要安装的服务器进行集群配置,以下操作需要在三台server上面依次完成:

1) IP地址划分

本次以三台服务器为集群节点为例,划分ip地址如下(关于oracle rac ip地址分类介绍请看这里):

Public ip:

192.168.0.10

192.168.0.11

192.168.0.12

Private ip:

192.168.1.10

192.168.1.11

192.168.1.12

Virtual ip:

192.168.0.13

192.168.0.14

192.168.0.15

Scan ip:

192.168.0.16

所以在三台服务器(test-4,test-5,test-6)上面/etc/hosts的配置如下(在一台server上面配置好了以后直接拷贝到另外两台机器):

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.10 test-4 test-4.localdomain

192.168.0.13 test-4-vip

192.168.0.11 test-5 test-5.localdomain

192.168.0.14 test-5-vip

192.168.0.12 test-6 test-6.localdomain

192.168.0.15 test-6-vip

192.168.0.16 scan4 scan4.localdomain

192.168.1.10 test-4-priv

192.168.1.11 test-5-priv

192.168.1.12 test-6-priv

从这份配置中可以看到每个ip对应的host。public ip和private ip在安装之前需要ifconfig配置完成,virtual ip,scan ip不需要ifconfig配置。

2)创建新用户(grid,oracle)和组(oinstall,dba,asmadmin,asmdba,asmoper,oper),以其中一台 test-5上的操作为例:

[[email protected] ~]# groupadd -g 501 oinstall

[[email protected] ~]# groupadd -g 502 dba

[[email protected] ~]# groupadd -g 504 asmadmin

[[email protected] ~]# groupadd -g 506 asmdba

[[email protected] ~]# groupadd -g 507 asmoper

[[email protected] ~]# useradd -u 5001 -g oinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c "grid" grid

[[email protected] ~]# su - grid

[[email protected] ~]$ id grid

uid=5001(grid) gid=501(oinstall) groups=501(oinstall),502(dba),504(asmadmin),506(asmdba),507(asmoper)

[[email protected] ~]# groupadd -g 503 oper

[[email protected] ~]# useradd -u 5002 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c "oracle" oracle

[[email protected] ~]# su - oracle

[[email protected] ~]$ id oracle

uid=5002(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),506(asmdba),503(oper

3)修改系统 linux limits文件 /etc/security/limits.conf:

cp /etc/security/limits.conf /etc/security/limits.conf.bak
echo "oracle soft nproc 2047" >>/etc/security/limits.conf
echo "oracle hard nproc 16384" >>/etc/security/limits.conf
echo "oracle soft nofile 1024" >>/etc/security/limits.conf
echo "oracle hard nofile 65536" >>/etc/security/limits.conf
echo "grid soft nproc 2047" >>/etc/security/limits.conf
echo "grid hard nproc 16384" >>/etc/security/limits.conf
echo "grid soft nofile 1024" >>/etc/security/limits.conf
echo "grid hard nofile 65536" >>/etc/security/limits.conf

4)修改/etc/profile:

cp /etc/profile /etc/profile.bak
echo ‘if [ $USER = "oracle" ]||[ $USER = "grid" ]; then‘ >>  /etc/profile
echo ‘if [ $SHELL = "/bin/ksh" ]; then‘ >> /etc/profile
echo ‘ulimit -p 16384‘ >> /etc/profile
echo ‘ulimit -n 65536‘ >> /etc/profile
echo ‘else‘ >> /etc/profile
echo ‘ulimit -u 16384 -n 65536‘ >> /etc/profile
echo ‘fi‘ >> /etc/profile
echo ‘fi‘ >> /etc/profile

5)在三个节点分别运行以下命令:

cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
echo "kernel.shmmax = 1054472192" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 262144 262144 262144" >> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4194304 4194304 4194304" >> /etc/sysctl.conf

sysctl -p

6)grid用户的 .bash_profile:

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

#node1 :ORACLE_SID=+ASM1 ; node2 : ORACLE_SID=+ASM2 : node3: ORACLE_SID=+ASM3

ORACLE_SID=+ASM1; export ORACLE_SID

ORACLE_BASE=/u01/app/grid/; export ORACLE_BASE

ORACLE_HOME=/u01/app/grid_home; export ORACLE_HOME

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

THREADS_FLAG=native; export THREADS_FLAG

PATH=$ORACLE_HOME/bin:$PATH; export PATH

THREADS_FLAG=native; export THREADS_FLAG

PATH=$ORACLE_HOME/bin:$PATH; export PATH

umask 022

7)oracle用户的 .bash_profile(Oracle SID根据后面自己安装的数据库名字做相应改动,sqlplus根据这个环境变量决定连接哪个数据库实例):

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle/; export ORACLE_BASE

ORACLE_HOME=/u01/app/oracle_home; export ORACLE_HOME

#node1:ORACLE_SID=racdb1 , node2:ORACLE_SID=racdb2 , node3:ORACLE_SID=racdb3

ORACLE_SID=racdb1; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$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

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG

JAVA_HOME=/opt/jdk1.8.0_121; export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH; export PATH

umask 022

依次在三个host完成上面1)-7)的配置。

8)在三个节点上配置grid 用户和Oracle用户的无密码登陆,即三台host中从任何一台host上面用grid或者oracle用户都可以直接ssh到另外一台机器执行命令。以oracle和grid用户运行命令下面命令,以oracle用户为例,在test-5上面运行:

sed -i ‘s/UserKnownHostsFile \/dev\/null//g‘ /etc/ssh/ssh_configsed -i ‘s/StrictHostKeyChecking no/StrictHostKeyChecking ask/g‘ /etc/ssh/ssh_configssh-keygen -N "" -f ~/.ssh/id_rsassh-keygen -N "" -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pubcat ~/.ssh/id_rsa.pub

把最后一步cat得到的公钥放到test-4,test-6的oracle用户~/.ssh/authorized_keys里面。在test-5上面运行:

ssh test-4 date

ssh test-6 date

来测试无密码登陆的配置。在test-4和test-6上面执行同样的步骤,把公钥放到另外两台host对应的authorized_keys里面。

9)

mkdir -p /u01/app/gridmkdir -p /u01/app/11.2.0/gridmkdir -p /u01/app/oraclechown -R oracle:oinstall /u01chown -R grid:oinstall /u01/app/gridchown -R grid:oinstall /u01/app/11.2.0chmod -R 775 /u01

10)停止NTP服务

service ntpd stopchkconfig ntpd offrm -f /etc/ntp.conf

11)在/u01/app/grid_home下面解压缩下载到的grid安装包

解压缩后,执行runcluvfy.sh脚本做安装前的precheck 工作。

执行命令:

./runcluvfy.sh stage -pre crsinst -n test-4,test-5,test-6 -verbose

经过前面1)-10)步的配置,precheck基本上都能通过,如果有其他不能通过的地方请参考具体信息进行修改。

12)./gridSetup.sh安装grid。安装在图形界面下进行,各步截图如下:

选择安装grid infrastructure

SCAN Name与/etc/hosts中保持一致

virtual hostname与/etc/hosts保持一致

使用192.168.0.0子网作为public 网段

划分一个disk作为voting disk来使用,可以专门划分一个小容量磁盘作为OCR/voting disk来用

设置一个统一密码

注意下面的检查中因为笔者用的disk driver是自己开发,所以这边识别不出来,用dd测试读写都没有问题,忽略这些报警。

开始安装,等待最后完成即可。

安装grid的过程比较繁琐,中间可能会遇到各种意想不到的问题,只要见招拆招即可。

13)使用asm图形界面管理diskgroup

运行asmca 命令,会看到Oracle12c的asm管理界面,在这个界面里面可以创建是,删除diskgroup,对diskgroup属性进行修改,设置diskgroup的sector size等,相比命令行,非常方便。如果底层disk sector size是4k,可以直接指定diskgroup sector size为4k以提高数据库性能。

时间: 2024-10-13 15:43:44

Oracle RAC集群安装的相关文章

Oracle RAC集群安装之:Grid软件安装过程蓝屏

前几天在安装一套RAC服务器的过程中,遇到了蓝屏事件,折腾了蛮久(在排查是否存在硬件问题上花费了相当多一部分时间),整个过程大概说明如下: 1.两台华为的PC SERVER,操作系统为WIN SERVER 2008 R2,装11.2.0.3的Oracle集群. 2.第一次安装到准备在第二节点进行GRID安装的步骤时,安装操作所在的节点1蓝屏自动重启了. 3.重启节点1每次都会在出现登陆界面前一刻发生蓝屏. 4.集成部门的同事查看两台服务器的面板,发现蓝屏的服务器在面板上有些指示灯不亮,怀疑是服务

Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题

风哥Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题包括内容: Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2 Oracle数据库12cR2(项目实战之五):Oracle12.2 RAC集群实施与维护 Oracle数据库12cR2(项目实战之六):Oracle12.2 RAC集群管理之增删节点 Oracle数据库12cR2(项目实战之七):Oracle12.2 RAC集群管理之修改IP地址 视频学习地址:http://ed

【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行

Oracle RAC集群体系结构

一. Oracle集群体系结构 Oracle RAC,全称是Oracle Real Application Cluster,即真正的应用集群,是oracle提供的一个并行集群系统,整个集群系统由Oracle Clusterware (集群就绪软件)和 Real Application Clusters(RAC)两大部分组成. oracle RAC的实质是位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库,每个节点间通过私有网络进行通信,互相监控节点的运行状态,oracle数据

重庆专业oracle数据库集群安装服务-重庆思庄科技

核心词:重庆思庄,Oracle技术支持电话:023-68429836,Oracle数据库集群安装服务,性能调整,oracle数据库升级服务,Oracle不能启动,Oracle慢,Oracle数据库挂起,节点异常重启,不能连接Oracle,DG不能同步,...国内知名Oracle专家团队!为您解决各种Oracle疑难问题! Oracle数据库的RAC架构全面实施了数据库网格计算,Oracle RAC充分利用硬件,操作系统和公共存储的综合能力来提供强大的可靠性和可扩展性.Oracle RAC的优越性

Oracle rac集群环境中的特殊问题

备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集群环境中,关键数据通常是并发存放的,比如放在共享磁盘上.而集群内各个成员的生身份是对等的,所有节点对数据有相同的访问权利.这时就必须有某种机制能够控制节点对数据的访问. 在Oracle rac中,是利用DLM (Distribute Look Management)机制来进行多个实例间的并发控制. 2.健忘症

Oracle RAC 集群 SCAN 说明

1   SCAN 概述 之前有网友在我Blog 留言说我的RAC 搭建中没有写SCAN 配置,这个之前应该是有写过,但刚搜了一下,没找到,正好重新整理一下,并做下实验,实验就用Oracle 12c 进行测试. 在Oracle 11g 之前,我们去连接RAC 集群,都是配置如下的内容: dave_rac= (DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = yes) (FAILOVER=ON) (ADDRESS = (PROTOCOL = TCP)(HOS

Oracle RAC集群本地时间和远程时间不一致?

事因: 征信数据库数据事件不一致导致数据(RAC集群)混乱,PLSQL查询时间和数据库时间不一致,严重影响业务.因为之前只是偶遇一次,再加上有过MySQL时区解决经验,感觉应该可以很快解决,然而,并非我想的那么简单.如下是整个事件的经过,算是经验分享吧.(有vsp,因此只能截图) 1.查看两台服务器的本地时间,以及时区. 可以看到,Asia/Shanghai CST 北京时间东八区.(GMT代表格林尼治标准时间) 2.用sysdba查看本地时间: AM表示上午,PM表示下午.没有什么异常. 2.

Oracle 12cR1 RAC集群安装(一)--环境准备

基本环境 操作系统版本 RedHat6.7 数据库版本 12.1.0.2 数据库名称 testdb 数据库实例 testdb1.testdb2 (一)安装服务器硬件要求 配置项目 参数要求 网卡 每台服务器至少2个网卡:--公网网卡:带宽至少1GB--私网网卡:带宽至少1GB,建议使用10GB,用于集群节点之间的内部通信 注意:所有节点的网卡接口名称必须相同.必然要节点1使用网卡eth0来做公网网卡,那么节点2也必须使用eth0来做公网网卡. 内存 根据是否安装GI,内存要求为:--如果只安装单