Lo primero es descargar los paquetes que se van a utilizar:
- oracle-xe-11.2.0-1.0.x86_64.rpm
- oracle-instantclient11.2-basiclite-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
Hay que tener todos los paquetes en una carpeta, que sea ejecutable y con permisos de escritura para root. También hay que asegurarse de tener espacio suficiente para descomprimir y crear el paquete
.deb
. dentro del directorio usamos el siguiente comando alien -D --scripts *rpm
de modo que todos los archivos .rpm
sean convertidos a .deb
.Antes de instalar hay que asegurarse de tener la librería aio. Siguiedo las indicaciones de este blog vemos que libaio hace parte de las nuevas versiones de ia32libs, así que instalamos ese paquete y verificamos:
root@localhost# locate -i libaio /lib/x86_64-linux-gnu/libaio.so.1 /lib/x86_64-linux-gnu/libaio.so.1.0.1 /lib32/libaio.so.1 /lib32/libaio.so.1.0.1Si no las encuentran miren en la dirección del blog anterior. Ahí dan instrucciones para descargarla manualmente.
También hay que hacer un ajuste que Oracle espera de Redhat:
ln -s /usr/bin/awk /bin/awk
Ahora instalamos los archivos alienados:
dpkg -i *deb
Ahora debemos hacer unos cambios en la configuración del sistema. Según este otro blog y este otro debemos cambiar el enlace simbólico /dev/shm por un sistema de archivos real o aparecerá el error
ORA-27101: shared memory realm does not exist
. Para ello debemos averiguar cuánta RAM tiene nuestro equipo con el comando free -m
que da el dato en MB. Si nos dice que la memoria RAM total es de 2048MB, por ejemplo:free total used free shared buffers cached Mem: 2048 NNNN NNNN NNN NNNN NNNN -/+ buffers/cache: NNNN NNNN Swap: NNNN NNN NNNNPodemos escoger un valor menor que ese y convertirlo en el que usará nuestro espacio shm. Por ahora seguimos como dice el manual:
mkdir /dev/shm mount -t tmpfs shmfs -o size=2048m /dev/shm sysctl kernel.shmmax=1073741824En esta última línea le decimos al sistema que establezca un valor de memoria compartida máxima un poco mayor que el estándar.
También hay que crear el directorio /var/lock/subsys, si es que no existe:
mkdir /var/lock/subsys
El cambio de shmmax se puede hacer permanente editando el archivo
/etc/sysctl.d/60-oracle.conf
, mientras que el cambio de /dev/shm
se hace permanente creando un nuevo script de inicio del sistema en /etc/init.d/S01_load_shm
y dándole permisos de ejecución:### BEGIN INIT INFO # Provides: shm_load_PARA_ORACLE # Required-Start: $local_fs $syslog $time # Required-Stop: $local_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Configura el entorno para Oracle XE # Description: Crea el directorio /var/lock/subsys y monta un sistema de archivos de memoria RAM para que Oracle XE pueda arrancar y recibir conexiones ### END INIT INFO # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. . /lib/lsb/init-functions case "$1" in start) mkdir /var/lock/subsys 2>/dev/null touch /var/lock/subsys/listener && log_success_msg "Created subsys listener file" || log_warning "Could not create /var/lock/subsys/listener file. Oracle will not listen for connections" rm /dev/shm 2>/dev/null && mkdir /dev/shm 2>/dev/null && mount -t tmpfs shmfs -o size=2048m /dev/shm if [ $? -eq 0 ] then log_success_msg "Succesfully created shm environment for Oracle" exit 0 else log_failure_msg "Could not create shm environment for Oracle" exit 1 fi ;; stop) exit 0 ;; *) exit 1 ;; esac
Modificamos también el script de Oracle para que se ajuste al estándar LSB agregando las líneas siguientes justo después del
#!/bin/bash
:### BEGIN INIT INFO # Provides: oracle-xe # Required-Start: shm_load_PARA_ORACLE # Required-Stop: shm_load_PARA_ORACLE # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Inicia la instancia de Oracle XE # Description: Crea en memoria la instancia de Oracle XE y prepara el entorno para recibir conexiones ### END INIT INFO
Ahora dejamos que el sistema se encargue de crear los enlaces simbólicos para que Oracle inicie al arrancar el sistema y ejecutamos la configuración:
insserv shm_load insserv oracle-xe /etc/init.d/oracle-xe configure
Aquí nos pedirá lo siguiente:
- Un puerto HTTP válido para Oracle Application Express, mejor conocido como Apex
- Un puerto para la escucha de la base de datos. El predeterminado es 1521 y recomiendo no cambiarlo a menos que tenga una necesidad especial de seguridad o de configuración
- una contraseña para el usuario SYS y el usuario SYSTEM, las dos cuentas administrativas. Se pueden cambiar luego
- Confirmar la contraseña anterior
- Si se desea que la base de datos arranque con el sistema
/etc/bash.bashrc
:export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Arrancamos el servicio de Oracle:
service oracle-xe start
De ahí podemos ir a la página del Apex, entrando a
http://localhost:8080/apex/apex_admin
(cambiar 8080 por el puerto que haya configurado) en el navegador. El usuario es admin y la contraseña será la que se especificó al configurar Oracle.Lo demás es cuestión de carpintería: crear un workspace, nuevos usuarios y schemas se hace a través de Apex. Importar archivos SQL se puede lograr con
sqlplus64
en la línea de comandos.
No hay comentarios.:
Publicar un comentario