Guía en español sobre la instalación de Oracle 12.2.0.1 en Ubuntu 18.04 TLS.
-
Cursos Paso a Paso
,
Noticias
,
Oracle
,
Oracle VM
,
Trucos
,
VirtualBox
Edit
Hola Amig@s,
A continuación una breve guía de instalación paso a paso Oracle 12.2.0.1 en Ubuntu 18.04 TLS. Si bien Ubuntu no es una distribución soportada por Oracle (cuando decimos no soportada, es que Oracle no ha realizado pruebas en esta distribución de Linux) no quiere de decir que no funcione.
Esta guía soluciona alguno de los problemas encontrados en otras guías de instalación.
Descargar el Oracle 12.2.0.1 para linux 64bits.
Añadir permisos:
sudo groupadd -g 502 oinstall
sudo groupadd -g 503 dba
sudo groupadd -g 504 oper
sudo groupadd nobody
sudo groupadd -g 505 asmadmin
sudo useradd -u 502 -g oinstall -G dba,asmadmin,oper -s /bin/bash -m oracle
sudo adduser oracle sudo
sudo passwd oracle
oracle
sudo mkdir -p /u01/app/oracle/product/12/dbhome_1
sudo mkdir -p /tmp/database
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
sudo chown -R oracle:oinstall /tmp/database
Configurar la red:
sudo nano /etc/hosts
Añadir 127.0.0.1 localhost.localdomain
Añadir permisos a X:
xhost +127.0.0.1
xhost +
Variables de configuración:
sudo nano /etc/sysctl.conf
#### Oracle 12c R2 Kernel Parameters ####
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 818227
kernel.shmmax = 4189323264
kernel.shmmni = 4096
kernel.panic_on_oops = 1
# semaphores: semmsl, semmns, semopm, semmni
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
sudo nano /etc/security/limits.conf
#### oracle User Settings 4 Oracle 12c R2 ####
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
sudo /sbin/sysctl -p
Configuración de las variables de entorno:
su oracle
nano ~/.bashrc
Nota: Cambiar NOMBREDB por el nombre de la bbdd que tendrá la instancia. Cambiar HOSTNAME por la IP que tiene la maquina en curso.
# Oracle Settings
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_HOSTNAME=[HOSTNAME];
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/12/dbhome_1;
export ORACLE_SID=[NOMBREDB];
export ORACLE_UNQNAME=$ORACLE_SID;
export PATH=/usr/sbin:$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
bash
Instalación del paquetes:
sudo apt update
sudo apt install unixodbc unixodbc-dev unzip lsb-cxx pdksh sysstat gcc g++-multilib \
lib32ncurses5 lib32z1 ksh lesstif2 zlibc rpm libc6 libc6-dev libc6-dev-i386 libc6-i386 \
gcc-multilib less lib32z1 libelf-dev binutils libodbcinstq4-1 libpth-dev zenity \
libpthread-stubs0 libstdc++5 autotools-dev bzip2 elfutils g++ rlwrap libltdl-dev \
libxm4:i386 libuil4:i386 libmrm4:i386 libxm4 libuil4 libmrm4 libmotif-common \
libpthread-stubs0-dev build-essential expat gawk alien autoconf automake \
lesstif2-dev
sudo su -c "echo 'deb [trusted=yes] http://cz.archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list.d/extra.list"
sudo apt update
sudo apt install lesstif2 lesstif2-dev pdksh libaio-dev libpthread-stubs0 lsb-cxx
sudo apt remove /etc/apt/sources.list.d/extra.list
sudo apt update
sudo apt-mark hold libaio-dev lesstif2 lesstif2-dev pdksh libpthread-stubs0 lsb-cxx
Creación de symlinks.
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/libgcc_s.so.1
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/libgcc_s.so.1
sudo ln -sf /bin/bash /bin/sh
Instalación del software de Oracle:
chmod -R +x /tmp/database
xhost +SI:localuser:oracle
Nos cambiamos de usuario al usuario oracle:
su oracle
oracle
Descomprimirlo en tmp:
sudo mount -t tmpfs -o exec tmpfs /tmp
sudo mount -o remount,size=5G tmpfs /tmp
sudo chmod o+rwx /tmp
unzip -d /tmp linuxx64_122*.zip
Arrancamos la instalación:
/tmp/database/runInstaller
Nota: Seleccionar solo instalación del software, más tarde crearemos la instancia de base de datos.
Si al arrancar la instalación nos devuelve el error:
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Ejecutar como root:
xhost +
Si nos indica que nos falta memoria Swap o está a 0 hay que incrementar el tamaño del fichero de intercambio (puede que haya que hacerlo antes de descomprimir):
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
sudo mkswap /swapfile
sudo swapon /swapfile
grep SwapTotal /proc/meminfo
Luego reintentar la instalación nuevamente:
/tmp/database/runInstaller
Durante la instalación:
su root
contraseña de root
sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/12/dbhome_1/root.sh
Nota: En el caso de que se nos aparezca un error en el instalador con el Oracle Net Configuration Assistant, simplemente reintentarlo al cabo de unos minutos.
Tras la instalación:
Ejecutar el siguiente comando:
cd $ORACLE_HOME/lib/stubs
rm libc*
cd ../../bin
./relink all
Modificando los scripts dbstart y dbshut.
Los scripts dbstart y dbshut que se encuentran en la carpeta bin de la instalación de oracle, tienen definidos las variables de configuración. Como Oracle no ha certificado la instalación en ubuntu, hay que realizar un pequeño cambio en ellos.
La variable ORACLE_HOME_LISTNER=$1 hay que cambiarla por ORACLE_HOME_LISTNER=$ORACLE_HOME en ambos ficheros.
Mantenimiento de temporales:
sudo apt-get autoremove --purge
sudo apt-get autoclean
sudo rm -rf /var/log/*
Creando la instancia de BBDD:
Para crear nuestra instancia de BBDD tras la instalación del software, podemos hacerlo con el comando dbca o el siguiente comando por consola (lo malo es que si hay un error no muestra nada):
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname DBTESTA -sid DBTESTA -responseFile NO_VALUE \
-characterSet WE8MSWIN1252 \
-sysPassword sys \
-systemPassword sys \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 2048 \
-storageType FS \
-datafileDestination "/u01/app/oracle/oradata/" \
-redoLogFileSize 500 \
-emConfiguration NONE \
-ignorePreReqs
Si al arrancar el DBCA nos devuelve el siguiente error:
No protocol specified
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
Debéis ejecutar el siguiente comando como root:
su root
contraseña de root
xhost +SI:localuser:oracle
Si al intentar crear la instancia con el DBCA nos devuelve el error de startup / shutdown in progress. Se debe ha que hay una instancia de oracle corriendo. Debemos matar y liberar toda ejecución de Oracle para que sea el propio DBCA quien se encargue de ello.
$ sysresv
Shared Memory:
ID KEY
5963791 0x00000000
5996562 0x00000000
6029333 0xb2e3c9ac
Solución:
A nivel de sistema operativo hay que quitar las areas de memoria compartida utilizando el comando:
ipcrm -m <problem shared memory id>
$ ipcrm -m 5963791
$ ipcrm -m 5996562
$ ipcrm -m 6029333
$sqlplus '/as sysdba'
sudo rm $ORACLE_HOME/dbs/lk*
sudo sysctl -w kernel.shmall=9272480
Nota: Solución de problemas con la memoria compartida.
SQL> startup
ORA-01012: not logged on
Incidencia:
Oracle ha sido cerrado de forma forzada con un shutdown o a nivel de SO.
Buscar si hay instancias corriendo:
ps -ef | grep $ORACLE_SID
Si no muestra ningún proceso corriendo, hay que utilizar la utilidad 'sysresv'.
$ sysresv
Shared Memory:
ID KEY
5963791 0x00000000
5996562 0x00000000
6029333 0xb2e3c9ac
Solución:
A nivel de sistema operativo hay que quitar las areas de memoria compartida utilizando el comando:
ipcrm -m <problem shared memory id>
$ ipcrm -m 5963791
$ ipcrm -m 5996562
$ ipcrm -m 6029333
sudo rm $ORACLE_HOME/dbs/lk*
Añadir excepciones al firewall de Ubuntu:
sudo iptables -I INPUT -p tcp --dport 1536 -j ACCEPT
sudo iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 1536 -j ACCEPT
sudo iptables-save
sudo ufw allow from 192.168.1.0/24 to any port 1536 proto tcp
Acceso remoto a Ubuntu por SSH:
sudo apt update
sudo apt install openssh-server
Referencias:
https://tutorialforlinux.com/2019/09/17/how-to-install-oracle-12c-r2-database-on-ubuntu-18-04-bionic-64-bit-easy-guide/
https://medium.com/venturenxt/install-oracle-database-12c-on-ubuntu-16-04-c081d51c0f9d
Recuerda: Si utilizas esta guía, al menos cita la fuente.. ¿no?.
Espero que les resulte útil.
Salu2.
0 comentarios:
Publicar un comentario