versión soportada restaurar postgres por pg_restore pg_dump exportar encabezado datos crear consola archivo archiver postgresql command-line backup restore

postgresql - soportada - psql restore



¿Restaurar un archivo de copia de seguridad postgres usando la línea de comando? (14)

Soy nuevo en postgresql, y 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 forma de restaurar una copia de seguridad desde la línea de comandos? Solo veo cosas relacionadas con GUI o pg_dumps, entonces, si alguien me puede decir cómo hacerlo, ¡sería fantástico!


A continuación se muestra mi versión de pg_dump que utilizo para restaurar la base de datos:

pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup

o use psql :

psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup

donde -h host, -p puerto, -u usuario de inicio de sesión, -d nombre de la base de datos



Es posible que deba iniciar sesión como postgres para tener privilegios completos 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

switch -F especifica el formato del archivo de copia de seguridad:

  • c usará un formato personalizado de PostgreSQL que se comprime 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 el archivo TAR (más grande que el formato personalizado)

Restaurar copia de seguridad:

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

El parámetro -C debería 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 plano por defecto (o con -F p ). Entonces no puedes usar pg_restore . Puede importar datos con psql .

apoyo:

pg_dump -U username -f backup.sql database_name

restaurar:

psql -d database_name -f backup.sql


Estaba teniendo problemas de autenticación ejecutando pg_dump, así que moví mi archivo de volcado

mv database_dump /tmp

en el directorio temporal y luego se ejecutó

su -u postgres cd /tmp pg_restore database_dump

Si tiene un volcado de base de datos grande, tal vez desee crear otro directorio al que puedan acceder su usuario actual y el usuario de postgres y colocar el archivo de volcado de base de datos en eso.


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 man pg_dump(1) ya que eso es lo que crea el volcado. Dice:

Los volcados pueden salir en formato de script o archivo. Los volcados de guiones son archivos de texto sin formato que contienen los comandos SQL necesarios para reconstruir la base de datos al estado en el que estaba cuando se guardó. Para restaurar desde una secuencia de comandos de este tipo, alimentarlo a 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 archivo alternativos se deben usar con pg_restore (1) para reconstruir la base de datos. Permiten a pg_restore ser selectivo sobre lo que se restaura, o incluso reordenar los elementos antes de ser restaurado. Los formatos de archivos de almacenamiento están diseñados para ser portátiles en todas las arquitecturas.

Entonces, depende de la forma en que fue desechado. Probablemente pueda resolverlo usando el excelente comando file(1) - si menciona texto ASCII y / o SQL, debe restaurarse con psql contrario, probablemente debería usar pg_restore

Restaurar es bastante fácil:

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. Puede que tenga que limpiar sus bases de datos "en vivo" o volver a crearlas desde template0 (como se señala en un comentario) antes de restaurarlas, dependiendo de cómo se generaron los volcados.


Intenta ver si los siguientes comandos pueden ayudarte:

sudo su - yourdbuser psql /i yourbackupfile



POSTGRESQL 9.1.12

TUGURIO:

pg_dump -U user db_name > archive_name.sql

ponga la contraseña del usuario y presione enter.

RESTAURAR:

psql -U user db_name < /directory/archive.sql

ponga la contraseña del usuario y presione enter.


Si crea una copia de seguridad usando pg_dump, puede restaurarla fácilmente de la siguiente manera:

  1. Abra la ventana de línea de comando
  2. Ir a la carpeta bin de Postgres. Por ejemplo: cd "C:/ProgramFiles/PostgreSQL/9.5/bin"
  3. Ingrese el comando para restaurar su base de datos. For example: psql.exe -U postgres -d YourDatabase -f D:/Backup/.sql
  4. Escriba la contraseña para su usuario de postgres
  5. Verifica el proceso de restauración

Vea el ejemplo siguiente, está funcionando

C: / Archivos de programa / PostgreSQL / 9.4 / bin / pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "newDatabase" --no-password --verbose

" C: / Users / Yogesh / Downloads / new Descargar / DB.backup "


1. abre el terminal.

2. respalde su base de datos con el siguiente comando

su bin de postgres - /opt/PostgreSQL/9.1/bin/

su servidor de base de datos fuente - 192.168.1.111

la ubicación y el nombre de su archivo de respaldo - /home/dinesh/db/mydb.backup

su nombre db de origen - mydatabase

/opt/PostgreSQL/9.1/bin/pg_dump --host ''192.168.1.111'' --port 5432 --username "postgres" --no-password --format custom --blobs --file "/ home / dinesh / db /mydb.backup "" mydatabase "

3. Restaure el archivo mydb.backup en el destino.

su servidor de destino - localhost

su nombre de base de datos de destino - mydatabase

crear una base de datos para restaurar la copia de seguridad.

/opt/PostgreSQL/9.1/bin/psql -h ''localhost'' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"

restaurar la copia de seguridad.

/opt/PostgreSQL/9.1/bin/pg_restore --host ''localhost'' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/ home / dinesh / db / mydb. apoyo"



crear copia de seguridad

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

Reinstalar desde el respaldo

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

importante para configurar -h localhost - opción


Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql} Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}