Centos6 + Oracle 11g r2 + nfs搭建RAC环境

    快10年,没有玩oracle了吧。没想到现在还有人用oracle。但是客户要求的oracle 版本比较老,所以文档也是老版本的centos。 

网上找了一圈,发现大部分是粘贴复制,照着步骤做都是错的。所以我重新整理记录了一下,整个安装过程。图片太多,我的懒癌症又犯了,不想传,可以通过下面地址下载 https://download.csdn.net/download/robinhunan/12106084 。 照着文档的步骤 一步一步来 就可以了。

Centos6 + Oracle 11g r2 + nfs搭建RAC环境

环境要求:

  1.3台系统为Centos6的机器,其中 1台做nfs,另外两台为oracle服务器

       2. 每台机器至少2块网卡,网卡名字必须一样

       3. 准备5个可用的IP地址(一个为scan,scan一个配置数据库会提示warning信息,二台配置各配置public和private地址)

       4. 内存至少2G以下内存,建议使用4G或者更高

 

地址规划:

  第一台主机:rac1  
网卡eth0 IP地址:192.168.80.143/24  网卡eth1地址: 192.168.254.135/24

  第台主机:rac2  
网卡eth0 IP地址:192.168.80.144/24  网卡eth1: 192.168.254.136/24

 

在两台rac服务器上都执行

安装依赖软件包 

# yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* rpcbind wget smartctl

 

另外一个rpm pdksh 在oracle或者其他网站下载,cvuqdisk 在oracle数据库的grid目录下面有。

 

配置host文件

 

#vim /etc/hosts 增加以下内容

#public

192.168.80.143 rac1

192.168.80.144 rac2

#priv

192.168.254.135 rac1-priv

192.168.254.136 rac2-priv

#vip

192.168.80.11 rac1-vip

192.168.80.12 rac2-vip 

#scan

192.168.80.200 rac-scan rac-scan.localdomain

#NAS

192.168.80.139 nas1

 

修改 /etc/sysconfig/network , 增加

HOSTNAME=rac1

 

修改内核参数

#vim /etc/sysctl.conf   在最后面添加

fs.fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1572608000

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

 

#sysctl -p

修改文件描述符的限制

#vi /etc/security/limits.conf 

or* soft nproc 16384

* hard nproc 16384

* soft nofile 65536

* hard nofile 65536

添加pam_limits.so 模块 

vim /etc/pam.d/login 最后增加

session required pam_limits.so

 

创建用户和组并创建相应的密码

/usr/sbin/groupadd -g 501 oinstall

/usr/sbin/groupadd -g 502 dba

/usr/sbin/groupadd -g 503 oper

/usr/sbin/groupadd -g 504 asmadmin

/usr/sbin/groupadd -g 505 asmoper

/usr/sbin/groupadd -g 506 asmdba

/usr/sbin/useradd -g oinstall -Gdba,asmdba,oper oracle

/usr/sbin/useradd -g oinstall -Gasmadmin,asmdba,asmoper,oper,dba grid

 

echo oracle | passwd --stdin oracle

echo oracle | passwd --stdin grid

 

创建目录并设置相应权限

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01/app/oracle

mkdir -p /u01/app/oracle/product/11.2.0/db_1

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

chmod -R 775 /u01/app/oracle/product/11.2.0/db_1 

mkdir -p /u01/app/grid

chown -R grid.oinstall /u01/app/grid

chmod -R 775 /u01/app/grid

mkdir -p /u01/app/11.2.0/grid

chown -R grid:oinstall /u01/app/11.2.0/grid

chmod -R 775 /u01/app/11.2.0/grid 

mkdir -p /u01/app/oraInventory

chown -R grid:oinstall /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

mkdir -p /u01/oradata

mkdir -p /u01/shared_config

chown -R oracle:oinstall /u01/oradata

chown -R grid:oinstall /u01/shared_config

chmod -R 775 /u01/oradata /u01/shared_config

修改grid用户环境变量(第二台rac2)

#su - grid

$ vim /home/grid/.bash_profile 

alias df='df -h'

alias du='du -sh'

alias la='ls -lha'

ORACLE_SID=NFS1; export ORACLE_SID

JAVA_HOME=/usr/local/java; export JAVA_HOME

ORACLE_BASE=/u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME

ORACLE_PATH=/u01/app/oracle/common/oracle/sql;export ORACLE_PATH

ORACLE_TERM=xterm; export ORACLE_TERM

NLS_DATE_FORMAT="DD-MON-YYYYHH24:MI:SS"; export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

umask 022

 

修改oracle用户环境变量 

Vim /etc/oracle/.bash_profile

alias df='df -h'

alias du='du -sh'

alias la='ls -lha'

ORACLE_SID=racdb1; export ORACLE_SID

ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME

JAVA_HOME=/usr/local/java; export JAVA_HOME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;export ORACLE_HOME

ORACLE_PATH=/u01/app/common/oracle/sql;export ORACLE_PATH

ORACLE_TERM=xterm; export ORACLE_TERM

NLS_DATE_FORMAT="DD-MON-YYYYHH24:MI:SS"; export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

umask 022

 

配置ssh双机信任(girdoracle用户下都要配置)以oracle为例子

$ ssh-keygen -t rsa

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

拷贝.ssh 目录到rac2 并修改文件权限 chmod 0600 ~/.ssh/*

grid和oracle用户下,二台机器测试是否正常

ssh rac1 date

ssh rac2 date

以上操作需要在二台机器都要操作,注意本机也要执行,信任本机

 

在nfs服务器,配置nfs server

#mkdir -p /shared_config

#mkdir -p /shared_data

#vi /etc/exports 设置共享

/shared_config *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

/shared_data *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

#chkconfig nfs on开启nfs服务

#service nfs restart

在rac服务器执行shoumount -e nas1 看挂载点是否正常

 

 

配置rac和rac2 服务器

#vi /etc/fstab添加以下开机挂载共享目录

nas1:/shared_config /u01/shared_config nfs rw,bg,hard,nointr,noac,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

 

 

挂载相应的目录

chown grid:oinstall /u01/shared_config

chown oracle:oinstall /u01/oradata

chmod 775 /u01/oradata

chmod 775 /u01/app/11.2.0/grid

在rac1 安装grid软件

[]:/mnt/grid/runInstall

#su – grid

$

/mnt/grid/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose | grep -C 2 fail

如果最后提示:集群服务设置的预检查成功.可以开始去安装  grid  否则请查看失败在什么地方解决后再次执行该命令行来检查.

 

 

 

 

 

在rac1服务器,切换到grid 用户,开始安装grid

[grid@rac1 ~]$ /mnt/grid/runInstaller 

 

选择安装类型 

 

 

 

 

 

 

 

 

 

 

其余步骤使用默认配置,等待安装完成即可。

 

 

 

 

有两个错误可以跳过。

Grid安装完成,需要分别在rac1和rac执行root.sh ,注意必须是在rac1 执行完成后,这个 /u01/app/11.2.0/grid/root.sh 执行时间很长,再到rac2执行。 

 

以下检查,最好在二台机器上都进行操作;

检查crs状态:

[grid@rac1 ~]$ crsctl check crs

CRS-4638: Oracle High Availability Servicesis online

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Servicesis online

CRS-4533: Event Manager is online

 检查集群节点

[grid@rac1 ~]$ olsnodes -n

rac1 1

rac2 2

检查监听器进程

[grid@rac1 ~]$ srvctl status listener

监听程序 LISTENER      已启用

监听程序 LISTENER      正在节点上运行: rac1,rac2

检查Oracle ASM

[grid@rac1 ~]$ srvctl status asm -a

ASM         正在 rac1,rac2上运行

ASM         已启用。

检查OCR

[grid@rac1 ~]$ ocrcheck

Status of Oracle Cluster Registry is asfollows :

Version: 3

Total space (kbytes): 262120

Used space (kbytes): 2248

Available space (kbytes) : 259872

ID : 1968086688 Device/File Name: +OCR_VOTE

Device/File integrity check succeededDevice/File not configured Device/File not configured Device/File notconfigured Device/File not configured

Cluster registry integrity check succeeded

Logical corruption check bypassed due tonon-privileged user

 

 

检查表决磁盘

[grid@rac1 ~]$ crsctl query css votedisk

## STATE        File Universal Id                                File Name Diskgroup

--  -----       -----------------                                ------------------

 ONLINE     433b29a662934f14bf5ce26f5c5f1bbf (ORCL:OCR_VOTE01) [OCR_VOTE]

 

 

 

 

 

 

 

 

 

 

以oracle用户身份登录RAC1主节点,对解压后的文件安装

[oracle@rac1 ~]$ unziplinux.x64_11gR2_database_1of2.zip

[oracle@rac1 ~]$ unziplinux.x64_11gR2_database_2of2.zip

[oracle@rac1 ~]cd database/

[oracle@rac1 database]$ ./runInstaller

至此,oracle 11gr2 rac安装完成,可以使用plsql进行连接测试即可

不选择复选框security updates checkbox,下一步.

 

 

 

选择"Create and configure a database" ,下一步.(选择创建数据库同时创建数据仓库,采用官方建议)

 

 

 

选择"Server Class" ,下一步.(如果单纯在linux下进行oracle,非集群环境下亦可)

 

 

 

选择所有节点,配置ssh,下一步.(ssh负责多节点间通信,即配置主节点所有子节点同步)

 

 

 

选择 "Typical install" ,下一步.(这个正常安装也常见,普通安装和高级安装)

 

 

 

输入 "/u01/app/oracle/product/11.2.0/db_1" 作为路径. 文件设置"/u01/oradata". 设定数据库用户名,密码。数据库自行命名"RAC.localdomain".(地址预先规划的,特别新手对linux不熟悉,很多路径难以管理)

 

 

 

等待安装,中间遇到问题忽略,下一步

 

 

 

看到如下界面,选择完成.

 

 

 

等待安装.

 

 

 

自动弹出创建数据仓库DBCA.(这个DBCA就是所谓狭义数据库,里面可以创建表空间,表,视图等)

 

 

 

完成数据仓库安装,选择OK,继续安装.

 

 

 

出现如下提示,在所有结点下以root身份登录,全部结点执行以下两句脚本.(这个上篇集群配置有介绍,不详述)

 

 

 

选择关闭,完成安装.

 

 

 

以上对整个数据库配置,本篇比较容易,包括集群安装也是。重点难点还是对安装前配置比较麻烦,步骤比较多,重点心细。

发布了67 篇原创文章 · 获赞 9 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/robinhunan/article/details/103999815