Error en Backup de Base Datos PostgreSQL

Estoy iniciandome en PostgreSQL. EStoy muy verde aunque algo de ayuda inicial me ha prestado Eduardo Perez.

Intento hacer un backup de una BD en PostgreSQL y me sale el siguiente mensaje:

Pg_dump: error: aborting because of server version mismatch

pg_dump: detail: server version: 17.0; pg_dump version: 16.4

No sé como solucionar este problema.

Si es así gracias anticipadas. JTrillo

2 Respuestas

Respuesta
1

Jacinto, bienvenido al mundo de Access y PostgreSQL

El error se debe a que debe configurar los binarios, para la versión 17.

Abra el pgAdmin, vaya a File, Preferences, seleccione del árbol Paths, Binary paths.

En PostgreSQL Binary Path marque en la columna Set as default y de acuerdo con el Database Server (en su caso 17), porque según el error está utilizando la versión 16.4, verifique que el texto de la columna Binary Path aparezca la ruta donde están los binarios. Puede seleccionar el path haciendo clic sobre el botón carpeta.

Le recomiendo que instale el PostgreSQL 16.5 ya que está más probada que la versión 17.

Gracias Eduardo:

Concreto y certero.

Mañana intentaré hacer un Restore en otra máquina para ver el resultado.

A tu lema de "Enseñar no cuesta nada", yo añadiría (en mi caso), "pero aprender si cuesta mucho".

Sondearé la opción de bajarme una versión más probada.

Un cordial saludo >> Jacinto

Si bien es cierto que se puede hacer con Python u otro Front End, le dejo la forma de hacerlo con VBA desde Access.

Pasos para crear un archivo .BAT para hacer respaldo de la base de datos de Postgres desde Access

1. Para evitar que al ejecutar el .bat pregunte el Password de la base de datos se debe incluir (si no existe) el archivo
            pgpass.conf

Este archivo debe alojarse en:

     C:\Users\Eduardo Perez\AppData\Roaming\postgresql

En donde \Eduaro Perez es el usuario administrador del PC

Si no existe la carpeta postgresql se debe crear, en ésta se debe alojar el archivo pgpass. Conf.

2. Creación del archivo pgpass. Conf

Puede hacerlo con el bloc de notas. Ingresar:

Localhost:5432:data_tpv:postgres:mipassword en donde:

Localhost= Es el servidor (puede variar si está en otra dirección IP)
5432 = Es el puerto del servidor
data_tpv= Nombre de la base de datos
mipassword = Contraseña del servidor

3. Creando el archivo .bat

@echo off
rem Debe estar configurado el archivo pgpass.conf para que no pida clave
TITLE COPIA DE RESPALDO MIBASEDATOS
set mifecha=%date:~5,2%%date:~8,2%%date:~11,4%
rem echo %mifecha%
c:
cd\Program Files\PostgreSQL\10\bin
pg_dump.exe -h localhost -p 5432 -U postgres -F c -v -d data_tpv -f D:\PuntoVenta\Backups\data_tpv_%mifecha%.backup
cls
echo BACKUP COMPLETO!!
pause

Explicación:

cd\Program Files\PostgreSQL\10\bin ---> cambie el 10 por la ruta de los binarios, puede ser 11,16,17
data_tpv -f D:\PuntoVenta\Backups\data_tpv_%mifecha%.backup ---> cambie D:\PuntoVenta\Backups por la ruta donde alojará el backup

y cambie data_tpv por el nombre de su base de datos a respaldar.

4. Crear una función para ejeuctar el archivo .bat

Public Function respaldo()
 Dim mibat As String
  If MsgBox("Está seguro. Se van a cerrar todos los formularios abiertos", vbQuestion + vbYesNo + vbDefaultButton2, "SIFACAR") = vbNo Then
    Exit Function
 Else
  Dim I As Integer
  Dim FAbiertos As Integer
    FAbiertos = Forms.Count - 1
    For I = FAbiertos To 0 Step -1
        DoCmd.Close acForm, Forms(I).NAME
    Next
 End If
  mibat = "\respaldo_MIBASEDATOS_win10.bat"
 Shell (CurrentProject.Path & mibat), vbNormalFocus
End Function

El código es para crear el respaldo en Wndows 10 y 11. 

Respuesta
1

Lo que apunta allí es que deben coincidir las dos métricas o versiones, seguramente es una cuestión de librerías, de todas formas, yo los backup de pg los realizo con python que me parece mejor. Postgres es una maravilla realmente

Gracias Alfredo: Tal como cito soy muy novato en PostgreSQL.

Por supuesto Python ni como principiante, pero no descarto hacer algún intento con el tiempo. Supongo que  sabiendo las cosas son más sencillas.

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas