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/";''"