Una guía paso a paso
-
Haz una copia de seguridad . Asegúrese de que su base de datos no se esté actualizando.
pg_dumpall > outputfile
-
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. -
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 actualizar9.6/main
cuando10/main
también existe El procedimiento recomendado es eliminar el clúster 10 conpg_dropcluster
y luego actualice conpg_upgradecluster
. -
Detenga el grupo 10 y suéltelo:
sudo pg_dropcluster 10 main --stop
-
Detenga todos los procesos y servicios que escriben en la base de datos. Detener la base de datos:
sudo systemctl stop postgresql
-
Actualice el clúster 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Vuelva a iniciar PostgreSQL
sudo systemctl start postgresql
-
Ejecute
pg_lsclusters
. Su clúster 9.6 ahora debería estar "inactivo", y el clúster 10 debería estar en línea en5432
: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
-
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.