Saltar al contenido

¿Restaurar un archivo de respaldo de postgres usando la línea de comando?

Si te encuentras con alguna parte que no comprendes puedes comentarlo y te ayudaremos tan rápido como podamos.

Solución:

Hay dos herramientas para mirar, dependiendo de cómo haya creado el archivo de volcado.

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

Los volcados se pueden generar en formato de script o archivo de archivo. Los volcados de secuencias de comandos son archivos de texto sin formato que contienen los comandos SQL necesarios para reconstruir la base de datos al estado en el 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 usar 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 de almacenamiento 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 reordenar los elementos antes de restaurarlos. Los formatos de archivo de almacenamiento están diseñados para ser portátiles entre arquitecturas.

Así que depende de la forma en que se descargó. Probablemente puedas resolverlo usando el excelente file(1) comando: si menciona texto ASCII y/o SQL, debe restaurarse con psql de lo contrario, probablemente deberías 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 "vivas" o volver a crearlas desde template0 (como se indica en un comentario) antes de restaurar, según cómo se generaron los volcados.

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 c es un formato personalizado (comprimido y se puede hacer en paralelo con -j N) -b incluye blobs, -v es detallado, -f es 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 establecer -h servidor local - opción

Es posible que deba iniciar sesión como postgres para tener todos los privilegios en las bases de datos.

su - postgres
psql -l                      # will list all databases on Postgres cluster

pg_dump/pg_restore

  pg_dump -U username -f backup.dump database_name -Fc 

cambiar -F especificar el formato del archivo de copia de seguridad:

  • c utilizará el formato PostgreSQL personalizado que está comprimido y da como resultado el tamaño de archivo de copia de seguridad más pequeño
  • d para el directorio donde cada archivo es una tabla
  • t para archivo TAR (más grande que el formato personalizado)
  • -h/--host Especifica el nombre de host de la máquina en la que se ejecuta el servidor
  • -W/--password Fuerza pg_dump para solicitar una contraseña antes de conectarse a una base de datos

Restaurar copia de seguridad:

   pg_restore -d database_name -U username -C backup.dump

Parámetro -C debe crear una base de datos antes de importar datos. Si no funciona, siempre puede crear una base de datos, por ejemplo. con comando (como usuario postgres u otra cuenta que tenga derechos para crear bases de datos) createdb db_name -O owner

pg_dump/psql

En caso de que no haya especificado el argumento -F se usó el formato SQL de texto sin formato predeterminado (o con -F p). Entonces no puedes usar pg_restore. Puede importar datos con psql.

respaldo:

pg_dump -U username -f backup.sql database_name

restaurar:

psql -d database_name -f backup.sql

valoraciones y comentarios

¡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 *