Monday, June 30, 2014

Oracle 12c - RAC Clusterware Setup using VMWare

#################################
Oracle 12c RAC Clusterware Setup
#################################

======================
HOST SYSTEMS SETUP
=====================
127.0.0.1       localhost.localdomain localhost
#Public
192.168.168.80 RAC1.rac.lab RAC1
192.168.168.81 RAC2.rac.lab RAC2
#Private
10.10.10.80  RAC1.rac.lab RAC1-priv
10.10.10.81  RAC2.rac.lab RAC2-priv
#VIP
192.168.168.82  RAC1-vip.rac.lab RAC1-vip
192.168.168.83  RAC2-vip.rac.lab RAC2-vip
#SCAN NAME - SCAN-RAC
192.168.168.84  SCAN-RAC.rac.lab SCAN-RAC
192.168.168.85  SCAN-RAC.rac.lab SCAN-RAC
192.168.168.86  SCAN-RAC.rac.lab SCAN-RAC


======================
OS GROUP USER SETUP
=====================
[root@rac1 yum.repos.d]# groupadd oinstall -g 9000
[root@rac1 yum.repos.d]#  groupadd asmadmin -g 9001
[root@rac1 yum.repos.d]# groupadd asmdba -g 9002
[root@rac1 yum.repos.d]# groupadd asmoper -g 9003

[root@rac1 yum.repos.d]# useradd -m -u 9100 -g oinstall -G asmadmin,asmdba,asmoper grid

[root@rac1 yum.repos.d]# groupadd dba -g 9200
[root@rac1 yum.repos.d]# groupadd oper  -g 9201
[root@rac1 yum.repos.d]# useradd -m -u 9300 -g oinstall -G dba,oper,asmdba oracle
[root@rac1 yum.repos.d]# passwd oracle
[root@rac1 yum.repos.d]# passwd grid



=============================
GI & ORACLE ORACLE_HOME DIR
=============================
For Grid Infrastrucutre: owned by grid with oinstall group
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/12cR1/grid

For Oracle RDBMS: owned by oracle with oinstall group
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/12cR1

[root@rac2 ~]# mkdir -p /u01/app/grid
[root@rac2 ~]# mkdir -p /u01/app/12cR1/grid
[root@rac2 ~]# chown -R grid:oinstall /u01
[root@rac2 ~]#  mkdir -p /u01/app/oracle
[root@rac2 ~]# chown oracle:oinstall /u01/app/oracle
[root@rac2 ~]# su - oracle
[oracle@rac2 ~]$ cd /u01/app/oracle/
[oracle@rac2 oracle]$  mkdir -p 12cR1


======================
ENV VARIABLES
=====================
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ vi .bash_profile

ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/12cR1/grid; export ORACLE_HOME
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:.
export PATH

[root@rac1 ~]# su - oracle

ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/12cR1; export ORACLE_HOME
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:.
export PATH


=========================
SELINUX & FIREWALL
=========================
[root@rac1 ~]# vi /etc/selinux/config
SELINUX=disabled

[root@rac1 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          disabled
Policy version:                 26
Policy from config file:        targeted

[root@rac1 ~]# /etc/rc.d/init.d/iptables stop
[root@rac1 ~]# /etc/rc.d/init.d/ip6tables stop

[root@rac1 ~]# chkconfig iptables off
[root@rac1 ~]# chkconfig ip6tables off

[root@rac1 ~]# /sbin/service ntpd stop
[root@rac1 ~]# chkconfig ntpd off

[root@rac1 ~]# mv /etc/ntp.conf /etc/ntp.conf.orig


=========================
ORACLE PUBLIC REPO
=========================
# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol6.repo

###Modify .repo to look like this
[root@RAC1 yum.repos.d]# cat public-yum-ol6.repo
[ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1

[ol6_addons]
name=Oracle Linux $releasever Add Ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/addons/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1

[ol6_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1

[root@RAC2 ~]# yum clean all


=========================
PRE-INSTALL RPM
=========================
# yum install oracle-rdbms-server-12cR1-preinstall

##INSTALL cvuqdisk-1.0.9-1.rpm
Note: Copy the .rpm from /tmp/grid/rpm folder to /tmp
[root@RAC1 tmp]# rpm -iv cvuqdisk-1.0.9-1.rpm

[root@RAC1 tmp]# cat /etc/resolv.conf
# Generated by NetworkManager
search rac.lab

=========================
ASMLIB INSTALLATION
=========================
[root@rac1 ~]# yum -y install kmod-oracleasm
[root@rac1 ~]# yum -y install oracleasm-support
[root@rac1 ~]# cd /tmp
[root@rac1 tmp]# rpm -Uvh oracleasmlib-2.0.4-1.el6.x86_64.rpm

[root@RAC1 tmp]# rpm -qa | grep oracleasm


=========================
ORACLE ASM CONFIGURATION
=========================
[root@rac1 tmp]# /usr/sbin/oracleasm configure -i
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin

[root@rac1 tmp]# /usr/sbin/oracleasm init


=========================
GRID SOFTWARE DOWNLOAD
=========================
[root@RAC1 tmp]# chown -R grid:oinstall grid
[root@RAC1 tmp]# chmod -R u+x grid

#### SHUTDOWN BOTH NODES ####


=========================
ASM CLUSTERED SHARED DISK
=========================
Note: Add 40GB Hard Disk on RAC1
Note: Change Disk to go SCSI 1:0
Note: INDEPENDANT - PERSISTENT MODE

Add following lines in RAC1.vmx RAC2.vms

disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1.sharedBus = "virtual"

#### REBOOT BOTH NODES ####

NODE 1:
[root@RAC1 ~]# fdisk /dev/sdb
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-5221, default 1):
Command (m for help): t
Hex code (type L to list codes): 8e
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@RAC1 ~]# cat /proc/partitions

NOTE 2:
[root@RAC2 ~]# fdisk /dev/sdb
Command (m for help): p
Command (m for help): w

NODE 1:
[root@RAC1 ~]# /usr/sbin/oracleasm init
[root@RAC1 ~]# /usr/sbin/oracleasm scandisks
[root@RAC1 ~]# /usr/sbin/oracleasm listdisks
[root@RAC1 ~]# /usr/sbin/oracleasm createdisk SANDISK1 /dev/sdb1
[root@RAC1 ~]# /usr/sbin/oracleasm scandisks
[root@RAC1 ~]# /usr/sbin/oracleasm listdisks

NODE 2:
[root@RAC2 ~]# /usr/sbin/oracleasm init
[root@RAC2 ~]# /usr/sbin/oracleasm scandisks
[root@RAC2 ~]# /usr/sbin/oracleasm listdisks


#### RUN INSTALLER ON RAC1 - This should install GI with no issues

Enjoy....Abid Malik

No comments:

Post a Comment