unknown postgres not link exist example does dblink_connect control contrib sql postgresql dblink

not - install contrib dblink postgresql



Cómo usar(instalar) dblink en PostgreSQL? (6)

Con PostgreSQL 9.1 o posterior , la instalación de módulos adicionales se ha simplificado. Las extensiones registradas (incluyendo dblink) se pueden instalar con CREATE EXTENSION :

CREATE EXTENSION dblink;

Se instala en su esquema predeterminado ( public por defecto). Asegúrese de que su search_path esté configurada correctamente antes de ejecutar el comando y el esquema esté visible para todos los usuarios que tengan que trabajar con él.

Alternativamente, puede instalar en cualquier esquema de su elección con:

CREATE EXTENSION dblink SCHEMA extensions;

Ver:

Ejecutar una vez por base de datos. O ejecútelo en la template1 estándar de la base de datos del template1 para agregarlo a cada DB recién creado automáticamente. Detalles en el manual.

Primero necesita tener los archivos que proporcionan el módulo instalado en el servidor. Para Debian y derivados, este sería el paquete postgresql-contrib-9.1 - para PostgreSQL 9.1, obviamente.

Estoy acostumbrado a Oracle y a crear un dblink en mi esquema y luego acceder a una base de datos remota como esta: mytable@myremotedb , ¿de todos modos hay lo mismo con PostgreSQL?

En este momento estoy usando dblink así:

SELECT logindate FROM dblink(''host=dev.toto.com user=toto password=isok dbname=totofamily'', ''SELECT logindate FROM loginlog'');

Cuando ejecuto este comando obtengo el siguiente error:

SUGERENCIA: ninguna función coincide con el nombre y los tipos de argumentos. Es posible que necesite agregar moldes de tipo explícitos.

Alguien tiene una idea ? ¿Tenemos que "activar" dblinks o hacer algo antes de usarlos?

¿Hay algo que hacer en la base de datos remota que vamos a consultar? ¿Tenemos que activar también dblink? Sigo teniendo una could not establish connection . Esta es la línea es tipo:

SELECT dblink_connect_u(''host=x.x.x.x dbname=mydb user=root port=5432'');

La dirección IP es correcta y Postgres se está ejecutando en el servidor remoto. ¿Alguna idea?


En Linux, encuentre dblink.sql, luego ejecute en la consola postgresql algo como esto para crear todas las funciones requeridas:

/i /usr/share/postgresql/8.4/contrib/dblink.sql

es posible que deba instalar los paquetes contrib: sudo apt-get install postgresql-contrib


Estoy usando DBLINK para conectar la base de datos interna para consultas de bases de datos cruzadas.

Referencia tomada de este artículo.

Instale la extensión DbLink.

CREATE EXTENSION dblink;

Verificar DbLink:

SELECT pg_namespace.nspname, pg_proc.proname FROM pg_proc, pg_namespace WHERE pg_proc.pronamespace=pg_namespace.oid AND pg_proc.proname LIKE ''%dblink%'';

Prueba de conexión de la base de datos:

SELECT dblink_connect(''host=localhost user=postgres password=enjoy dbname=postgres'');


La instalación de módulos generalmente requiere ejecutar un script sql que se incluye con la instalación de la base de datos.

Asumiendo un sistema operativo similar a Linux

find / -name dblink.sql

Verifica la ubicación y ejecútala


Se puede agregar usando:

$psql -d databaseName -c "CREATE EXTENSION dblink"


# or even faster copy paste answer if you have sudo on the host sudo su - postgres -c "psql template1 -c ''CREATE EXTENSION IF NOT EXISTS /"dblink/";''"