PostgreSQL-Versions-Upgrade-Praxis. Andrey Salnikov

Ich schlage vor, dass Sie sich mit der EntschlĂĽsselung des Berichts 2018 von Andrei Salnikov "Die Praxis der Aktualisierung von PostgreSQL-Versionen" vertraut machen.


Zum größten Teil haben Systemadministratoren und der DBA Angst, größere Aktualisierungen der Datenbankversionen (RDBMS) als Brand vorzunehmen, insbesondere wenn diese Datenbank in Betrieb ist und eine relativ hohe Auslastung aufweist. Der Hauptgrund dafür ist eine Ausfallzeit der Datenbank, die bei der Planung solcher Arbeiten immer berücksichtigt wird.


In der Praxis dauert diese Art der Aktualisierung ziemlich lange, und häufig müssen Administratoren mit wenig Erfahrung in solchen Vorgängen aufgrund der eher geringfügigen Fehler, die in der Vorbereitungsphase hätten vermieden werden können, auf die alte Version der Datenbanken zurücksetzen.


In Data Egret haben wir umfangreiche Erfahrungen mit der Durchführung wichtiger PostgreSQL-Upgrades in Projekten gesammelt, in denen kein Fehler möglich ist. Ich werde meine Erfahrungen teilen und über die nächsten Schritte im Prozess sprechen: Wie bereite ich mich auf das PostgreSQL-Upgrade vor? Was ist in der Vorbereitungsphase zu tun? Wie plane ich die Abfolge der Aktionen für das Upgrade selbst? Wie kann ein Upgrade erfolgreich durchgeführt werden, ohne zur vorherigen Version der Datenbank zurückzukehren? Wie können Ausfallzeiten des gesamten Systems während des Upgrades minimiert oder sogar vermieden werden? Welche Schritte muss ich nach dem erfolgreichen Upgrade von PostgreSQL ausführen? Ich werde auch über die beiden beliebtesten PostgreSQL-Upgrade-Verfahren sprechen - pg_upgrade und pg_dump / pg_restore, die Vor- und Nachteile jeder Methode und über alle typischen Probleme in allen Phasen dieses Verfahrens und wie man sie vermeidet.


Der Bericht wird sowohl für Anfänger als auch für DBAs interessant sein, die seit langem mit PostgreSQL arbeiten, aber mehr darüber erfahren möchten, wie Upgrades so schmerzlos wie möglich richtig geplant und durchgeführt werden können.



Hallo! Ich arbeite bei Data Egret. Wir unterstĂĽtzen PostgreSQL-Server und bieten PostgreSQL-Beratungsdienste an. Und die Praxis hat gezeigt, dass nur sehr wenige Menschen die Datenbank aktualisieren. Sie haben das Projekt gestartet, die aktuelle Version zu diesem Zeitpunkt installiert und arbeiten noch.


Der Bericht wird aus drei Teilen bestehen. Die erste ist eine EinfĂĽhrung, um zu einer gemeinsamen Terminologie zu gelangen. Der zweite betrifft kleinere Updates. Und der dritte wird ĂĽber Major sein.



Der Zweck des Berichts ist die Beantwortung von Fragen.


  • ? , 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.


! , …


Dies gilt fĂĽr kleinere Updates.


All Articles