postgresql - pg_dump base de datos postgres desde un servidor remoto
backup postgresql (3)
Puede conectarse con ssh a su servidor remoto, con la conexión de la llamada pg_dump y enviar la salida a la salida estándar de la máquina local.
ssh user@remote_machine "pg_dump -U dbuser -h localhost -C --column-inserts" /
>> backup_file_on_your_local_machine.sql
Edición: arreglado un error tipográfico.
Estoy tratando de pg_dump una base de datos SQL en un servidor remoto en nuestra DMZ. Hay 2 problemas.
1) no queda mucho espacio en el servidor remoto, por lo que el comando normal se ejecuta para hacer una copia de seguridad local de la base de datos pg_dump -C database > sqldatabase.sql.bak
no funcionará debido a problemas de espacio.
2) Tampoco puedo ejecutar la otra versión del comando pg_dump para volcar la base de datos del servidor remoto al servidor local usando:
pg_dump -C -h remotehost -U remoteuser db_name | psql localhost -U localuser db_name
ya que el servidor está en nuestra DMZ y el puerto 5432 está bloqueado. Lo que estoy buscando es si es posible pg_dumpear la base de datos y guardarla inmediatamente (ssh o alguna otra forma) como un archivo en un servidor remoto. Lo que estaba intentando era: pg_dump -C testdb | ssh [email protected] | > /home/admin/testdb.sql.bak
pg_dump -C testdb | ssh [email protected] | > /home/admin/testdb.sql.bak
¿Alguien sabe si lo que estoy tratando de lograr es posible?
Puede intentar volcar parte de la tabla a un archivo en su máquina local como este (suponga que su máquina local tiene psql
instalado):
psql -h ${db_host} -p 5432 -U ${db_user} -d ${db_name} /
-c "/copy (SELECT * FROM my_table LIMIT 10000) to ''some_local_file.csv'' csv;"
Y puede importar el csv exportado a otro db más adelante así:
COPY my_table FROM ''/path/to/some_local_file.csv'' WITH (FORMAT csv);
Se ha mencionado una posible solución, tubería a través de ssh.
También puede hacer que su servidor DB escuche en la dirección de entrada pública, agregar una entrada de hostsl para su máquina de copia de seguridad a pg_hba.conf, tal vez configurar un certificado de cliente por seguridad, y luego simplemente ejecutar el volcado en la máquina cliente / copia de seguridad con pg_dump -h dbserver.example.com ...
Esto es más sencillo para las copias de seguridad desatendidas.
Para la configuración de la conexión (sslmode), consulte también las variables de entorno compatibles .