problemas con dblink

Gente, buenos días…
Estoy probando utilizar el dblink para actualización de datos entre bases situadas en distintos servidores. Intente seguir esta guia http://repositorio.siu.edu.ar/trac/postgresql/wiki/Dblink pero cuando llego al select dblink_connect(‘myconn’,‘slave’); me dice que no existe la funcion dblink.

Googleando un poco encontre http://tubasededatoslibre.org/site/posgresql-dblink/ y al querer generar el dblink.sql con la sentencia: psql base_destino -h ip_servidor_destino < dblink.sql me salta el error :

SET
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no existe la función dblink_connect_u(text)
ERROR: no existe la función dblink_connect_u(text, text)
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: la relación «dblink_pkey_results» ya existe
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio
ERROR: no se pudo acceder al archivo «$libdir/dblink»: No existe el fichero o el directorio

Como seria el procedimiento correcto para que me funcione???

El escenario que tenemos es el siguiente:
servidor 1. postgres 8.4
servidor 2. postgres 8.2

y la actualizacion de las bases es reciproca, es decir, la idea es mantener actualizada (de una base a la otra y viceversa) las claves de los usuarios.
Espero sus comentarios al respecto.

Saludos y gracias desde ya

Hola Carolina,

Entiendo que vos primero hiciste estos pasos:

aptitude install postgresql-contrib-9.0

Seguidamente accedemos al directorio de Postgres, para instalar la función Dblink, logueados con el usuario postgres:
#su – postgres
Una vez logueados, nos ubicamos en el directorio:
#cd /usr/share/postgresql/9.0/contrib/

Te anduvieron bien ?.

Un comentario solo para verificar , con respecto a lo que decis: “al querer generar el dblink.sql con la sentencia: psql base_destino -h ip_servidor_destino < dblink.sql me salta el error :”

el comando psql que ejecutas no genera el dblink.sql, sino que lo utiliza como entrada , o sea que en el directorio /usr/share/postgresql/9.0/contrib/ deberia existir el archivo dblink.sql , me lo podrias pasar ?

saludos
Ignacio

Ignacio, el contrib ya estaba instalado. Te adjunto el dblink.sql.
Saludos


dblink.sql (5.44 KB)

Ignacio, respecto del dblink como puedo solucionarlo? Tengo que implementar un trigger para actualizar las claves de usuarios de una base a otra y necesito que me funcione el dblink ya que son bases distintas en distintos servidores.

Gracias desde ya

Hola Carolina,

una consulta, ejecutaste el archivo dblink.sql en cada una de las bases de datos?, o al menos en la que inicia la conexion dblink… de otra forma no vas a tener disponibles las funciones.
La otra es ejecutarlo en alguno de los templateX y ya quedan cuando creas la bd tuya… pero no se si sea una buena practica o una indiada mia eso jajajaja.

Saludos

Ahhh capaz me esta faltando ejecutarlo en la otra base del otro servidor entonces :s

Lo de la indiada lo dejo a tu criterio jajaja desconozco como va a reaccionar. Lo pruebo y luego les comento como me va.
Gracias