ممارسة ترقية إصدار PostgreSQL. أندري سالنيكوف

أقترح أن تتعرف على فك تشفير تقرير 2018 من قبل أندريه سالنيكوف ، "ممارسة تحديث إصدارات PostgreSQL"


بالنسبة للجزء الأكبر ، يخشى مسؤولو النظام و DBA من إجراء تحديثات رئيسية لإصدارات قاعدة البيانات (RDBMS) على أنها حريق ، خاصة إذا كانت قاعدة البيانات هذه قيد التشغيل ولديها حمل مرتفع إلى حد ما. السبب الرئيسي لذلك هو بعض فترات توقف قاعدة البيانات ، والتي يتم تضمينها دائمًا في تخطيط مثل هذا العمل.


من الناحية العملية ، يستغرق هذا النوع من الترقية وقتًا طويلاً وغالبًا ما يتعين على المسؤولين الذين لديهم خبرة قليلة في مثل هذه العمليات العودة إلى الإصدار القديم من قواعد البيانات بسبب الأخطاء التافهة التي كان يمكن تجنبها في مرحلة الإعداد.


في Data Egret ، تراكمت لدينا خبرة واسعة في إجراء ترقيات PostgreSQL كبيرة في المشاريع حيث لا يوجد مجال للخطأ. سوف أشارك تجربتي وأتحدث عن الخطوات التالية في العملية: كيف تستعد لترقية PostgreSQL؟ ما الذي يجب القيام به في مرحلة التحضير؟ كيف تخطط لتسلسل الإجراءات للترقية نفسها؟ كيفية تنفيذ إجراء الترقية بنجاح ، دون الرجوع إلى الإصدار السابق من قاعدة البيانات؟ كيفية تقليل وقت التوقف عن النظام بأكمله أو حتى تجنبه أثناء الترقية؟ ما هي الخطوات التي يجب أن أكملها بعد ترقية PostgreSQL بنجاح؟ سأتحدث أيضًا عن أكثر إجراءات ترقية PostgreSQL الأكثر شيوعًا - pg_upgrade و pg_dump / pg_restore ، إيجابيات وسلبيات كل طريقة وأخبرنا عن جميع المشاكل النموذجية في جميع مراحل هذا الإجراء ، وكيفية تجنبها.


سيكون التقرير مثيرًا للاهتمام لكل من المبتدئين وأولئك العاملين في DBA الذين عملوا لفترة طويلة مع PostgreSQL ، ولكنهم يريدون معرفة المزيد حول كيفية التخطيط وإجراء الترقية بشكل صحيح دون ألم قدر الإمكان.



مرحبا! أنا أعمل في Data Egret. نحن ملتزمون بدعم خوادم PostgreSQL وتقديم خدمات استشارية PostgreSQL. وقد أظهرت الممارسة أن قلة قليلة من الناس يقومون بتحديث قاعدة البيانات. أطلقوا المشروع ، وتثبيت الإصدار الحالي في ذلك الوقت وما زالوا يعملون.


سيتألف التقرير من ثلاثة أجزاء. الأول هو مقدمة تمهيدية للوصول إلى مصطلحات مشتركة. والثاني عن تحديثات طفيفة. والثالث سيكون عن التخصص.



الغرض من التقرير هو الإجابة على الأسئلة.


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


! , …


هذا ينطبق على التحديثات الطفيفة.


All Articles