Oracle RAC部署过程


部署环境如下:

VMware version:Workstation 12.0.0 build-2985596
Oracle版本:11G R2 grid/oracle 64位 11.2.0.1.0 for linux

Linux操作系统:Centos 6.5 64bit 

lsb_release -a 查看下系统版本信息

在window系统cmd下执行如下命令,磁盘大小参数自己可以根据需求更改配置:

vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\ocr.vmdk

vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\ocr2.vmdk

vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\votingdisk.vmdk

vmware-vdiskmanager.exe -c -s 30000Mb -a lsilogic -t 2 D:\Oracle_RAC\data.vmdk

vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\backup.vmdk

RAC1

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

配置虚拟机RAC1 RAC2目录下的vmx虚拟机配置文件,在行最后添加如下:

scsi1.present = "TRUE"

scsi1.virtualDev = "lsilogic"

scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"

scsi1:1.mode = "independent-persistent"

scsi1:1.filename = "D:\Oracle_RAC\ocr.vmdk"

scsi1:1.deviceType = "plainDisk"

scsi1:2.present = "TRUE"

scsi1:2.mode = "independent-persistent"

scsi1:2.filename = "D:\Oracle_RAC\votingdisk.vmdk"

scsi1:2.deviceType = "plainDisk"

scsi1:3.present = "TRUE"

scsi1:3.mode = "independent-persistent"

scsi1:3.filename = "D:\Oracle_RAC\data.vmdk"

scsi1:3.deviceType = "plainDisk"

scsi1:4.present = "TRUE"

scsi1:4.mode = "independent-persistent"

scsi1:4.filename = "D:\Oracle_RAC\backup.vmdk"

scsi1:4.deviceType = "plainDisk"

scsi1:5.present = "TRUE"

scsi1:5.mode = "independent-persistent"

scsi1:5.filename = "D:\Oracle_RAC\ocr2.vmdk"

scsi1:5.deviceType = "plainDisk"

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

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

关闭selinux

setenforce 0   

[root@rac1 ~]# vi /etc/selinux/config

SELINUX=disabled

关闭防火墙

service iptables stop

chkconfig iptables off

卸载NTP服务

[root@rac2 ~]# rpm -qa |grep ntp

[root@rac2 ~]# rpm -e --nodeps  ntp-4.2.6p5-1.el6.centos.x86_64

[root@rac2 ~]# rpm -e --nodeps  ntpdate-4.2.6p5-1.el6.centos.x86_64

[root@rac2 ~]#mv /etc/ntp.conf /etc/ntp.conf.bak

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

hostname rac1

hostname rac2

RAC1

eth0 192.168.100.103

eht1 10.10.10.100

RAC2

eth0 192.168.100.104

eth1 10.10.10.101

vi /etc/sysconfig/network

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

vi /etc/hosts

192.168.100.103 rac1

192.168.100.104 rac2

192.168.100.105 rac1-vip

192.168.100.108 rac2-vip

10.10.10.100   rac1-priv

10.10.10.101   rac2-priv

192.168.100.88  scan-ip

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

创建相关用户:

groupadd -g 1300 dba

groupadd -g 1301 oper

groupadd -g 1000 oinstall

groupadd -g 1200 asmadmin

groupadd -g 1201 asmdba

groupadd -g 1202 asmoper

useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -s /bin/bash grid  

useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -s /bin/bash oracle

设置相关账户密码:

passwd oracle  passwd grid

RAC1 RAC2相互配置ssh免秘钥登陆

在用户root oracle grid执行以下2行命令:

RAC1、RAC2:

ssh-keygen -t rsa

ssh-keygen -t dsa

切换用户配置以下ssh命令:

su - oracle

su - grid

RAC1

[oracle@RAC1 ~]$

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

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

ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys

ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys

[oracle@RAC1 .ssh]$ scp authorized_keys rac2:~/.ssh/

[oracle@RAC1 .ssh]$ chmod 600 authorized_keys

RAC2:

[oracle@RAC2 ~]$

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

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

ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys

ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys

[oracle@RAC2 .ssh]$ scp authorized_keys rac1:~/.ssh/

[oracle@RAC2 .ssh]$ chmod 600 authorized_keys

ssh rac1 date

ssh rac2 date

ssh rac1-priv date

ssh rac2-priv date

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

配置目录

mkdir -p  /u01/app/11.2.0/grid

mkdir -p /u01/app/grid

mkdir -p /u01/app/oracle

chown -R grid:oinstall /u01

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

chown grid:oinstall /u01/app/grid

chown oracle:oinstall /u01/app/oracle

chmod -R 775 /u01/

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

设置内核文件:

vi /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4398046511104

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 = 1048586

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

参考值:

kernel.shmmax =1054472192 (参考值)

sysctl -p 立即生效

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

配置系统文件

vi /etc/security/limits.conf

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

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

配置grid和oracle用户环境变量

su - oracle

ORACLE环境变量

vi .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=orcl1  # RAC1

export ORACLE_SID=orcl2  # RAC2

export ORACLE_UNQNAME=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export TNS_ADMIN=$ORACLE_HOME/network/admin

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

umask 022

使配置文件生效 source .bash_profile

GRID环境变量

su - grid

vi .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM1  # RAC1

# export ORACLE_SID=+ASM2  # RAC2 配置一个即可

export ORACLE_BASE=/u01/app/grid

export ORACLE_HOME=/u01/app/11.2.0/grid

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

umask 022

使配置文件生效 source .bash_profile

配置login

[root@rac1 ~]# vi /etc/pam.d/login

session required pam_limits.so

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

配置裸盘:

查看未格式化的磁盘

fdisk -l

ls /dev/sd*

fdisk格式化命令:

fdisk /dev/sdb

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

最后 w 命令保存更改

Command (m for help): w

依次执行:

fdisk /dev/sdb

fdisk /dev/sdd

fdisk /dev/sdc

fdisk /dev/sdf

fdisk /dev/sde

vi /etc/udev/rules.d/60-raw.rules

ACTION=="add",KERNEL=="/dev/sdb1",RUN+='/bin/raw /dev/raw/raw1 %N"

ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"

ACTION=="add",KERNEL=="/dev/sdc1",RUN+='/bin/raw /dev/raw/raw2 %N"

ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"

ACTION=="add",KERNEL=="/dev/sdd1",RUN+='/bin/raw /dev/raw/raw3 %N"

ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"

ACTION=="add",KERNEL=="/dev/sde1",RUN+='/bin/raw /dev/raw/raw4 %N"

ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw /dev/raw/raw4 %M %m"

ACTION=="add",KERNEL=="/dev/sdf1",RUN+='/bin/raw /dev/raw/raw5 %N"

ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="81",RUN+="/bin/raw /dev/raw/raw5 %M %m"

ACTION=="add",KERNEL=="raw[1-5]",OWNER="grid",GROUP="asmadmin",MODE="660"

在RAC1和RAC2执行下同步命令:partprobe

执行这个命令查看下:ll /dev/raw/raw*

查看裸盘信息:

[root@rac2 ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda      8:0    0   40G  0 disk

├─sda1   8:1    0 1000M  0 part /boot

├─sda2   8:2    0  3.9G  0 part [SWAP]

└─sda3   8:3    0 35.1G  0 part /

sdb      8:16   0 19.5G  0 disk

└─sdb1   8:17   0 19.5G  0 part

sdc      8:32   0 19.5G  0 disk

└─sdc1   8:33   0 19.5G  0 part

sdd      8:48   0 29.3G  0 disk

└─sdd1   8:49   0 29.3G  0 part

sde      8:64   0 19.5G  0 disk

└─sde1   8:65   0 19.5G  0 part

sdf      8:80   0 19.5G  0 disk

└─sdf1   8:81   0 19.5G  0 part

sr0     11:0    1  4.2G  0 rom  

挂载光驱

mount /dev/sr0 /media/CentOS_6.5_Final (参考命令:mount /dev/cdrom /mnt/cdrom/ )

vi /etc/yum.repos.d/dvd.repo

[dvd]

name=dvd

baseurl=file:///media/CentOS_6.5_Final

gpgcheck=0

enabled=1

:wq!

安装依赖包:

[root@rac1 ~]# yum clean all

[root@rac1 ~]# yum makecache

[root@rac1 ~]# yum install gcc gcc-c++ glibc* glibc-devel* ksh libgcc* libstdc++* libstdc++-devel* make sysstat

yum install binutils-2* compat-libcap1-1* compat-libstdc* gcc-4* gcc-c++-4* glibc-2* glibc-devel-2* libgcc-4* libstdc++-4* libstdc++-devel-4* libaio-0* libaio-devel-0* make-3* sysstat-9* -y

mv /etc/yum.repos.d/CentOS-Base.repo  /root

mv /etc/yum.repos.d/CentOS-Debuginfo.repo  /root

mv /etc/yum.repos.d/CentOS-Media.repo  /root

mv /etc/yum.repos.d/CentOS-Vault.repo  /root

cp /root/CentOS-Base.repo /etc/yum.repos.d

cp /root/CentOS-Debuginfo.rep /etc/yum.repos.d

cp /root/CentOS-Media.repo /etc/yum.repos.d

cp /root/CentOS-Vault.repo /etc/yum.repos.d

yum install -y glibc-devel-2.12-1.209.el6_9.2.i686

yum install -y libstdc++-4.4.7-18.el6.i686

yum install -y glibc.i686  glibc.x86_64

yum install -y elfutils-libelf-devel.i686

yum install -y elfutils-libelf*

进grid下面安装

cvuqdisk包

xhost +  #使所有用户都能访问图形桌面,这步需要在图形界面操作

date -s 18:00:00

/u01/app/oraInventory/orainstRoot.sh

/u01/app/11.2.0/grid/root.sh

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

/u01/app/11.2.0/grid/crs/install/crsconfig_params

[root@rac1 grid]# /u01/app/11.2.0/grid/root.sh

Running Oracle 11g root.sh script...

The following environment variables are set as:

    ORACLE_OWNER= grid

    ORACLE_HOME=  /u01/app/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]: y

   Copying dbhome to /usr/local/bin ...

The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]: y

   Copying oraenv to /usr/local/bin ...

The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]: y

y   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

2017-08-03 18:31:49: Parsing the host name

2017-08-03 18:31:49: Checking for super user privileges

2017-08-03 18:31:49: User has super user privileges

Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

CRS is already configured on this node for crshome=0

Cannot configure two CRS instances on the same cluster.

Please deconfigure before proceeding with the configuration of new home.

[root@rac1 grid]#

卸载命令

$GRID_HOME/crs/install/roothas.pl -delete -force -verbose

/u01/app/11.2.0/grid/crs/install/rootcrs.pl -delete -force -verbose

Existing OCR configuration found, aborting the configuration. Rerun configuration setup after deinstall at /u01/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 10302.

确定RAC是否OK

su  - grid

crsctl status resource -t