No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de PostgreSQL

Curso de PostgreSQL

Oswaldo Rodríguez González

Oswaldo Rodríguez González

Backups y Restauración

27/32
Recursos

Aportes 62

Preguntas 14

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

es importante resaltar que cuando se hace un backup para ser restaurado en una versión diferente se debe de usar la opción plana dado que el custom varia de versión a versión.

Para los que les salte el error ‘…pg_dump.exe’ file not found. Please correct the Binary Path in the Preferences dialog’ al intentar hacer un backup.
Aqui la solucion:
https://www.youtube.com/watch?v=7cBkXKCY4Ew

Please configure the PostgreSQL Binary Path in the Preferences dialog.

Para los que tengan ese error sigan las instrucciones de este video

https://www.youtube.com/watch?v=CymmrAhvtn0

Si alguien tiene su backup en una versión antigua y quiere restaurar en un postgres superior a ella y no le permite…

Resulta que una nueva BD contiene el esquema público y, al querer restaurar, no nos permite porque ya existe uno.

Yo lo solucioné borrando ese bendito esquema público.
DROP schema public y luego restauré sin ninguna complicación.

Formatos del backup:

  • Custom -> Un formato propio de Postgres
  • Tar -> Un archivo comprimido que contiene la estructura de la BD
  • Plain -> SQL plano
  • Directory -> Estructura sin comprimir

Crear un fichero con las sentencias SQL listas para cargar el contenido de
una db en otra db distinta (modo simple)

postgres=# pg_dump source_db_name > db_data.sql

Cargar un fichero con las sentencias SQL listas de una db en otra db
nueva y distinta (modo simple)

postgres=# psql -d new_db_name -f db_data.sql

Otras opciones disponibles:

postgres=#\q
...$ psql --help
  • Backups
    • pg_dump
      • Formato
        • Custom: Es un formato especial de Postgres y es el mas usado, varia de version a version.
        • Tar: Es un archivo comprimido que contiene la db.
        • Plain: Es texto plano SQL el cual contiene toda la sentencias sql de la db.
        • Directory: Contiene la estructura sin comprimir de la db.
  • Restauración
    • pg_restore[psql]

si no le deja abrir la ventana de dialogo para hacer backup en postgreSQL. La Solución es esta entra al menú donde dice file haga click la opcion Preferences.
va abrir una ventana de dialogo vaya la opción Paths haga click Binary paths.
copie la ruta donde esta su postgreSQL por ejemplo:
yo tengo la versión 14 peguen donde esta campo de texto la version de postgreSQL que este utilizando
C:\Program Files\PostgreSQL\14\bin

Es una pena que este curso se enfoque principalmente en el uso de pgAdmin y no profundice en los comandos de consola.
Por ejemplo, en mi trabajo en ocasiones me toca acceder a un servidor de forma remota donde todo es en modo texto.

Backups y Restauracion

Para hacer un backup se debe seleccionar la DB que quiero salvar o hacerle una copia, clic derecho y seleccionar Backups. Luego configuramos los parametros de la copia:

  1. Agregar un nombre a la copia
  2. Formatos del backup: permite configurar el tipo de archivo
    • Custom: Un formato propio de Postgres
    • Tar: Un archivo comprimido que contiene la estructura de la BD
    • Plain: SQL plano
    • Directory: Estructura sin comprimir
  3. Comprenssion ratio: cantidad de veces que el ciclo de compresion se ejecuta para que quede un archivo mas pequeño (comprimido)
  4. Encoding: puede dejarse como predeterminada (UTF_8)
  5. Number of job: asigna la cantidad de hilos que tiene el procesador. La asignacion la hace pgAdmin.
  6. Role name: asigna el usuario que va a ser dueño de ese dump (copia) . Por defecto asigna al usuario postgres
  7. En la pestaña de agregar el nombre, presionamos boton de archivos y ubicamos la direccion donde deseamos guardar la copia.

Luego sigue con la pestaña Data/Object el cual permite seleccionar si se requiere toda la informacion, la estructura de la BD, los datos, los dueños, las llaves y otras opciones mas:

  1. Sections: permite poner los datos antes o despues de ser insertados, asi como todos los datos. Si colocamos los datos no tenemos que preocuparnos por el esquema de la BD
  2. Types of objects: posee el tipo de objeto Blobs el cual no es recomendable tenerlo activado porque permite guardas archivos multimedia que pueden hacer que la BD pese mucho.
  3. Luego de seleccionar los parametros que necesitemos, presionamos finish. Esto creara la copia de la BD.

Restaurar la copia en una BD

Es importante tener en cuenta que no se puede extraer la copia sobre la BD original. Para ello, se debe crear una BD vacia y extraer la copia con restore.

  1. Creamos la nueva BD.
  2. clic derecho sobre la BD y seleccionamos Restore
  3. En Filename seleccionamos la copia, y luego restore

Como una buena practica, es bastante importante tener backups

no entendi nada de Dumb Options

Muy buena clase, es muy importante contar con una estrategia para respaldar los datos y que cumplan el RTO y RPO del negocio.

En este link explica cómo automatizar los backup de Postgresql en linux vía crontab. Usando pg_dump en línea de comando
https://www.linode.com/docs/guides/how-to-back-up-your-postgresql-database/

POR FAVOR COMO PUEDO HACER UN BACKUP INCREMENTAL Y DIFERENCIAL, ALGUIEN QUE ME PUEDA AYUDAR

No es un aporte, pero que buena comunidad que hay aca.

Por si alguien tiene este problema:
Please configure the PostgreSQL Binary Path in the Preferences dialog
aqui esta el como solucionarlo
(https://www.youtube.com/watch?v=9jLjUIkp78Y)

SI les sale un error del Path les recomiendo seguir este video tutorial para solucionar.
https://www.youtube.com/watch?v=7cBkXKCY4Ew

Así también podemos migrar nuestros datos.

Si al intentar hacer el backup te salio “Utility file not found. Please correct the Binary Path in the Preferences dialog”, te comparto un video que explica la solución :

https://www.youtube.com/watch?v=eQbvLegUHWA

por si quieren hacerlo desde la consola y automatizarlo en sus sistema como cron:

//Backup plain text
PGPASSWORD=tupassword pg_dump -U usuario -h servidor -p puerto baseDeDatos > backup.sql

//backup binario
PGPASSWORD=tupassword pg_dump -U usuario -h servidor -p puerto -Fc baseDeDatos -f backup.backup

//Restore
PGPASSWORD=tupassword pg_restore -U usuario -h servidor -p puerto -d baseDeDatos -Fc backup.backup

Información resumida de esta clase
#EstudiantesDePlatzi

  • Una buena e importante práctica es tener copias de seguridad

  • En format es bueno utilizar custom si vas a abrir esta copia en PgAdmin

  • La función Pg_dumb es usada por defecto en postgres para crear un Backup cuando lo hacemos desde las herramientas

Super interesante la clase.

# Conclusión Realizar copias de seguridad periódicas y saber cómo restaurarlas es esencial para la administración de bases de datos. Usando `pg_dump`, `pg_restore`, `pg_basebackup` y otras herramientas de PostgreSQL, puedes asegurarte de que tus datos estén protegidos y puedan ser recuperados en caso de un fallo. Automáticamente con cron, puedes programar copias de seguridad regulares para mayor tranquilidad.
Genial!
Como nota, es importante siempre considerar hacer una restauración con una BD vacia o nueva, ya que si hacemos la restauración a una BD con información se puede llegar a tener tablas con datos duplicados y/o generar conflictos de integridad de datos y sobreescribir información.
Me sale el siguiente error, cada vez que quiero hacer un backup. ¿Será por la versión de pgAdmin? ¿A alguien mas le pasa? ![](https://static.platzi.com/media/user_upload/image-a7aee69e-3760-497c-9ef2-75f8d3f4da39.jpg)
Para las personas que tuvieron error al hacer el backup, revisen las preferencias de pg admin, debe de estar direccionado al bin de pgadmin. ![](https://static.platzi.com/media/user_upload/image-01101d12-41f0-4bdd-abe2-d0eccf1bc012.jpg)
Esta es una clase muy importante.

Programación de Respaldos Automáticos:
Para realizar respaldos automáticos, puedes configurar una tarea programada (cron en sistemas basados en Unix o el Programador de tareas en Windows) que ejecute el comando pg_dump o pg_dumpall a intervalos regulares.

![](https://static.platzi.com/media/user_upload/image-b3bcc397-e076-4297-8a69-d2458d99e854.jpg)Su apoyo encarecido! Me quedado estancado para poder generar mi backup! He intentado de diferentes maneras!![]()

genial

En la opción que está el signo de interrogación se puede consultar la funciones de configuración y personalización o preferencias

Se recomienda no guardar videos en base de datos , se debe activar la función blobs , con el objetivo de que se guarde , para cuando se requiere tenerla a disposición

Es muy importante que entendamos los cuatro formatos:

  • Custom: es un formato único que usa postgres para guardar la información de la base de datos. Si las vas a restaurar, usas postgres en PgAdmin para restaurarla, no puedes dar un formato Custom con otros editores.
  • Tar: es un archivo comprimido que contiene la estructura de la base de datos
  • Plain: simplemente es SQL plano. Es decir, tendrán la creación de la tablas como create table, las consultas, los insert, todos como si fuera una gran consulta de base de datos.
  • Directory tiene la estructura sin comprimir de la base de datos.

En este caso vamos a asar Custom, ya que es una de las más potentes porque está hecha para PgAdmin y tiene muchas más opciones que el resto.

para los que les sale el error pg_dump.exe’ file not found. Please correct the Binary Path in the Preferences dialog’

  1. ir a file

  2. preferences

  3. paths

  4. y colocar este enlace, modificar dependiendo la version que tengas C:\Program Files\PostgreSQL\14\bin

El comando pg_dump permite realizar una copia de seguridad de una base de datos completa o de tablas específicas en un archivo de respaldo. La sintaxis básica del comando es la siguiente:

pg_dump nombre_base_datos > nombre_archivo.backup

Donde:

  • nombre_base_datos es el nombre de la base de datos que se quiere respaldar.

  • nombre_archivo.backup es el nombre del archivo de respaldo que se quiere crear.

  • pg_dump: genera todos los archivos de configuración para hacer una copia de nuestra BD.

no coincido con el profesor. el dump no se considera un backup, porque la data cambia en el tiempo y no es consistente. es solo para backapear algúna tabla en la que vamos a trabajar.

  • Para hacer un backup se debe seleccionar la DB que quiero salvar, así mismo configurar el tipo de archivo:
  1. Custom --> Formato especial de Postgres para guardar la info.
  2. Tar --> Archivo comprimido que tiene la estructura de la DB.
  3. Plain --> SQL plano, todos los scripts.
  4. Directory --> Estructura sin comprimir de la DB.
  • No es aconsejable guardar datos binarios en las tablas ya que puedo hacer que el peso sea enorme.
  • AL hacer la restauración de la DB, se debe hacer sobre una nueva DB.
  • Si el backup es plano, se deben copiar los scripts guardados.

Esto hace que podamos realizar copias de una manera muy eficiente

Excelente!!!

Excelente

excelente

creo que es necesario establecer la ruta de directorio para backup y restore. A mi no me dejo hacer backup.

Custom, Esta opción única de postgres y solo se puede restaurar por pgAdmin. Tar, Es un archivo comprimido que contiene la estructura de la base de datos. Plain, simplemente es un archivo.sql. Directory tiene solo la estructura sin comprimir de la base de datos.

Compression ratio: es el número de veces que algoritmo de compresión se ejecuta para reducir el tamaño del archivo

Encoding: hace referencia al tipo de codificación de los carácteres

Role name Es de quién va a hacer dueño ese dump

Number Of Jobs lo debe determinar pgAdmin

Pestaña Dump options, Nos permite configurar la opción si queremos el backup con datos o solo la estructura de la tabla, también se puede definir el propietario.

Pestaña Dump options, la opción Sections se pueden poner los datos antes de ser insertados o no ser insertados como acciones. Sí seleccionamos los datos no tenemos que preocuparnos por el esquema.

Pestaña Dump options, la opción Type of objects se puede definir solo los datos (Only data), también podemos solo el esquema (Only schema), por otro lado podemos escoger guardar los binarios sí es que se guardan los binarios (blobs)

Pestaña Dump options, la opción Do not save en esta sección podemos escoger sí guardar el propietario (Owner),

Super importante conocer estas funcionalidades, además postgres por medio de su interfaz lo hace muy amigable.

Backups y Restauración

Backup en pgAdmin

Tipos de formato de la copia.

Dump options

Ubicación del Backup

Restore: Hacer una restauración con pgAdmin