Requisitos
RAM
Mínimo 1 gigabyte, recomendado 2 gigabytes.
Espacio del disco
Mínimo 10 gigabytes
SWAP
El espacio mínimo de intercambio recomendado para Oracle Database XE es de 2 GB
o el doble del tamaño de RAM, lo que sea menor.
Instalación (en una MV QUEMU/KVM)
Turorial basado en: https://www.youtube.com/watch?v=2ZCYkGHEwzw con modificaciones para la versión XE 18c
También me he apoyado en la respuesta de Yves Moriceau-Oracle en https://community.oracle.com/thread/4180520?start=0&tstart=0
[En el anfitrión]
Dsecargar
Oracle Database 18c Express Edition for Linux x64
Convertir el paquete de formato RPM al formato DEB (Este formato es el usado por ubuntu)
usando el comando alien (Instalar previamente alien):
sudo apt install alien
sudo alien –scripts -d oracle-database-xe-18c-1.0-1.x86_64.rpm
Tardará un GRAN rato, ¡Mucha paciencia! (La razón de ejecutarlo en el anfitrión es para que tarde
menos que si lo ejecutásemos en la MV, porque tira de bastantes recursos.)
Copiar el .deb resultante por SCP a nuestro servidor de Oracle XE en la MV
scp oracle-database-xe-18c_1.0-2_amd64.deb evaristo@192.168.1.27:~
[En el servidor Oracle XE en nuestra MV]
Instalar los paquetes necesarios con el comando:
sudo apt-get install libaio1 unixodbc
Crear el script chkconfig requerido usando el comando:
sudo nano /sbin/chkconfig
El editor de texto nano se inició y los comandos se muestran en pantalla. Ahora, copiamos y
pegamos lo siguiente dentro del fichero y guardamos:
Cambiamos los permisos del fichero chkconfig usando el comando:
sudo chmod 755 /sbin/chkconfig
Establecemos los parámetros del kernel.
sudo nano /etc/sysctl.d/60-oracle.conf
Copiamos lo siguiente dentro del fichero y guardamos:
Verificamos el cambio usando el comando:
sudo cat /etc/sysctl.d/60-oracle.conf
Deberíamos ver lo que escribimos anteriormente. Ahora cargamos los parámetros del núcleo:
sudo service procps start
Verificamos que los parámetros se cargaron mediante:
sudo sysctl -q fs.file-max
Deberíamos poder observar el valor máximo del fichero que introducimos anteriormente.
Configuramos un punto de montaje /dev/shm para Oracle. Creamos el siguiente fichero
usando el comando:
sudo nano /etc/rc2.d/S01shm_load
Copiamos lo siguiente dentro del fichero y guardamos:
Cambiamos los permisos del fichero usando el comando:
sudo chmod 755 /etc/rc2.d/S01shm_load
*REINICIAMOS NUESTRA MÁQUINA VIRTUAL*
—AHORA SÍ, LA INSTALACIÓN DEL SISTEMA GESTOR—
Instalamos el sistema gestor de oracle usando el comando:
sudo dpkg –install oracle-database-xe-18c_1.0-2_amd64.deb
Nos informa de que fichero debemos de editar y que scripts debemos ejecutar como root.
Editamos pues el fichero, y añadimos el LISTENER_PORT
sudo nano /etc/sysconfig/oracle-xe-18c.conf
Arrancamos el script como root:
sudo /etc/init.d/oracle-xe-18c configure
Establecemos la contraseña para SYS
La primera vez nos dará Listener configuration failed
Volvemos a ejecutar el scrript:
sudo /etc/init.d/oracle-xe-18c configure
El error de memoria no debe preocuparnos, optaremos por una ejecución manual.
Configuramos las variables de entorno editando nuestro fichero .bashrc :
nano ~/.bashrc
Ejecutamos los cambios ejecutando nuestro perfil:
. ~/.profile
Agregamos un usuario USUARIO al grupo dba usando el comando:
sudo usermod -a -G dba evaristo
Asignamos password a oracle
sudo passwd oracle
Nos conectamos como oracle
su oracle
Cargamos el .bashrc de nuestro anterior usuario
source /home/evaristo/.bashrc
Creamos la tabla
Creamos initXE.ora
exit
sudo su
cp /opt/oracle/admin/ora18c/pfile/init.ora.[xxxxxxx] /opt/oracle/product/18c/dbhomeXE/dbs/initXE.ora
Esto quiere decir que en /opt/oracle/admin/ora18c/pfile/ se habrá generado un fichero con un nombre X, ese es el que debes de copiar.
chown oracle:oinstall /opt/oracle/product/18c/dbhomeXE/dbs/initXE.ora
exit
(estamos en nuestro usuario normal)
Arrancamos la BD:
sqlplus / as sysdba
startup
ORA-00442: Oracle Database Express Edition (XE) single instance violation error
Si nos diera este error al hacer startup, entonces lo solucionamos de la siguiente manera:
ps -aux | grep pmon
sudo kill <PID oracle>
#(no el PID del grep)
Y podríamos volver a hacer startup sin problemas.
Hola evaristo, gracias por el tuto. Resulta que me sale este error :
bash: /opt/oracle/product/18c/dbhomeXE/bin/dbca: Permiso denegado
anteriormente al ejecutar: sudo /etc/init.d/oracle-xe-18c configure
me arroja un error
(*/etc/init.d/oracle-xe-18c: línea 488: /bin/awk: No existe el archivo o el directorio
/bin/df: unrecognized option '–direct'
Pruebe '/bin/df –help' para más información.
*) tengo ubuntu 18.04
si le haces un
ls -l /opt/oracle/product/18c/dbhomeXE/bin/dbca
que permisos y a qué usuario pertenece?
-rwxr-x— 1 oracle oinstall 7479 oct 18 06:17 /opt/oracle/product/18c/dbhomeXE/bin/dbca
Hola Evaristo muy bueno el post, tengo una duda , cuanto tiempo debe tardar el comando? llevo como 2 horas y sigue procesando, que me recomiendas?
dbca -createDatabase -silent -gdbName ora18c -templateName XE_Database.dbc -sysPassword YourPWD1 -systemPassword YourPWD1 -dbsnmpPassword YourPWD1 -datafileDestination /opt/oracle/oradata -storageType FS -memoryPercentage 20 -emConfiguration NONE -sampleSchema false -J-Doracle.assistants.dbca.validate.ConfigurationParams=false
Gracias!! Pues depende de los recursos que tengas asignados a tu equipo o máquina virtual! Pero con 4gb así debería de estar entre 10 y 20 minutos!
Obrigada!!! ótima dica !!!
🙂
Hola Evaristo, muy buenas. A la hora de crear la primera tabla, en la creación de la base de datos, se queda parado en 10% finalizado y no sube el porcentaje. He seguido el tutorial a rajatabla y varias veces además y no sé si lo he hecho mal o que mi ordenador no tiene las especificaciones concretas, aunque el servidor si tiene las especificaciones dichas en el blog. Gracias
Buenas, ¿Cuanto tiempo lo has dejado? ¿Qué dicen los logs cuando llega al 10%?
A mi me pasa lo mismo, lo he dejado toda la noche encendido con 6gb de ram y no pasa del 10%. Lo de los logs no sé cómo se saca. Gracias.
Puede que no estén bien los permisos y usuario de la carpeta de instalación de oracle?
Los logs.. has mirado en $ORACLE_BASE/cfgtoollogs/dbca
??
Por otra parte el filesystem de la máquina debe de tener espacio libre de sobra
Además de esas comprobaciones estaría bien que os viérais esto https://patrickhurley.wordpress.com/2015/11/30/freeze-of-oracle-dbca-and-startup-nomount-running-on-linux-on-virtualbox-5/
Yo hice el lab en virt-manager (Qemu/KVM) si estáis utillizando Virtualbox, lo mismo os está pasando lo mismo que comentan en ese post.
Si el caso es que siguiendo el mismo tutorial en un Ubuntu Server 16 en vez de en el 18 se instala correctamente, sin ningún tipo de error. Cuando intentas mirar los logs te dice que dicho fichero no existe; creemos que es por la versión, pero a mi hoy me ha funcionado, simplemente me ha dado dos fallos a la hora de crear la base de datos, «TNS: lost connection» y «Error al catalogar las copias de seguridad de RMAN», que por culpa del primero ya no puedo entrar a la base de datos.
Buenas evaristo! Estaba siguiendo tu tutorial y, a la hora de ejecutar el comando dbca, me da dos errores (te copio lo que sale al ejecutar el comando):
Preparar para funcionamiento de base de datos
10% finalizado
Copiando archivos de base de datos
12% finalizado
[WARNING] ORA-12547: TNS:lost contact
40% finalizado
100% finalizado
[FATAL] Error al catalogar las copias de seguridad de RMAN
10% finalizado
0% finalizado
Para obtener información detallada, consulte el archivo log «/opt/oracle/cfgtoollogs/dbca/ora18c2/ora18c2.log».
Y también pone lo mismo en el archivo que especifica al final para mirar «información detallada». La verdad, no tengo ni idea de que falla.
Correcto, no lo especificaba en el título (si en la imagen principal) que es para la Ubuntu 16. No lo he probado en la Ubuntu 18, pero está claro que sucede lo que comentáis, la verdad que ni idea que es lo que puede haber cambiado para que ocurra eso…
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
Linux-x86_64 Error: 2: No such file or directory
Me sale este error me podrian ayudar
Hola! Excelente tuto, pude hacer todo sin problemas en un Ubuntu 16.04. Lo unico que no pude hacer es que el Oracle se inicie desde el booteo. Para poder tener operativa la base tengo que ingresar al SQLPlus y hacer el startup. Hay forma de evitar eso? Es decir, que al arrancar el Ubuntu ya quede la base levantada y activa para trabajar? Gracias!!!
Que bien que te sirviera. Claro, podrías crear un script en bash que hiciera todo esos pasos por ti, y luego ponerlo como servicio de systemd por ej.
Me parece que Oracle ya proporciona estos scripts, si buscas por Linux dbstart & dbshut scripts
en google verás que te sale documentación.
Hola evaristo realice todo bien hasta crear el usuario oracle pero al ejecutar el comando $ su oracle
No aparece el nombre de usuario oracle como cuando cambias a usuario root solo me muestra el signo $ y el comando $ source /home/evaristo/.bashrc me genera el siguiente error sh: 1: source: not found.
Reinicio el pc e intento ingresar por el usuario oracle desde el inicio de sesión principal intenta ingresar pero da u parpadeo la pantalla y no accede.
Hola Evaristo gracias por el tuto
Pero tengo un inconveniente cuando intento ingresar con el usuario oracle no me muestra el nombre en la terminal debería aparecer oracle@desarrollo:~$ pero cuando coloco el comando su oracle y dígito la contraseña solo me aparece el signo $ sin nombre de usuario. Y al ejecutar source /home/evaristo/.bashrc me genera este error sh: 1: source: not found
Gracias…