Autobackup de la base de datos

March 28th, 2008

Estos días en los que el servidor ha estado caído he estado muy tentado de coger y traspasarlo todo a otro servidor aunque sea temporalmente. Sin embargo me he encontrado con el problema de no tener acceso a la base de datos actualizada, con lo que no podía hacer nada. Hubiera deseado tener a mano aunque sea una versión de la base de datos del mismo día o del día anterior a la caída.

La cuestión es que he dado con una solución bastante buena y sencilla, enviarme por correo electrónico la base de datos una o dos veces al día (no en todos los servidores es posible hacer esto).

Para esto simplemente hay que crearse un script en el servidor que haga lo siguiente.

#!/bin/sh

mysqldump -u user -ppassword -h host.domain database | gzip > ~/database.sql.gz

echo “This is an autogenerated mail with the backup” | mutt -s “[databasebak]” -a ~/database.sql.gz miemailparabackup@servidor.com

Es necesario disponer del comando mutt que se encarga de enviar un correo electronico con formato MIME capaz de codificar un fichero binario adjunto.

A este script podemos llamarlo “~/scripts/dbbak.sh” con lo que solo nos quedaría editarnos un fichero “crontab.txt” parecido a:

SHELL=/bin/bash

#h m dom mon dow command

35 0,12 * * * ~/scripts/dbback.sh

Y por último instalamos el fichero crontab recien creado con

crontab crontab.txt

Espero que os sea de ayuda.

Hace bastante frío en Noruega

March 27th, 2008

Durante la última semana ha hecho bastante frío por aquí por Trondheim. Hemos llegado a alcanzar hasta -12ºC. Aquí tenéis una prueba de ello.

Woody.

Dreamhost caido

March 27th, 2008

Desde hace tres días el blog ha estado inaccesible por culpa de uno de los clusters de Dreamhost que ha estado caído. Estoy considerando seriamente cambiar de host. El problema no está solucionado aún, así que es posible que siga fallando.

Estoy de vuelta

March 24th, 2008

Parece ser que ya vuelve a funcionar el servidor despues de haberse tirado toda la tarde sin funcionar. Esperemos que no vuelva a pasar de nuevo.

Blog disponible en inglés

March 24th, 2008

Al final he configurado qTranslate para poder escribir traducciones de algunos de los post en inglés. De momento la manejabilidad me gusta, a ver como funciona.

No todo está traducido aún pero con tiempo…

Escuchame: “God Påske”

March 23rd, 2008

Listen to me

Lytte meg: “God Påske”

Como me gusta el abrecartas leporido

March 23rd, 2008

Nota, no usadlo con el email!!


The program ‘java’ can be found in the following packages:

March 9th, 2008

The program ‘java’ can be found in the following packages:

* cacao

* j2re1.4

* kaffe

* jamvm

* java-gcj-compat

* gij-4.1

* gij-4.2

* sablevm

Try: sudo apt-get install <selected package>

bash: java: command not found

Y eso que lo acababa de instalar. No hay que olvidarse de hacer un

sudo update-alternatives –config java

sudo update-alternatives –config javac

para arreglar el problema :(.

JBO-29000: Exception [TOPLINK-4002] – Luchando contra JDeveloper y ADF

March 3rd, 2008

Definitivamente en Oracle necesitan contratar a algún que otro incompetente. El motivo esta bien claro, al ser todos tan eficaces y preparados, cuando se encuentran con un mensaje de error semejante siempre sabrían como resolverlo inmediatamente.Este error ocurria siempre que intentabamos insertar un usuario en la tabla USERS a traves de un formulario. Depurando paso por paso hemos descubierto que todo funcionaba correctamente hasta llegar a la llamada a uow.commit(); donde se lanza la excepción.

Hemos seguido todos los pasos (incluso varias veces) del tutorial para ADF que Oracle proporciona intentando adaptar todos los pasos a nuestra aplicación.

Dejando nuestro código en la clase que hace de PublicFacadeBean de la siguiente manera:

public Users createUser(Long userID, String name,String password, String email, String perm){
UnitOfWork uow = getSessionFactory().acquireUnitOfWork();

Users newInstance = (Users)uow.newInstance(Users.class);

newInstance.setId(userID);
newInstance.setName(name);
newInstance.setEmail(email);
newInstance.setPassword(password);
newInstance.setPerm(perm);
newInstance.setAtempts(0);

uow.commit();

return newInstance;
}

Tras probar un montón de alternativas y buscar información por todos lados (solo hemos descubierto que esta excepción se lanza siempre sea cual sea el problema, así que no nos vale investigar), al final nos iluminamos con la idea feliz de usar la técnica del avestruz, consistente en meter el “commit” en un bloque “try” (meter la cabeza debajo de la tierra y hacer como si no pasara nada).

try{
uow.commit();
}
catch (Exception e){

}

No dabamos crédito cuando descubrimos que con esto todo funciona bien, pero digo yo que podrían dar un poco más de detalle en los mensajes de error.

Casa modelo “Sueño noruego”

February 26th, 2008

norwegian dream house.