DBlink consta de un conjunto de funciones diseñadas para realizar conexiones entre bases de datos Postgres, en el mismo server o en otros.. lo que se necesita es instalar DBlink en el servidor que hace la peticion..
Para implementar esto debes instalar el paquete contrib de la version que usas de postres
# aptitude install postgresql-contrib-8.3
el contrib de postgres provee una serie de funciones muy utiles para desarrolladores y administradores.
Para instalar la funcion en tu BD debes ser el usuario postgres y por lineas de comando:
$ cd /usr/share/postgresql/8.3/contrib $ psql test_db u_test -h localhost < dblink.sqlTe conectas a la BD que tiene instalado el DBlink y realizas la consulta
$ psql test_db u_test -h localhost
La idea es trear datos de la BD my_db que esta en el servidor 191.168.50.90 y mostrarlos en la conexion establecida en test_db en localhost
test_db=# select * from dblink ('dbname=my_db hostaddr=191.168.50.90 user=u_test password=123456 port=5432', 'select id,descripcion from tabla') as t1(id int4,descripcion text);
Listo!
Sr. Roiman su ejemplo con dblink no me funciona me arroja el siguiente error: ERROR: no existe la función dblink(unknown, unknown). Alguna sugerencia?
ResponderEliminarsi, estas seguro q lo instalaste? ese error es q no consigue la funcion definida.. si instalaste bien y estas usando algo similar al ejemplo el error seria uno muy diferente..
ResponderEliminarbuenas Roiman, estoy en la duda de conectarme y relizar un select en otra base de datos y ay algo que no entiendo por ser principiante, donde puedo descargar o que debo colocar el "contrib" y el "dblink.sql" de ante mano muchas gracias
ResponderEliminarBuen aporte, voy a intentarlo con mis servidores postgresql
ResponderEliminarSolo tuve que ejecutar el siguiente codigo SQL en Postgrsql 9.1:
ResponderEliminarcreate extension dblink;
Sip, asi es... gracias por el aporte! recuerda tambien que puedes ejecutar eso sobre template1 y todas tus proximas BD que se creen tendran precargadas esas funciones de dblink!
ResponderEliminarMuchas gracias, me funcionó perfectamente.
ResponderEliminarQue error podría tener cuando sale lo siguiente
ResponderEliminarError en dblink no se puede encontrar la relación "empleados"
umm. no consigue la tabla empleados. tendrias q enviar la consulta completa a ver si es q hay algun error.
EliminarUna consulta la sentencia
ResponderEliminarcreate extension dblink;
solo funciona para PostgreSQL 9.0 en adelante porq tengo la version 8.4.18 y no funciona.. :(.
Hola! sigue los pasos publicados en este post.. seguro te servira para versiones inferiores a la 9
Eliminarhola,,,
ResponderEliminarQuisiera saber si has podido lograr hacer correr la funcion DBllink en el pgadmin y se fue así que configuración hiciste,,,
Por casualidad tendrás una clase en php para hacer un join con la data local y la remota,,,
Saludos desde chile :D
Gracias, excelente aporte
ResponderEliminarGracias por el aporte Sr. Romain, le comparto que he realizado pruebas y funciona bien, pero tengo el siguiente problema: actualmente uso Potsgres 9.2 y he creado una función y dentro de PgAdminIII trabaja muy bien, pero cuando intento ejecutarla desde mi aplicación hecha en vb.net me salta el siguiente error: "(no existe la función dblink(unknown, unknown)", si tiene alguna luz que puediera ayudarme se lo agradecería mucho. Nota: he intentado manejarlo con un trigger que se dispara al insertar datos en una tabla y el resultado es el mismo.
ResponderEliminary en local de que manera se hace por que me muestra un error de "no están implementadas las referencias entre bases de datos"
ResponderEliminar