Saltar al contenido

Cómo actualizar la base de datos postgresql de 10 a 12 sin perder datos para openproject

Revisamos exhaustivamente cada secciones de nuestra página web con el objetivo de enseñarte en todo momento información certera y certera.

Solución:

A) Primero cree una copia de seguridad de todas las bases de datos para eso (puede continuar desde B si no necesita una copia de seguridad)

  1. Iniciar sesión como usuario de postgres
    sudo su postgres
  1. Cree un archivo .sql de respaldo para todos los datos que tiene en todas las bases de datos
    pg_dumpall > backup.sql

B) Actualizar a PostgreSQL12

  1. actualizar paquetes e instalar postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Detener el servicio postgresql
     sudo systemctl stop postgresql.service
  1. migrar los datos
     /usr/lib/postgresql/12/bin/pg_upgrade 
     --old-datadir=/var/lib/postgresql/10/main 
     --new-datadir=/var/lib/postgresql/12/main 
     --old-bindir=/usr/lib/postgresql/10/bin 
     --new-bindir=/usr/lib/postgresql/12/bin 
     --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' 
     --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
  1. Cambiar a usuario normal
     exit
  1. Intercambie los puertos de las versiones antiguas y nuevas de postgres.
     sudo vim /etc/postgresql/12/main/postgresql.conf
     #change port to 5432
     sudo vim /etc/postgresql/10/main/postgresql.conf
     #change port to 5433
  1. Inicie el servicio postgresql
     sudo systemctl start postgresql.service
  1. Iniciar sesión como usuario de postgres
     sudo su postgres
  1. Verifique su nueva versión de postgres
     psql -c "SELECT version();"
  1. Ejecute el nuevo script de clúster generado
     ./analyze_new_cluster.sh
  1. Regrese como un usuario normal (usuario predeterminado) y limpie el desorden de la versión anterior
     sudo apt-get remove postgresql-10 postgresql-server-dev-10
     #uninstalls postgres packages
     sudo rm -rf /etc/postgresql/10/
     #removes the old postgresql directory
     sudo su postgres
     #login as postgres user
     ./delete_old_cluster.sh
     #delete the old cluster data
  1. ¡Felicidades! Su versión de postgresql ahora está actualizada. Si todo funciona bien en B, no tenemos que aplicar la copia de seguridad ya que hemos migrado los datos de la versión anterior a la versión más nueva, la copia de seguridad es solo en caso de que algo salga mal.

NOTA: Cambie postgresql.conf y pg_hba.conf según sus requisitos

PD: Siéntase libre de comentar sus problemas, sugerencias o cualquier otra modificación que le gustaría sugerir

  1. Copia de seguridad de la base de datos
    psql --version sudo -u postgres psql pg_dumpall > alldbs.sql
    

    (este comando hará una copia de seguridad de todas las bases de datos de la base de datos postgresql)

Luego salga del usuario de postgres y:

  1. Dentro de una terminal ejecuta estos comandos:

    sudo systemctl stop postgres
    sudo apt-get install -y postgresql-12 postgresql-server-dev-12 postgresql-contrib-12 libpq-dev postgresql-12-hypopg
    sudo pg_dropcluster 12 main --stop
    sudo pg_upgradecluster 10 main
    sudo pg_dropcluster 10 main --stop
    
  2. reinicie el servicio postgresql:

    sudo systemctl restart postgresql
    
  3. iniciar sesión en el postgres:

    su - postgres
    
  4. para comprobar la versión:

    psql --version
    

Lo hice siguiendo los pasos anteriores y pude actualizar la base de datos y restaurar todos los datos.

Finalizando este artículo puedes encontrar las reseñas de otros programadores, tú también eres capaz insertar el tuyo si te apetece.

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