12 de septiembre de 2012

Iniciar y detener Oracle XE (y otros servicios) fácilmente

Normalmente trabajo con muchas bases de datos, desde las pequeñas como SQLite hasta las de grado "enterprise" como Oracle. Debido a que en la oficina llevamos proyectos muy variados en diferentes plataformas no nos queda de otra más que utilizar maquinas virtuales para poder mantener compatibilidad y evitar conflictos entre versiones.


Una de las maquinas virtuales en las cuales realizo desarrollo y pruebas de VirtualBox tiene instalado Windows 2008 Server y SQL Server 2005 así como Oracle XE. Tener máquinas virtuales es una gran ventaja ya que nos permite solucionar el primer problema que es tener diferentes tipos de software instalados en entornos diferentes sin que causen conflicto pero, por otro lado, tener instalados dos motores de bases de datos diferentes en el mismo sistema operativo no siempre es una buena idea, más si consideramos que estamos corriendo dichas bases de datos en un entorno de virtualización para escritorio como VirtualBox.

El problema de tener ambas bases de datos corriendo al mismo tiempo dentro de Windows 2008 Server en la máquina virtual es que al parecer ambas tratan de acceder al filesystem virtual dentro de VirtualBox lo cual alenta considerablemente el sistema por lo cual debo tener deshabilitados los servicios y según la tarea que tenga que hacer activo una o la otra.

Como soy demasiado holgazan para estar hacer Ctrl + R -> services.msc y deshabilitar manualmente los servicios o abrir un prompt entonces decidí hacer lo que cualquier programador haría: automatizar la tarea. Así que aquí un pequeño tip para crear unos batch scripts que dejaremos en el escritorio y nos permitiran con un click iniciar o detener la base de datos o cualquier otro servicio que deseemos.

Creamos un archivo, con el nombre que gusten, pero cuya extensión sea .bat con los siguientes contenidos:

@echo off
net start OracleServiceXE
if ERRORLEVEL 1 echo Problem while starting Oracle Service XE

net start OracleXETNSListener
if ERRORLEVEL 1 echo Problem while starting Oracle XE Listener service
pause
exit

En mi caso nombré el archivo "Start Oracle.bat". Ahora para detener el servicio creamos otro acceso directo, yo lo nombré "Stop Oracle.bat" y estos son sus contenidos:

@echo off
net stop OracleServiceXE
if ERRORLEVEL 1 echo Problem while stopping Oracle Service XE

net stop OracleXETNSListener 
if ERRORLEVEL 1 echo Problem while stopping Oracle XE Listener service
pause
exit

Una vez que tengo los dos archivos en el escritorio simplemente doy doble click para iniciar o detener el servicio:


Esto me ahorra tiempo ya que como comento no tengo que estar entrando a la consola.

Nota importante:


Para poder ejecutar estos archivos hay que tener los permisos necesarios ya que estaremos iniciando/deteniendo servicios.

Finalmente solo queda probar. Al dar doble click en el ícono para iniciar el servicio de Oracle XE esto es lo que aparece:


Y como vemos en la imágen se nos muestra el nombre del servicio y el estatus, finalmente solo presionamos enter para cerrar la ventana.

Para detener el servicio es lo mismo, damos doble click sobre el ícono con el código para detener y tenemos la siguiente pantalla:


Como nota final, si el servicio por alguna razón no puede ser iniciado (o detenido) por ejemplo, por falta de permisos, la pantalla del prompt nos mostrará el error y un código útil para diagnosticar el problema.

No hay comentarios:

Publicar un comentario