jueves, noviembre 26, 2009
La fórmula preferida del profesor
lunes, noviembre 23, 2009
Oracle: controla los database link
Hola, vuelvo a la carga, esta vez con algo light que vengo de entrenar y estoy bastante hecho polvo.
¿Habéis utilizado alguna vez un database link?
Empecemos diciendo que sirve para que una base de datos Oracle se pueda acceder a objetos (tablas, vistas, etc.) de otra base de datos Oracle.
Con eso ya os podéis hacer a la idea de todas las posibilidades que nos ofrece y también de los peligros.
¿Tenemos una base de datos en la DMZ para almacenar datos recogidos por nuestro servidor web? Pues una aplicación que trabaja en la red interna de nuestra organización podría acceder a los datos almacenados a través de un database link.
¿Por seguridad queremos replicar los datos de una tabla en una base de datos remota? Podemos preparar un job que se encargue de refrescar periodicamente la tabla remota.
Uno de los peligros que he visto con mis propios ojos es la confusión que se puede crear en el futuro respecto a la ubicación de los datos.
Cuando se crea un database link de esta forma:
Create database link LNK_ORIGEN_DESTINO connect to USUARIO identified by CONTRASEÑA USING 'instancia-destino';
Oracle sabe llegar a la 'instancia-destino' porque encontrará la entrada adecuada en el fichero de configuración tnsnames.ora
Al utilizarlo se indica que se está utilizando el DBLINK:
Select * from tabla@LNK_ORIGEN_DESTINO;
Ahora bien, el desarrollador por comodidad suele emplear un sinónimo que enmascara el uso del dblink. En proyectos heredados al final ocurre que un desarrollador piensa que los datos están en la base de datos origen, y pueden estar en el destino.
¿Cómo saber cuantos database links hay en nuestra base de datos?
Como todo en Oracle, también los DBLINKS se encuentran recogidos en el diccionario de datos. Hay 3 tablas fundamentales donde consultar:
- DBA_DB_LINKS. Nos permite conocer todos los dblinks de la base de datos.
- ALL_DB_LINKS. Información sobre los dblinks accesibles por el usuario con el que nos hemos conectado.
- USER_DB_LINKS. Dblinks cuyo propietario es el usuario con el que nos hemos conectado.
Como buenas prácticas creo que conviene tener un script que nos liste con un formato adecuado información sobre todos los dblinks. Sería algo así:
Nombre del fichero: ver-dblinks.sql
SET PAGESIZE 100
SET LINESIZE 300
COL OWNER FORMAT A11 HEADING "PROPIETARIO"
COL USERNAME FORMAT A28 HEADING "USUARIO"
COL DB_LINK FORMAT A30
COL HOST FORMAT A17
SELECT * FROM DBA_DB_LINKS
/
Para ejecutarlo, podemos entrar al sqlplus:
sqlplus "/as sysdba"
SQL>@ver-dblinks.sql
Para eliminar un database link hay que distinguir si es público o no:
drop database link dblink
drop public database link dblink
Para eliminarlo hay que hacerlo desde el usuario propietario.
Y eso es todo.
Saludos.
lunes, noviembre 16, 2009
Uno de los momentos más sufridos del año...
En su momento anuncié alegremente que iba a hacer la marcha. Luego resultó ser un auténtico infierno del sufrimiento.
Para empezar tuvimos agua-nieve desde el principio. Tanto llovió que al día siguiente se desbordó el río del pueblo y hubo inundaciones.
El caso es que era una carrera doble, algunos en mountain bike y otros a pata. Para empezar 600 metros de desnivel en 7 km:
600 m ---------------- 7.000 m
x ----------------------- 100 m
O sea que pendiente media del 8,57.
Yo no estaba "exactamente" en forma, según mi báscula pesaba 94 kg pero ahora que dicen que estaba mal podrían ser unos kg más.
Petu en cambio es el típico machaca. Todos los días gimnasio (spinning), jugador de fútbol, de fútbol sala y de fútbol 7, corredor, cocinero y un montón de cosas más.
Vamos que a base de mucho sufrimiento el resultado fue un poco como el Alcorcón - Real Madrid de la semana pasada.
Recuerdo que cuando bajaba al campo base una mujer mayor le decía a otra señalándome. "Mira mira, ese sí que ha sufrido" ... Sólo pude contestar un penoso "y que lo digas".
Documento histórico:
El Petu muy confiado antes de empezar a subir al monte:
Aquí voy subiendo con mi bici entre corredores:
jueves, noviembre 12, 2009
Algo de utilidad
Voy a hacer caso a mi amigo Petu y pondré algo útil para la vida real...
No sé por qué, pero estoy convencido que la poca gente que es capaz de seguir este blog nunca utilizaría lo siguiente para un mal uso.
Además, el ladrón de coches no se anda con miramientos y suele romper la ventanilla como me pasó en verano. Esto confirma lo que dicen muchos sabios: es mejor dejar el coche abierto para que no rompan nada.
Hace un mes más o menos fui a coger una bolsa del maletero. No llegaba y dejé la llave un momento. Cogí la bolsa, cerré y UY UY UY... QUE ME HE DEJADO LA LLAVE DENTRO.
La broma me costó un montón de días sin coche (el del concesionario se equivocó al pedirla) y 200 euros para encargar otra llave.
Si hubiera sabido esto tal vez me lo hubiera ahorrado:
Saludos.
martes, noviembre 10, 2009
Cálculo de calorias al correr
Llevo ya varias semanas corriendo con cierta regularidad. Veo mejoría pero la verdad es que no bajo peso.
¡¡¡Hoy además me he llevado un gran disgusto!!! Me han asegurado que mi báscula no funciona y MARCA DE MENOS :-(
Ya va siendo hora de calcular si realmente quemo las calorías que como.
Lo primero obtener la formulita dichosa de las calorías. Me voy a fiar de este sitio que es bastante famoso:
Está claro: calorías = km x kg x 1,036
Teniendo en cuenta que entrenaré a unos 5 minutos el kilómetro diremos que...
calorías = (minutos/5) x kg x 1,036
Para hacer esta tontería y conseguir que el programa vaya almacenando un histórico de nuestro entrenamiento lo más rápido y divertido es Perl:
La ejecución del programa:
Y el resultado es un fichero llamado ENTRENA.TXT con los datos diarios en un formato que se puede leer desde Excel.
Saludos.
martes, noviembre 03, 2009
Laplace y el determinismo
¿Hola que tal?
Ya que el otro día mencioné a Laplace como gran matemático hoy quería comentar su faceta de filósofo.
Newton (y con él sus famosas Leyes) había nacido más de 100 años antes, y con el cálculo diferencial e integral se conseguía predecir el resultado de cualquier experimento físico.
Entonces Laplace planteó lo que todos alguna vez hemos pensado (con la ventaja que nos da haber nacido más de 200 años después):
Si en un momento concreto existiera un diablillo que conociera el estado completo del universo, por el conocimiento de las leyes que rigen ese universo podría conocer el futuro y el pasado del mismo y nadie podría escapar a este conocimiento. A esto se le llama determinismo.
En este sitio está mucho mejor explicado: http://seneca.fis.ucm.es/parr/QM/km0qm/laplace.htm
¿Qué argumentos hay en contra del determinismo?
Recuerdo vagamente haber leído un artículo en la revista científica "Investigación y Ciencia" pero no lo he encontrado. Es posible que continúe este post otro día si lo encuentro. De todas formas, el argumento no niega el determinismo, sino la posibilidad de existencia del diablillo.
En el número de octubre de la misma revista hay un artículo de nombre "Viajes a través del tiempo" de Agustín Rayo en el que el autor afirma que aunque fuera posible el determinismo, esto no estaría reñido con el libre albedrío. Respecto a esto discrepo, pero en cualquier caso es otra visión interesante.
Por último los físicos tienen confianza en la mecánica cuántica y la teoría del caos.
Respecto a la mecánica cuántica habría que saber si realmente existe la probabilidad en esos fenómenos (probabilidad podría ser la explicación sencilla de algo que no conocemos todavía, o que no conoceremos nunca).
Y en cuanto a la teoría del caos, en un sistema caótico, si se conoce todo, TODO, adiós al caos.
Un consejo, tampoco te rompas demasiado la cabeza, con o sin determinismo, lo fundamental es que pienso luego existo.
Saludos.