Práctica de actualización de la versión PostgreSQL. Andrey Salnikov

Le sugiero que se familiarice con la decodificación del informe 2018 de Andrei Salnikov, "La práctica de actualizar las versiones de PostgreSQL"


En su mayor parte, los administradores de sistemas y el DBA tienen miedo de realizar actualizaciones importantes a las versiones de la base de datos (RDBMS) como un incendio, especialmente si esta base de datos está en funcionamiento y tiene una carga bastante alta. La razón principal de esto es el tiempo de inactividad de la base de datos, que siempre está implicado en la planificación de dicho trabajo.


En la práctica, este tipo de actualización lleva bastante tiempo y, a menudo, los administradores con poca experiencia en tales operaciones tienen que volver a la versión anterior de las bases de datos debido a los errores bastante triviales que podrían haberse evitado en la etapa de preparación.


En Data Egret, hemos acumulado una vasta experiencia en la realización de importantes actualizaciones de PostgreSQL en proyectos donde no hay margen para el error. Compartiré mi experiencia y hablaré sobre los próximos pasos en el proceso: ¿cómo prepararse para la actualización de PostgreSQL? ¿Qué hay que hacer en la etapa de preparación? ¿Cómo planificar la secuencia de acciones para la actualización en sí? ¿Cómo llevar a cabo el procedimiento de actualización con éxito, sin volver a la versión anterior de la base de datos? ¿Cómo minimizar o incluso evitar el tiempo de inactividad de todo el sistema durante la actualización? ¿Qué pasos debo completar después de actualizar con éxito PostgreSQL? También hablaré sobre los dos procedimientos de actualización de PostgreSQL más populares: pg_upgrade y pg_dump / pg_restore, los pros y los contras de cada método y hablaré sobre todos los problemas típicos en todas las etapas de este procedimiento y cómo evitarlos.


El informe será interesante tanto para principiantes como para aquellos DBA que han trabajado durante mucho tiempo con PostgreSQL, pero desean aprender más sobre cómo planificar y llevar a cabo la actualización de la manera más sencilla posible.



¡Hola! Yo trabajo en Data Egret. Estamos comprometidos a admitir servidores PostgreSQL y proporcionar servicios de consultoría PostgreSQL. Y la práctica ha demostrado que muy pocas personas actualizan la base de datos. Lanzaron el proyecto, instalan la versión actual en ese momento y todavía están funcionando.


El informe constará de tres partes. El primero es introductorio para llegar a una terminología común. El segundo es sobre actualizaciones menores. Y el tercero será sobre mayor.



El propósito del informe es responder preguntas.


  • ? , Postgres . , - . , . , . .
  • , .
  • , , .
  • , : « ?». .
  • , . , production .

, Postgres.



, , . 10 . , , , – .



10- . , . – , – .



?


. , – . 9.6 , , , . . .


10- . , .


. . , .


. .


– , . 6. . , . . . 9.2. , , 9.2 . 9.2, .


: .



. , , production :


  • release notes. ? , release notes, release notes , . , . - . , , . , 10- , -. , , .
  • ? . , . release notes, . , - . , Postgres , , . , Postgres, .
  • - , , , , production .
  • , – , . — , , , . .

, , , .



. .


, . , Postgres. Postgres.


:


  • PostgreSQL. , - , , , Postgres . . . , . Ubuntu, , , . start.conf. . .
  • PostgreSQL . , , common- . .
  • – checkpoint. checkpoint? , . , , , . , , , , 250 GB, . checkpoint, Postgres.
  • ? pgbouncer, , . pgbouncer, pgbouncer . pgbouncer’ – , - . latency . . . , pgbouncer, . checkpoint, pgbouncer, .
  • , . . , .
  • , extensions, - extensions. – extensions . . . . . .
  • ( , release notes) release notes. – - . , 9.6.1 9.6.6, , release notes 9.6.2 – 9.6.6. - , , , .
  • standby , , . , 14- , 2.3 . . , . .

, release notes.



Postgres.org. 9.6.2. , .


? , , . , . .


. . . , , release notes. .



, . . , , 9.6.5. 9.6.1. , . - . , – . – .


, . . . bash- , . alter extension, update .



?


  • . . , , .
  • . , , , release notes.
  • . , - , . . . .
  • , . . . , checkpoint, 30 .


– .


. , . .


  • Pg_dump restore – . , . - .
  • Pg_upgrade – , , , 95 % , . .
  • .

.



pg_dump ?


  • . , . 9.5, , 10. Ubuntu , RedHat – Postgres. , .
  • locale, .
  • Postgres, , , , , .
  • , pg_dumop. PostgreSQL. ? pg_dump , , , . , , . . PostgreSQL, . . , . , .
  • . pg_dump, . . , .
  • . .
  • , , , PostgreSQL.

, , , .



pg_dump:


  • . – . .
  • . .
  • . : , , . , .
  • , , . .
  • . , . . SSD-, SSD- . , , . .
  • . , . , . , , . , , . .


, pg_upgrade.


  • Pg_upgrade . , . . , . .
  • . , , .
  • PostgreSQL. -, .
  • . .


, pg_upgrade. : , , .


, pg_upgrade, , , . , , . .


, – pg_upgrade dump restore , pg_dump, restore , , , . .


. , , 8.4. Postgres .


, (, 9.0 10) -. , , . . , .



, production. . . , – .


  • PostgreSQL.
  • locace. .
  • pg_upgrade. «check». Check , . , - , , , , . , . , .
  • Pg_dumpall — schema-only. check . pg_dumpall – schema-only, . , . , , check , dump .
  • extensions . – PostGIS, PostGIS Postgres. extension Postgres, Postgres. changelog – , pg_upgrade , . dump restore .


, , , .


  • locale, pg_dumpall only, restore.


  • . , pgbouncer , . . , .


  • checkpoints, , .


  • pg_upgrade. , . . 45 . , 45 , . 15 , . .



  • , . hard links. .



  • PostgreSQL. . PostgreSQL? . , pg_upgrade .


  • .


  • . 10 . , .



:


  • pg_upgrade . , : , 10 .


  • , , .


  • 9.5 . , .



  • . . , , . , vacuumdb 1, 10 . , . - . - . , , .


  • . , . - . , , . , , .




.



  • Pg_upgrade extensions. , .
  • release notes .
  • , , extensions – alter extension EXTENSION_NAME update. . pg_stat_statements, - . pg_upgrade, pg_stat_statements. . .


– ? :


  • - - .
  • , , , , , . . , , .
  • ? Postgres. . . , , , 10 .
  • PostgreSQL.
  • pg_basebackup . .
  • PostgreSQL.
  • , rsync, . , , , . rsync , .


. :


  • -, PostgreSQL.
  • . .

9.4 . . , 10 11 .


, . Slony-l, Londiste, Bucardo . . .



?


  • PostgreSQL.
  • - Postgres Postgres.
  • , , . .
  • , . . , Postgres. , , . . . , .
  • Postgres, , .
  • Postgres, . , , . - .


?


  • , . - .
  • , . . . . , .
  • sequences, -.
  • DDL, . DDL , , . , .
  • , , .


, . pg_upgrade , .


? , 3 TB, 2 SSD RAID 3 TB. . .


. .


, , 99 - 9- . 15 . 15 . . - .



, pg_upgrade. . .


.



! pgbouncer , , , , , . ?


, SSD . SSD , . . . . , , , , . , , . , Postgres. , .


pg_worm pg_hibernate, ?


, , .


! pg_upgrade?


, . , . , . , , - , . , , . , .


rsync -?


rsync? Rsync . , , , , . ? pg_upgrate . , . – pg_start_backup. rsync . - , rsync , . , , , tablespace HDD, rsync , . – , . , . – pg_basebackup.


! , …


Esto se aplica a actualizaciones menores.


All Articles