Thursday, February 13, 2014

Iniciar base de datos Oracle automáticamente-Linux

Para que la Base de datos de Oracle se inicie automáticamente al iniciar nuestro Linux debemos de crear el siguiente script y después configurarlo como un servicio que se ejecuta al iniciar, configuración que se explica en la última entrada de este blog.

Los campos que aparecen      deben modificarse a los valores de cada usuario. chkconfig también se explica en la última entrada de este blog. 

# /etc/init.d     --- LINUX
# Description: Starts and stops the Oracle database and listeners
#chkconfig: 345 99 03 
ORA_HOME=/oracle/app/oracle/10.2.0/db case "$1" in  start)        echo -n "Starting Oracle Databases: "        echo "----------------------------------------------------" >> /var/log/oracle        date +"! %T %a %D : Starting Oracle DB as part of system up." >> /var/log/oracle        echo "----------------------------------------------------" >> /var/log/oracle        su - oracle -c  $ORA_HOME/bin/dbstart  >> /var/log/oracle        echo "Done."        echo -n "Starting Oracle Listeners: "        su - oracle -c "$ORA_HOME/bin/lsnrctl start"  >> /var/log/oracle        echo "Done."        echo ""        echo "----------------------------------------------------" >> /var/log/oracle        date +"! %T %a %D : Finished." >> /var/log/oracle        echo "----------------------------------------------------" >> /var/log/oracle        touch /var/lock/subsys/oracle        ;;  stop)        echo -n "Shutting Down Oracle Listeners: "        echo "----------------------------------------------------" >> /var/log/oracle        date +"! %T %a %D : Shutting Down Oracle DB as part of system down." >> /var/log/oracle        echo "----------------------------------------------------" >> /var/log/oracle        su - oracle -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle        echo "Done."        rm -f /var/lock/subsys/oracle        echo -n "Shutting Down Oracle Databases: "        su - oracle -c $ORA_HOME/bin/dbshut  >> /var/log/oracle        echo "Done."        echo ""        echo "----------------------------------------------------" >> /var/log/oracle        date +"! %T %a %D : Finished." >> /var/log/oracle        echo "----------------------------------------------------" >> /var/log/oracle        ;;  restart)        echo -n "Restarting Oracle Databases: "        echo "----------------------------------------------------" >> /var/log/oracle        date +"! %T %a %D : Restarting Oracle DB as part of system up." >> /var/log/oracle        echo "----------------------------------------------------" >> /var/log/oracle        su - oracle -c $ORA_HOME/bin/dbstop >> /var/log/oracle        su - oracle -c $ORA_HOME/bin/dbstart >> /var/log/oracle        echo "Done."        echo -n "Restarting Oracle Listeners: "        su - oracle -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle        su - oracle -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle        echo "Done."        echo ""        echo "----------------------------------------------------" >> /var/log/oracle        date +"! %T %a %D : Finished." >> /var/log/oracle        echo "----------------------------------------------------" >> /var/log/oracle        touch /var/lock/subsys/oracle        ;;  *)        echo "Usage: oracle {start|stop|restart}"        exit 1esac

Configurar scripts como servicios para iniciar automáticamente

Lo que tenemos que hacer es generar nuestro fichero 'script', darle los permisos necesarios con el siguiente comando:
chmod 750 script
Copiamos nuestro script a la carpeta /etc/init.d/. Ahora para poder configurarlo como servicio debemos de introducir la siguiente línea al inicio del script, de lo contrario recibiremos el error "chkconfig: el servicio xxx no soporta chkconfig". La línea es:

#chkconfig: niveles posición_al_iniciar posición_al_apagar 
niveles: niveles donde vamos a arrancar el servicio.posición_al_iniciar: es un número de dos cifras con el que le decimos en que posición queremos que arranque el servicio con respecto a los otros.posición_al_apagar: es un número de dos cifras con el que le decimos en qué posición queremos que pare el servicio con respecto a los otros. 

 Finalmente, podría quedar algo como "#chkconfig: 345 99 03"

Una vez tenemos esto ya podemos configurarlo como servicio utilizando:
chkconfig  --add scriptchkconfig  --level numero_nivel script on 
Por último decir que para desactivar un servicio podemos utilizar:
chkconfig  servicio off


 

Wednesday, February 12, 2014

ORA-27154: post/wait create failed ORA-27300: OS system dependent operation:semget failed with status: 28

Este es un error que se nos da cuando intentamos arrancar una base de datos Oracle desde sqlplus y no tenemos los parámetros configurados de manera correcta.

La solución a este error es establecer de manera permanente el parámetro kernel.sem para ello debemos de realizar lo siguiente:

[root@oracle-stdal u02]# ipcs -la
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 100 
max ops per semop call = 32
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536
El fallo está en que max semaphores system wide = 100 debemos de aumentarlo, para ello establecemos 
kernel.sem = 250 32000 100 200 en el archivo de configuración del kernel (/etc/sysctl.conf).

Ejecutamos el siguiente comando para cargar la nueva configuración y ya podemos iniciar la base de datos.
[root@oracle-stdal u02]# sysctl -p

Friday, February 7, 2014

Eliminar perfil de red inalámbrica de Windows 8

Si  hemos creado un perfil de red Wifi por ejemplo para conectarnos a una red de SSID oculto y queremos eliminar este perfil, una manera rápida de hacerlo es escribir en cmd de Windows el siguiente comando:

netsh wlan delete profile "nombre_perfil"

Carpeta compartida entre Windows (host) y Linux (VirtualBox)


Para crear una carpeta compartida lo primero que tenemos que tener es instalados las Guest Additions de la máquina virtual. Una vez los tenemos nos dirigimos al menú a la opción Dispositivos-Preferencias de carpetas compartidas.

Clickamos en "Carpetas de la máquina" y agregamos una carpeta que tengamos en Windows que será aquella en la que metamos los archivos a los cuáles queremos tener acceso desde la máquina virtual.



Una vez hecho esto debemos recordar el nombre de la carpeta en este caso "shared" y abrir una terminal con permisos de root en la máquina virtual para montar la carpeta compartida dentro de esta. Debemos de ejecutar el siguiente comando:
mount -t vboxsf shared /home/usuario/Escritorio/Compartida

El comando mount -t vboxsf recibe shared que es el nombre de la carpeta en windows y /home/usuario/Escritorio/Compartida que es la ruta a la carpeta "Compartida" que tenemos en nuestro escritorio de linux.Claro está si no tenemos la carpeta en el escritorio debemos de crearla antes de ejecutar el comando.


Building the main Guest Additions module [FAILED]

Error: 
Instalando Guest Additions en una máquina virtual de VirtualBox he recibido el siguiente mensaje de error:
Building the main Guest Additions module [FAILED]

Solución:
Lo he solucionado ejecutando la siguiente secuencia de comandos:
yum update kernel*
reboot
yum install gcc kernel-devel kernel-headers
KERN_DIR=/usr/src/kernels/`uname -r`-`uname -m`
export KERN_DIR
cd /media/VBOXADDITONS_4.1.12.77245
./VBoxLinuxAdditions.run
reboot


Referencia: http://www.youtube.com/watch?v=MJWWvzmWoZc


Blog Archive