sql >> Base de Datos >  >> RDS >> PostgreSQL

Actualice PostgreSQL de 9.6 a 10.0 en Ubuntu 16.10

Una guía paso a paso

  1. Haz una copia de seguridad . Asegúrese de que su base de datos no se esté actualizando.

     pg_dumpall > outputfile
    
  2. Instalar Postgres 10 . Siga las instrucciones en esta página:https://www.postgresql.org/download/linux/ubuntu/

    Luego ejecute sudo apt-get install postgresql-10 . Se instalará una versión más nueva junto con la versión anterior.

  3. Ejecute pg_lsclusters :

     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5433 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    

    Ya existe un clúster main para 10 (ya que esto se crea de forma predeterminada en la instalación del paquete). Esto se hace para que una instalación nueva funcione sin necesidad de crear un clúster primero, pero, por supuesto, falla cuando intenta actualizar 9.6/main cuando 10/main también existe El procedimiento recomendado es eliminar el clúster 10 con pg_dropcluster y luego actualice con pg_upgradecluster .

  4. Detenga el grupo 10 y suéltelo:

     sudo pg_dropcluster 10 main --stop
    
  5. Detenga todos los procesos y servicios que escriben en la base de datos. Detener la base de datos:

     sudo systemctl stop postgresql 
    
  6. Actualice el clúster 9.6:

     sudo pg_upgradecluster -m upgrade 9.6 main
    
  7. Vuelva a iniciar PostgreSQL

     sudo systemctl start postgresql
    
  8. Ejecute pg_lsclusters . Su clúster 9.6 ahora debería estar "inactivo", y el clúster 10 debería estar en línea en 5432 :

     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5433 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    
  9. Primero, comprueba que todo funciona bien. Después de eso, elimine el clúster 9.6:

      sudo pg_dropcluster 9.6 main --stop
    

Algunas notas sobre pg_upgradecluster

Esta guía funciona bien para actualizar de 9.5 a 10.1. Al actualizar desde una versión anterior, considere omitir -m upgrade en el paso #6:

sudo pg_upgradecluster 9.6 main

Si tiene un clúster realmente grande, puede usar pg_upgradecluster con un --link opción, para que la actualización esté en su lugar. Sin embargo, esto es peligroso:puede perder el clúster en caso de falla. Simplemente no use esta opción si no es necesario, como -m upgrade ya es lo suficientemente rápido.

Basado en:

  • Documentos:Actualización de un clúster de PostgreSQL
  • Gista n.º 1:delameko/upgrade-postgres-9.5-to-9.6.md
  • Gist #2:johanndt/upgrade-postgres-9.3-to-9.5.md
  • ¿Qué sucede si interrumpo o cancelo pg_upgradecluster? ?
  • Página de manual de Ubuntu para pg_upgradecluster

Actualizar

Esta guía funciona bien para actualizar de 9.6 a 11 y de 10 a 11, así como de 10 a 13.