Saltar al contenido

postgresql ¿a dónde va la salida de pg_dump?

Verificamos profundamente cada una de las reseñas en nuestro espacio con la meta de mostrarte siempre información veraz y actualizada.

Solución:

Llego tarde a esta fiesta, pero siento que ninguna de las respuestas es realmente correcta. La mayoría parece dar a entender que pg_dump escribe un archivo en alguna parte. no lo hace Ustedes están enviando la salida a un archivo, y Uds le dijo al shell dónde escribir ese archivo.

en tu ejemplo pg_dump test > backup.sql, que utiliza el plain o formato SQL, el pg_dump mando no almacena cualquier archivo en cualquier lugar. Simplemente envía la salida a STDOUT, que suele ser tu pantalla, y listo.

Pero en su comando, también le dijo a su shell (Terminal, símbolo del sistema, lo que sea) que redirigir STDOUT a un archivo. Esto no tiene nada que ver con pg_dump pero es una característica estándar de shells como Bash o cmd.exe.

Usaste > para redirigir STDOUT a un archivo en lugar de a la pantalla. Y diste el nombre del archivo: “backup.sql”. Como no especificó ninguna ruta, el archivo estará en su directorio actual. Este es probablemente su directorio de inicio, a menos que haya hecho una cd ... en algún otro directorio.

En el caso particular de pg_dump, también podría haber utilizado una alternativa a la > /path/to/some_file redirección de shell, usando el -f some_file opción:

-f archivo
–archivo=archivo

Envía la salida al archivo especificado. Este parámetro se puede omitir para formatos de salida basados ​​en archivos, en cuyo caso se utiliza la salida estándar.

Así que tu comando podría haber sido pg_dump test -f backup.sql, pidiendo a pg_dump que escriba directamente en ese archivo.

Pero en cualquier caso, da el nombre del archivo y, si no especifica una ruta, el archivo se crea en su directorio actual. Si su solicitud aún no muestra su directorio actual, puede hacer que se muestre con el pwd comando en Unix, y cd en Windows.

Vaya al símbolo del sistema y al directorio postgresql9.3bin.

Ejemplo

.

..
    c:Program filespostgresql9.3bin> pg_dump -h localhost -p 5432 -U postgres test > D:backup.sql
...

Después del comando anterior, ingrese la contraseña de usuario “postgres” y verifique D: Manejar para backup.sql Archivo

En mi situación (PostgreSQL 9.1.21, Centos 6.7), el comando

runuser -l postgres -c 'pg_dump my_database > my_database.sql'

guardó el archivo aquí:

/var/lib/pgsql/my_database.sql

No estoy seguro si eso es true para otras versiones de Linux dists, CentOS y/o pgl. De acuerdo con la publicación de respuesta del autor de esta pregunta, esto es true, pero otros usuarios dijeron que el archivo de respaldo estaba en el directorio actual (una situación diferente de la mayoría de las personas que leen este hilo, por razones obvias). Bueno, espero que esto pueda ayudar a otros usuarios con el mismo problema.

Pd: si ese no es el camino para su situación, puede intentar (en Linux) encontrarlo usando el siguiente comando (como lo indica @Bohemian en los comentarios de esta pregunta), pero esto puede llevar un tiempo:

find / -name 'my_database.sql'

EDITAR: Traté de ejecutar el comando análogo en Ubuntu 12.04 (funciona en Ubuntu 18.04):

sudo -u postgres pg_dump my_database > my_database.sql

¡Y en este caso, el archivo se guardó en el directorio actual donde ejecuté el comando! Entonces, ambos casos pueden ocurrir en Linux, dependiendo del distrito específico en el que esté trabajando.

Reseñas y calificaciones

Nos puedes añadir valor a nuestro contenido tributando tu veteranía en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *