Instalación Paso a paso de Oracle 12C + ASM en CentOS 7 👀🗣

Instalación Paso a Paso de Oracle 12C + ASM sobre CentOS 7

Siguenos en nuestro canal de youtube y Redes

Inicio

Paso:-0 –> Instalar Vagrant & VirtualBox

Paso:1 –> Cambiamos el timezone:

root@academia:~# hostnamectl
root@academia:~# timedatectl set-timezone America/Santo_Domingo

Paso:2–> Configuración de red, IP, nombre de red en /etc/hosts:

root@academia:~# echo `hostname -I |cut -d' ' -f2` `hostname`  `hostname -s` >> /etc/hosts

Paso:3–> Desactivamos el SeLinux y el Firewalld:

root@academia:~# sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/selinux/config
root@academia:~# systemctl stop firewalld
root@academia:~# systemctl disable firewalld

Paso:4–> Paquetes necesarios y alqunos adicionales:

root@academia:~# yum -y localinstall  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 

root@academia:~# yum install -y nmap dnsmasq libstdc++-devel.i686 zlib-devel.i686 smartmontools device-mapper-multipath device-mapper-multipath-libs  nfs-utils htop bzip2 mlocate libnfsidmap ntp bind-utils sshpass telnet vim unixODBC.i686 unzip libaio.i686 ksh libaio elfutils-libelf-devel libaio-devel.i686 libaio-devel gcc unixODBC unixODBC-devel sysstat rlwrap elfutils-devel libstdc++-devel compat-libstdc++-33.i686 unixODBC-devel.i686 elfutils-libelf.i686 libstdc++.i386 libstdc++.i686 libstdc++.x86_64 zenity  gcc-c++ glibc glibc.i686 glibc-common glibc-headers glibc-devel.i686 wget xclock xauth xdpyinfo glibc-devel compat-libstdc++-33 compat-libcap1 openssh* libXp* binutils.x86_64 libstdc++-devel gsmartcontrol.x86_64 oracle-epel-release-el7 net-tools

Paso:5–> Creacion de grupos para Usuario Oracle:

root@academia:~# groupadd -g 54321 oinstall
root@academia:~# groupadd -g 54322 dba
root@academia:~# groupadd -g 54323 oper
root@academia:~# groupadd -g 54324 backupdba
root@academia:~# groupadd -g 54325 asmdba
root@academia:~# groupadd -g 54326 dgdba
root@academia:~# groupadd -g 54327 kmdba
root@academia:~# groupadd -g 54328 asmadmin
root@academia:~# groupadd -g 54329 asmoper
root@academia:~# groupadd -g 54330 racdba

Paso:6–> Añadiendo el usuarios Grid & Oracle, especificándole los grupos a los que pertenece:

root@academia:~# useradd -u 54321 -g oinstall -G dba,asmadmin,asmdba,asmoper,racdba grid
root@academia:~# useradd -u 54322 -g oinstall -G  dba,oper,asmdba,racdba,backupdba,dgdba,kmdba oracle

Paso:7–> Seteando password a los Usuario Grid & Oracle:

root@academia:~# echo pomavid9 | passwd oracle --stdin
root@academia:~# echo pomavid9 | passwd grid --stdin

Paso:8–> Creando directorio para el Grid & Oracle:

root@academia:~# mkdir -p /opt/app/grid
root@academia:~# mkdir -p /opt/app/oracle/product/12.2.0.1/dbhome_1
root@academia:~# mkdir -p /opt/app/grid/product/12.2.0.1/ASM

Paso:9–> Cambiando los permisos y dueño de los directorios:

root@academia:~# chown -R grid:oinstall /opt/app
root@academia:~# chown oracle:oinstall /opt/app/oracle
root@academia:~# chmod -R 775 /opt/app

Paso:10–> Preparación del entorno del usuario Grid:

root@academia:~# cat >> /home/grid/.bashrc <<EOF
# Grid JP) 
umask 022
ORACLE_SID=+ASM; export ORACLE_SID
ORACLE_BASE=/opt/app/grid; export ORACLE_BASE
ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/ASM; export ORACLE_HOME
export ORACLE_HOSTNAME=$(uname -n)
INVENTORY_LOCATION=/opt/app/oraInventory; export INVENTORY_LOCATION
ORACLE_TERM=xterm; export ORACLE_TERM
TNS_ADMIN=\$ORACLE_HOME/network/admin; export TNS_ADMIN
PATH=\$ORACLE_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
NLS_DATE_FORMAT='dd-mon-yyyy hh24:mi:ss' ; export NLS_DATE_FORMAT
LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib; export LD_LIBRARY_PATH
CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib; export CLASSPATH
JAVA_HOME=/usr/local/java; export JAVA_HOME
export TEMP=/tmp
export TMPDIR=/tmp
export histize=5000
alias sqlplus="rlwrap sqlplus"
alias sql="sqlplus / as sysasm"
PS1='\[\033[01;32m\]\u\[\033[01;34m\]@\[\033[01;33m\]\h\[\033[00;33m\]:\[\033[01;34m\]\w\[\033[00m\]$ '
EOF

Paso:11–> Preparación del entorno del usuario Oracle:

root@academia:~# cat >> /home/oracle/.bashrc <<EOF
umask 022
ORACLE_SID=`hostname -s`; export ORACLE_SID
ORACLE_UNQNAME=`hostname -s` ;export ORACLE_UNQNAME
ORACLE_HOSTNAME=`uname -n`; export ORACLE_HOSTNAME
ORACLE_BASE=/opt/app/oracle; export ORACLE_BASE
ORACLE_HOME=/opt/app/oracle/product/12.2.0.1/dbhome_1; export ORACLE_HOME
INVENTORY_LOCATION=/opt/app/oraInventory; export INVENTORY_LOCATION
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=\$ORACLE_HOME/bin:$PATH; export PATH
NLS_DATE_FORMAT='dd-mon-yyyy hh24:mi:ss' ; export NLS_DATE_FORMAT
LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib; export LD_LIBRARY_PATH
CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib; export CLASSPATH
TNS_ADMIN=\$ORACLE_HOME/network/admin ;export ORACLE_HOME
export TEMP=/tmp
export TMPDIR=/tmp
export histize=5000
PS1='${jp_acl:+($jp_acl)}\[\033[01;32m\]\u\[\033[01;34m\]@\[\033[01;33m\]\h\[\033[00;33m\]:\[\033[01;34m\]\w\[\033[00m\]$ '
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

alias sqlplus="rlwrap sqlplus"
alias sql="sqlplus / as sysdba"
alias adrci="rlwrap adrci"
EOF

Paso:12–> Configuración de los parámetros del kernel para Oracle:

root@academia:~# cat >> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500 
EOF

Paso:13–> Límites usuario oracle y grid en shell:

root@academia:~# cat >> /etc/security/limits.conf <<EOF
# Para los que integrante del grupo oinstall 
@oinstall        soft   nproc      16384
@oinstall        hard   nproc      16384
@oinstall        soft   nofile     8192
@oinstall        hard   nofile     65536
@oinstall        soft   stack      10240
@oinstall        hard   stack      32768
@oinstall        hard   memlock    134217728
@oinstall        soft   memlock    134217728
 
@root             soft nproc  4096
@root             hard nproc  16384
@root             soft nofile 8192
@root             hard nofile 65536
EOF

root@academia:~# cat >> /etc/pam.d/login <<EOF
# jp Oracle
session required /lib64/security/pam_limits.so
session required pam_limits.so
EOF

#[Refresca parámetros del kernel]

root@academia:~# sysctl -p
root@academia:~# exit

Paso:14–> Copiamos el Software del Grid:

root@jpora:~# scp V840012-01.zip grid@192.168.56.10: 

Paso:15–> Copiamos el Software de la Bases Datos:

root@jpora:~# scp V839960-01.zip oracle@192.168.56.10: 

Paso:16–> Descomprimimos el GRID:

grid@academia:~$ unzip V840012-01.zip -d $ORACLE_HOME

Paso:17–> Instalamos Paquete CVUQDISK:

root@academia:~# rpm -Uvh /opt/app/grid/product/12.2.0.1/ASM/cv/rpm/cvuqdisk-1.0.10-1.rpm

Paso:18–> Creamos archivo para iniciar las Reglas de UdeV:

root@academia:~# echo "options=-g" > /etc/scsi_id.config

Paso:19–> Particionamos nuestros Discos:

root@academia:~# lsblk

root@academia:~# 
for i in `ls /dev/sd* |grep -v sda |grep -v 1` ;do
echo "u
n
p
1


w
"|fdisk $i ;done

root@academia:~# lsblk

Paso:20–> Creamos las Reglas de UdeV para los Discos:

root@academia:~# cd /dev
i=1
cmd="/usr/lib/udev/scsi_id -g -u -d"
for disk in `ls sd* |grep -v sda |grep -v 1` ; do
         cat <<EOF >> /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="$cmd /dev/\$parent", \
RESULT=="`$cmd /dev/$disk`", SYMLINK+="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660"
EOF
         i=$(($i+1))
done

Paso:21–> Vemos las reglas creadas:

root@academia:~# cat /etc/udev/rules.d/99-oracle-asmdevices.rules

Paso:22–> Aplicamos las Reglas

root@academia:~# cd /dev
for i in `ls sd* |grep -v sda |grep -v 1` 
do
partprobe /dev/$i
udevadm test /sys/block/$i
udevadm control --reload-rules
done

Paso:23–> Comprobamos que fueron aplicadas

root@academia:~# ls -ltrh /dev/sd?? |grep  asmadmin

Paso:24–> Iniciamos proceso de Instalacion del GRID y Ejecutamos :

ssh -X grid@192.168.56.10

Paso:25–> Ejecutamos el Script para iniciar la instalacion del GRID:

grid@academia:~# $ORACLE_HOME/gridSetup.sh 

Paso:26–> Cambiar el Prompt de SQLPLUS para el Usuario GRID:

grid@academia:~# $ echo  set sqlprompt "_user'@'_connect_identifier:)> " >> $ORACLE_HOME/sqlplus/admin/glogin.sql

grid@academia:~# $  sqlplus / as sysasm

Paso:27–> Validacion de instalacion Exitosa 🥶:

SQL> Select NAME,STATE,TYPE,TOTAL_MB from v$asm_diskgroup;

grid@academia:~# $ ps aux |grep -i ASM

Paso:28–> Crearemos los DiskGroup para la DATA y el FRA:

grid@academia:~# asmca 

SQL> Select NAME,STATE,TYPE,TOTAL_MB from v$asm_diskgroup;

grid@academia:~# $ ps aux |grep -i ASM

Paso:29–> Realizamos una nueva conexion con el usuario Oracle:

ssh -X oracle@192.168.56.10

Paso:30–> Descomprir el Software:

oracle@academia:~# unzip V839960-01.zip

Paso:31–> Iniciamos la instalacion del Software:

oracle@academia:~# database/runInstaller 

Paso:32–> Ejecutamos el Scripts root.sh:

root@academia:~# /opt/app/oracle/product/12.2.0.1/dbhome_1/root.sh

Paso:33–> Iniciamos la instalacion de la Instancia:

oracle@academia:~# dbca 

Paso:34–> Cambiar el Prompt de SQLPLUS para el Usuario Oracle:

oracle@academia:~# $ echo  set sqlprompt "_user'@'_connect_identifier:)> " >> $ORACLE_HOME/sqlplus/admin/glogin.sql

oracle@academia:~# $  sqlplus / as sysdba

Paso:35–> Validacion de instalacion Exitosa 🤲:

SQL> Select username from dba_users;

oracle@academia:~# $ ps aux |grep -i jpora

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

X