Estoy intentando configurar una instancia de PostgreSQL que se ejecuta en SERVER_A para conectarme a otra instancia de PostgreSQL en SERVER_B. Estoy ejecutando un script de shell en SERVER_A que finalmente necesita conectarse y ejecutar pg_restore en una base de datos que reside en SERVER_B.
SERVER_B está en AWS de Amazon. Normalmente, para ingresar a la máquina mediante ssh, ejecutaría los siguientes comandos:
# ssh -i .ssh/server-dev.pem [email protected]
[root@dev]# ssh -i .ssh/dev1mac 0.0.0.0
...Con la instancia de Postgres residiendo en 0.0.0.0
¿Alguien puede ayudarme a explicarme cómo usaría la información anterior para configurar Postgres en SERVER_A? He estado investigando pg_hba.conf, pero, francamente, nunca antes había hecho esto y, según la documentación, no me queda claro cómo lograr el resultado deseado. ¿Existe tal vez una manera más sencilla que me permita omitir la configuración de Postgres por completo y, en su lugar, simplemente ejecutar una serie de comandos desde mi script de shell para lograr la restauración?
Agradecería cualquier ayuda, ¡gracias!
Respuesta1
Si todo lo que desea hacer es pg_restore un archivo de volcado actualmente en SERVER_A
la instancia de base de datos que se ejecuta SERVER_B
, es fácil:
SERVER_A # cat dump_file | ssh SERVER_B pg_restore
(Incluya las opciones necesarias para pg_restore, pero no especifique un nombre de archivo. Segúnel manual de postgres, If [filename is] not specified, the standard input is used.
)
(También puede scp
volver a volcar el archivo y luego ejecutar la restauración usando el archivo en SERVER_B
, pero lo anterior parece estar más en línea con su objetivo de ejecutar un script SERVER_A
que haga todo).