1 2 |
|
Muy útil cuando importamos dumps y no queremos que las tablas cuyos IDs se asignan utilizando secuencias empiecen a dar problemas.
1 2 |
|
Muy útil cuando importamos dumps y no queremos que las tablas cuyos IDs se asignan utilizando secuencias empiecen a dar problemas.
Cuando nuestra ubuntu arranca con una tarjeta de red pinchada, guarda en “algún sitio” un registro que le permite asociar un nombre a cada uno de los dispositivos. La correspondencia se hace directamente entre MAC y nombre. A la primera mac que “ve” nuestra ubuntu se le asigna el nombre eth0, a la segunda eth1 y así sucesivamente. Las asociaciones permanecen en el sistema aún cuando la tarjeta de red ya no está presente. Esto es muy práctico porque asi las posibles configuraciones de cada dispositivo estarían disponibles en el caso de volver a pinchar la tarjeta que hemos quitado. Pero hay escenarios en los que este comportamiento es molesto.
Imaginemos que tenemos guardada una imagen de ubuntu que utilizamos para desplegar nuevas máquinas virtuales. En esa imagen hemos instalado “todo lo básico”, de modo que podemos levantar nuevas máquinas virtuales en tan solo unos minutos. Es más, hemos sido tan cuidadosos que hemos guardado la máquina virtual con una IP fija accesible mediante a un dns local con un nombre como newimage.trabesoluciones.local, y hemos escrito un script que nos permite cambiar la IP y el nombre de host de un solo golpe. Parece sencillo y práctico,…pero al desplegar la nueva máquina virtual, ésta tendrá una MAC virtualizada diferente a la que tenía cuando la guardamos, por lo que el interfaz de red utilizable ya no será ethx, sino ethx+1. Esto genera una falta de determinismo a la hora de pensar scripts, además de que a los más puristas y puntillosos puede darles un síncope cuando vean que la máquina usa eth7 como interfaz de red.
Para evitar llantos e incomodidades, el camarada farruco y yo estuvimos un rato investigando cómo funciona esta asociación mac-nombre a “bajo nivel”. El tema es un poco extenso, así que vamos a quedarnos con lo fundamental: existe un fichero llamado /etc/udev/rules.d/70-persistent-net.rules en el que se almacenan estas asociaciones mac-nombre. Editándolo podremos cambiar los nombres asociados a los distintos interfaces.
En nuestro caso, como lo único que buscamos es que el interfaz sea siempre eth0 para nuestras virtuales, la receta es tan sencilla como borrar este fichero antes de exportar la imagen virtual. Así en el primer arranque de la nueva máquina virtual se escribirá en ese fichero la asociación de la mac actual con el nombre eth0. Más fácil imposible :D
El error completo es algo más largo:
1 2 3 4 |
|
Surge al intentar utilizar las herramientas de consola (sqlplus, imp) desde la propia máquina en la que está instalado el oracle. Las conexiones JDBC, asi como el interfaz web funcionan correctamente.
De otras batallas, tenemos claro que hay que fijar correctamente el ORACLE_HOME y el ORACLE_SID, pero el problema persiste. Tras un rato de búsquedas, llegamos a la solución: el instalador de oracle (al menos en nuestra plataforma que es linux) no “marca” como setuid $ORACLE_HOME/bin/oracle. Sabiendo esto, la solución es fácil:
1 2 |
|