¿Restaurar un archivo de copia de seguridad de Postgres usando la línea de comando?

Resuelto TwixxyKit asked hace 14 años • 34 respuestas

Localmente uso pgadmin3. En el servidor remoto, sin embargo, no tengo ese lujo.

Ya creé la copia de seguridad de la base de datos y la copié, pero ¿hay alguna manera de restaurar una copia de seguridad desde la línea de comando? Solo veo cosas relacionadas con GUI o pg_dumps.

TwixxyKit avatar Apr 29 '10 02:04 TwixxyKit
Aceptado

Hay dos herramientas a considerar, dependiendo de cómo creó el archivo de volcado.

Su primera fuente de referencia debe ser la página de manual pg_dump ya que es lo que crea el volcado en sí. Dice:

Los volcados se pueden generar en formatos de archivo de script o de archivo. Los volcados de scripts son archivos de texto sin formato que contienen los comandos SQL necesarios para reconstruir la base de datos al estado en que se encontraba en el momento en que se guardó. Para restaurar desde dicho script, introdúzcalo en psql(1). Los archivos de script se pueden utilizar para reconstruir la base de datos incluso en otras máquinas y otras arquitecturas; con algunas modificaciones incluso en otros productos de bases de datos SQL.

Los formatos de archivo alternativos deben usarse con pg_restore(1) para reconstruir la base de datos. Permiten que pg_restore sea selectivo sobre lo que se restaura, o incluso reordene los elementos antes de restaurarlos. Los formatos de archivos de almacenamiento están diseñados para ser portátiles entre arquitecturas.

Depende de la forma en que fue arrojado. Si usa Linux/Unix, probablemente pueda resolverlo usando el excelente file(1)comando: si menciona texto ASCII y/o SQL, debería restaurarse con psql ; de lo contrario, probablemente debería usar pg_restore .

Restaurar es bastante fácil:

psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

o

pg_restore -U username -d dbname -1 filename.dump

Consulte sus respectivas páginas de manual: hay bastantes opciones que afectan el funcionamiento de la restauración. Es posible que deba limpiar sus bases de datos "activas" o recrearlas desde la plantilla0 (como se señala en un comentario) antes de restaurarlas, dependiendo de cómo se generaron los volcados.

Steven Schlansker avatar Apr 28 '2010 19:04 Steven Schlansker

crear copia de seguridad

pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f 
"/usr/local/backup/10.70.0.61.backup" old_db

-F ces un formato personalizado (comprimido y capaz de funcionar en paralelo con -j N) -b, incluye blobs , -ves detallado y -fes el nombre del archivo de copia de seguridad .

Reinstalar desde el respaldo

pg_restore -h localhost -p 5432 -U postgres -d old_db -v 
"/usr/local/backup/10.70.0.61.backup"

importante configurar -h localhost- opción

Alex Deemann avatar May 28 '2012 08:05 Alex Deemann