Instalación Paso a Paso de Oracle 12C + ASM sobre CentOS 7
Siguenos en nuestro canal de youtube y Redes
- https://youtube.com/c/codigolibrerd
- https://www.instagram.com/codigolibrerd/
- https://twitter.com/codigolibrerd
- https://www.facebook.com/codigolibre.org
www.codigolibre.org
www.acl.edu.do
Inicio
Paso:-0 –> Instalar Vagrant & VirtualBox
- Instalacion de CentOS 7
- Configuracion y Personalizacion Vagrant en tu mald*** Windows
- Instalación Vagrant & VirtualBox + CentOS 8 en MacBookPro👨💻
- Mi –> Vagrantfile
- Descargue Oracle Oracle Database 12c Release 2 (12.2.0.1.0) for Linux x86-64
- Descargue Grid Oracle Database 12c Release 2 Grid Infrastructure (12.2.0.1.0) for Linux x86-64
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