Solución:
Una guía paso a paso
-
Hacer 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/
Entonces corre
sudo apt-get install postgresql-10
. Se instalará una versión más reciente junto con la versión anterior. -
Correr
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 hay un cluster
main
para 10 (ya que se crea de forma predeterminada en la instalación del paquete). Esto se hace para que una instalación nueva funcione desde el primer momento sin la necesidad de crear un clúster primero, pero, por supuesto, entra en conflicto cuando intenta actualizar9.6/main
cuando10/main
también existe. El procedimiento recomendado es eliminar el clúster 10 conpg_dropcluster
y luego actualizar conpg_upgradecluster
. -
Detenga el clúster 10 y suéltelo:
sudo pg_dropcluster 10 main --stop
-
Detenga todos los procesos y servicios que escriben en la base de datos. Detenga la base de datos:
sudo systemctl stop postgresql
-
Actualice el clúster 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Inicie PostgreSQL de nuevo
sudo systemctl start postgresql
-
Correr
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, verifique que todo funcione 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. Cuando actualice 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, ya que -m upgrade
ya es lo suficientemente rápido.
Residencia en:
- Documentos: Actualización de un clúster de PostgreSQL
- Gist # 1: delameko / upgrade-postgres-9.5-to-9.6.md
- Gist # 2: johanndt / upgrade-postgres-9.3-to-9.5.md
- ¿Qué pasa 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.