Praktik peningkatan versi PostgreSQL. Andrey Salnikov

Saya menyarankan agar Anda membiasakan diri dengan decoding laporan 2018 oleh Andrei Salnikov, "Praktek memperbarui versi PostgreSQL"


Sebagian besar, administrator sistem dan DBA takut membuat pembaruan besar ke versi database (RDBMS) sebagai api, terutama jika database ini beroperasi dan memiliki beban yang cukup tinggi. Alasan utama untuk ini adalah beberapa downtime database, yang selalu tersirat dalam perencanaan pekerjaan tersebut.


Dalam praktiknya, pemutakhiran semacam ini membutuhkan waktu yang cukup lama dan seringkali administrator dengan sedikit pengalaman dalam operasi semacam itu harus memutar kembali ke versi lama dari basis data karena kesalahan yang agak sepele yang bisa dihindari pada tahap persiapan.


Dalam Data Egret, kami telah mengumpulkan pengalaman luas dalam melakukan peningkatan PostgreSQL besar dalam proyek-proyek di mana tidak ada ruang untuk kesalahan. Saya akan membagikan pengalaman saya dan berbicara tentang langkah-langkah selanjutnya dalam proses ini: bagaimana mempersiapkan upgrade PostgreSQL? Apa yang perlu dilakukan pada tahap persiapan? Bagaimana merencanakan urutan tindakan untuk meningkatkan sendiri? bagaimana cara menjalankan prosedur pemutakhiran dengan sukses, tanpa kembali ke versi database sebelumnya? bagaimana cara meminimalkan atau bahkan menghindari downtime dari seluruh sistem selama peningkatan? Langkah apa yang harus saya selesaikan setelah berhasil memutakhirkan PostgreSQL? Saya juga akan berbicara tentang dua prosedur peningkatan PostgreSQL yang paling populer - pg_upgrade dan pg_dump / pg_restore, pro dan kontra dari setiap metode dan memberi tahu tentang semua masalah khas pada semua tahap prosedur ini, dan bagaimana cara menghindarinya.


Laporan ini akan menarik bagi para pemula dan para DBA yang telah lama bekerja dengan PostgreSQL, tetapi ingin mempelajari lebih lanjut tentang cara merencanakan dan melakukan pemutakhiran semaksimal mungkin tanpa rasa sakit.



Halo! Saya bekerja di Data Egret. Kami berkomitmen untuk mendukung server PostgreSQL dan menyediakan layanan konsultasi PostgreSQL. Dan latihan telah menunjukkan bahwa sangat sedikit orang memperbarui database. Mereka meluncurkan proyek, menginstal versi saat ini pada saat itu dan masih berfungsi.


Laporan akan terdiri dari tiga bagian. Yang pertama adalah pengantar untuk sampai pada terminologi umum. Yang kedua adalah tentang pembaruan kecil. Dan yang ketiga adalah tentang jurusan.



Tujuan dari laporan ini adalah untuk menjawab pertanyaan.


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


! , …


Ini berlaku untuk pembaruan kecil.


All Articles