lunes, 23 de abril de 2018

Posibles problemas de Restauracion con Postgres

1. Varias versiones de Postgres en la máquina


A veces no salen las cosas porque hay mas de una versión de Postgres instalada.


  • Comprobamos la versión que hay en el PgAdmin y sale 9.6
  • Comprobamos la versión que sale de ejecutar psql -V y sale 9.5.1
Por tanto se debe de eliminar las versiones antiguas.

Para ello en Ubuntu, en base a este link listamos todos los paquetes de postgres con 

dpkg -l | grep postgres


Eliminamos aquellos paquete que no nos interesan con

sudo apt-get --purge remove paquete1 paquete2 .... paqueteN

Vamos a:

  • /var/lib/postgresql 
  • /var/opt/postgresql
  • /etc/postgresal
y eliminamos lo que haga falta

Buscamos donde está instalado nuestro postgres bueno y metemos el directorio bin en nuesto fichero ~/.bashrc 

Creamos una variable que apunte al directorio bin y lo añadimos al PATH,  por ejemplo:

POSTGRES96=/opt/postgresql/9.6/bin
$PATH=$POSTGRES96:$PATH
export $PATH


guardamos el fichero y así en principio ya apuntamos a nuestro postgres correcto


2. Restaurar una copia de seguridad de otras versiones anteriores de postgres


Me han pasado una copia en versión backup y no hay manera de restaurarla. Cuando le doy aparece una ventana con todos los comandos pero no hace NADA.
Tampoco PgAdmin4 ayuda ya que no hace la restauración.

Al final me ha funcionado. Estos son los pasos:

1. Creo la BD previamente con el PgAdmin y la llamo openweb. 
2. Abro una pantalla y me situo en el directorio donde está el fichero del backup.
3. El fichero se llama openweb.backup
4. Suponemos que el formato es backup (que corresponde a la opción -F c) Si fuera otro formato como "tar" la opción sería -F t
5. Suponemos que nuestro servidor es localhost ( opción -h localhost) y que el puerto es 5432 (opción -p 5432)
6. Accedemos a la base de datos openweb previamente creada (opción  -d openweb)
7. Para no tener problemas entamos con el usuario postres (opción -U postgres) y le damos a la opción -W para que nos pida el password. Si cuando ejecutamos no nos pide el password, algo presuntamente va mal.
8. Le damos la opción -v de verbose para que de mas información y -c para que cree de nuevo la base de datos. La opción -d openweb es para acceder a la BBDD openweb.
9. Nuestro comando es:

pg_restore -h localhost -p 5432 -U postgres -W -v -F c  -c -d openweb openweb.backup

10. Si no salen WARNINGS es que no nos ha hecho caso y no ha funcionado el restore!!!

11. Comprobar (con PgAdmin y haciendo un Refresh)  que la Base de datos ya tiene cargados los datos de la restauración.


No hay comentarios :

Publicar un comentario