Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° Patroni Π΅ Π΄Π° осигури висока наличност Π·Π° PostgreSQL. Но Patroni Π΅ само шаблон, Π° Π½Π΅ Π³ΠΎΡ‚ΠΎΠ² инструмСнт (ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ сС ΠΊΠ°Π·Π²Π° Π² докумСнтацията). На ΠΏΡ€ΡŠΠ² ΠΏΠΎΠ³Π»Π΅Π΄, слСд ΠΊΠ°Ρ‚ΠΎ настроитС Patroni Π² тСстовата лаборатория, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ какъв страхотСн инструмСнт Π΅ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ лСсно сС справя с ΠΎΠΏΠΈΡ‚ΠΈΡ‚Π΅ Π½ΠΈ Π΄Π° Ρ€Π°Π·Π±ΠΈΠ΅ΠΌ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΎΠ±Π°Ρ‡Π΅ Π² производствСна срСда Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ всичко сС случва Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° красиво ΠΈ Π΅Π»Π΅Π³Π°Π½Ρ‚Π½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² тСстова лаборатория.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° сСбС си. Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ… ΠΊΠ°Ρ‚ΠΎ систСмСн администратор. Π Π°Π±ΠΎΡ‚ΠΈΠ» Π² ΡƒΠ΅Π± Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Работя Π² Data Egret ΠΎΡ‚ 2014 Π³. Π€ΠΈΡ€ΠΌΠ°Ρ‚Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с консултации Π² областта Π½Π° Postgres. И Π½ΠΈΠ΅ обслуТвамС Ρ‚ΠΎΡ‡Π½ΠΎ Postgres ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Postgres всСки Π΄Π΅Π½, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚, ΡΠ²ΡŠΡ€Π·Π°Π½ с опСрацията.

И Π² края Π½Π° 2018 Π³. Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π±Π°Π²Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Patroni. И сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ° извСстСн ΠΎΠΏΠΈΡ‚. Някак си Π³ΠΎ диагностицирахмС, настроихмС Π³ΠΎ, стигнахмС Π΄ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. И Π² Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ‰Π΅ говоря Π·Π° тях.

ОсвСн Postgres, ΠΎΠ±ΠΈΡ‡Π°ΠΌ Linux. ΠžΠ±ΠΈΡ‡Π°ΠΌ Π΄Π° сС ровя Π² Π½Π΅Π³ΠΎ ΠΈ Π΄Π° изслСдвам, ΠΎΠ±ΠΈΡ‡Π°ΠΌ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌ ядра. ΠžΠ±ΠΈΡ‡Π°ΠΌ виртуализацията, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅, Π΄ΠΎΠΊΠ΅Ρ€ΠΈΡ‚Π΅, Kubernetes. Всичко Ρ‚ΠΎΠ²Π° ΠΌΠ΅ интСрСсува, Π·Π°Ρ‰ΠΎΡ‚ΠΎ старитС администраторски Π½Π°Π²ΠΈΡ†ΠΈ влияят. ΠžΠ±ΠΈΡ‡Π°ΠΌ Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. И Π°Π· ΠΎΠ±ΠΈΡ‡Π°ΠΌ postgres Π½Π΅Ρ‰Π°, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с администриранС, Ρ‚.Π΅. рСпликация, Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅. А Π² свободното си Π²Ρ€Π΅ΠΌΠ΅ пиша Π½Π° Go. НС съм софтуСрСн ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€, просто пиша Π·Π° сСбС си Π² Go. И ΠΌΠΈ доставя удоволствиС.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

  • Мисля, Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ вас знаят, Ρ‡Π΅ Postgres няма HA (High Availability) Π²Π΅Π΄Π½Π°Π³Π°. Π—Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ HA, трябва Π΄Π° инсталиратС Π½Π΅Ρ‰ΠΎ, Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅, Π΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ усилия ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅.
  • Има няколко инструмСнта ΠΈ Patroni Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ тях, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° HA доста Π³ΠΎΡ‚ΠΈΠ½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅. Но ΠΊΠ°Ρ‚ΠΎ поставим всичко Ρ‚ΠΎΠ²Π° Π² тСстова лаборатория ΠΈ Π³ΠΎ стартирамС, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ някои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Patroni Π³ΠΈ обслуТва. И Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ чудСсно.
  • Но Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. И Π°Π· Ρ‰Π΅ говоря Π·Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.
  • Π©Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π³ΠΎ диагностицирахмС, ΠΊΠ°ΠΊΠ²ΠΎ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ…ΠΌΠ΅ - Π΄Π°Π»ΠΈ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΈΠ»ΠΈ Π½Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

  • Няма Π΄Π° Π²ΠΈ ΠΊΠ°Π·Π²Π°ΠΌ ΠΊΠ°ΠΊ Π΄Π° инсталиратС Patroni, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π² Google Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΡ‡Π²Π° всичко, ΠΊΠ°ΠΊ Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ схСмитС, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈΡ‚Π΅, Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ информация Π·Π° Ρ‚ΠΎΠ²Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.
  • Няма Π΄Π° говоря Π·Π° Ρ‡ΡƒΠΆΠ΄ ΠΎΠΏΠΈΡ‚. Π©Π΅ говоря само Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅.
  • И няма Π΄Π° говоря Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са извън Patroni ΠΈ PostgreSQL. Ако Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с балансиранСто, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ сС Π΅ сринал, няма Π΄Π° говоря Π·Π° Ρ‚ΠΎΠ²Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И малък ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ отговорност, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ нашия Π΄ΠΎΠΊΠ»Π°Π΄.

Всички Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅, Π³ΠΈ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π· ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 6-7-8 мСсСца Ρ€Π°Π±ΠΎΡ‚Π°. Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ стигнахмС Π΄ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. И ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½ΠΈ ΠΈΠ·Ρ‡Π΅Π·Π½Π°Ρ…Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄ΡŠΡ‚ бСшС обявСн ΠΏΡ€Π΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡˆΠ΅ΡΡ‚ мСсСца, ΠΊΠΎΠ³Π°Ρ‚ΠΎ всичко бСшС прясно Π² Π³Π»Π°Π²Π°Ρ‚Π° ΠΌΠΈ ΠΈ Π³ΠΎ ΠΏΠΎΠΌΠ½Π΅Ρ… ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ‚Π½ΠΎ.

Π’ Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°Ρ… стари аутопсии, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ… Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈΡ‚Π΅. И някои ΠΎΡ‚ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π±Ρ€Π°Π²Π΅Π½ΠΈ ΠΈΠ»ΠΈ някои ΠΎΡ‚ някои Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ напълно ΠΏΡ€ΠΎΡƒΡ‡Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π² някои ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π΅ са напълно Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ ΠΈΠ»ΠΈ ΠΈΠΌΠ° извСстна липса Π½Π° информация. И Π·Π°Ρ‚ΠΎΠ²Π° Π²ΠΈ моля Π΄Π° ΠΌΠ΅ ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Какво С Patroni?

  • Π’ΠΎΠ²Π° Π΅ шаблон Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° HA. Π’Π°ΠΊΠ° пишС Π² докумСнтацията. И ΠΎΡ‚ моя Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅. Patroni Π½Π΅ Π΅ ΡΡ€Π΅Π±ΡŠΡ€Π΅Π½ ΠΊΡƒΡ€ΡˆΡƒΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π΅ΡˆΠΈ всичкитС Π²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, тоСст трябва Π΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ усилия, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ Π΄Π° носи ΠΏΠΎΠ»Π·ΠΈ.
  • Π’ΠΎΠ²Π° Π΅ агСнтска услуга, която сС инсталира Π½Π° всяка услуга Π·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΅ Π²ΠΈΠ΄ систСма Π·Π° стартиранС Π½Π° вашия Postgres. Π’ΠΎΠΉ стартира Postgres, спира, рСстартира, ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° ΠΈ промСня топологията Π½Π° вашия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.
  • Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π·Π° Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎ прСдставянС, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ някакво Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. И ΠΎΡ‚ Ρ‚Π°Π·ΠΈ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Patroni ΠΏΠΎΠ΅ ΠΏΠΎ ΠΏΡŠΡ‚Ρ Π½Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ във външна систСма. Π’ΠΎΠ²Π° Π΅ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° систСма Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° конфигурация. МоТС Π΄Π° бъдС Etcd, Consul, ZooKeeper ΠΈΠ»ΠΈ kubernetes Etcd, Ρ‚.Π΅. Π΅Π΄Π½Π° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ†ΠΈΠΈ.
  • И Π΅Π΄Π½Π° ΠΎΡ‚ характСристикитС Π½Π° Patroni Π΅, Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ автоматичния Ρ„Π°ΠΉΠ» ΠΎΡ‚ кутията, само ΠΊΠ°Ρ‚ΠΎ Π³ΠΎ настроитС. Ако Π²Π·Π΅ΠΌΠ΅ΠΌ Repmgr Π·Π° сравнСниС, Ρ‚ΠΎΠ³Π°Π²Π° Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ‚Π°ΠΌ. Π‘ Repmgr ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅, Π½ΠΎ Π°ΠΊΠΎ искамС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ», Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ. Patroni Π²Π΅Ρ‡Π΅ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ».
  • И ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Π½Π΅Ρ‰Π° ΠΈΠΌΠ°. НапримСр ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, сипванС Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, бСкъп ΠΈ Ρ‚.Π½. Но Ρ‚ΠΎΠ²Π° Π΅ извън ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°, няма Π΄Π° говоря Π·Π° Ρ‚ΠΎΠ²Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И малък Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π΅, Ρ‡Π΅ основната Π·Π°Π΄Π°Ρ‡Π° Π½Π° Patroni Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ» Π΄ΠΎΠ±Ρ€Π΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π΄Π° останС Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² топологията Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Но ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Patroni, систСмата Π½ΠΈ става ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-слоТна. Ако ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ Postgres, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Patroni ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ самия Patroni, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ DCS, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ. И всичко трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½. И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ±ΡŠΡ€ΠΊΠ°?

МоТС Π΄Π° сС счупи:

  • Postgre ΠΌΠΎΠΆΠ΅ Π΄Π° сС счупи. МоТС Π΄Π° Π΅ майстор ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, ΠΌΠΎΠΆΠ΅ някой ΠΎΡ‚ тях Π΄Π° сС ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ.
  • Бамият Patroni ΠΌΠΎΠΆΠ΅ Π΄Π° сС счупи.
  • DCS, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ.
  • И ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС счупи.

Всички Ρ‚Π΅Π·ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌ Π² Π΄ΠΎΠΊΠ»Π°Π΄Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π©Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌ случаитС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стават ΠΏΠΎ-слоТни, Π° Π½Π΅ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, Ρ‡Π΅ случаят Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. И ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° субСктивнитС усСщания, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ случай ΠΌΠΈ бСшС Ρ‚Ρ€ΡƒΠ΄Π΅Π½, бСшС Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° Π³ΠΎ разглобя ... ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ, някой случай бСшС Π»Π΅ΠΊ ΠΈ бСшС лСсно Π΄Π° Π³ΠΎ разглобя.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И ΠΏΡŠΡ€Π²ΠΈΡΡ‚ случай Π΅ Π½Π°ΠΉ-лСсният. Вакъв Π΅ случаят, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π·Π΅Ρ…ΠΌΠ΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΎΡ‚ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ…ΠΌΠ΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ DCS Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΡΡŠΡ‰ΠΈΡ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-чСстата Π³Ρ€Π΅ΡˆΠΊΠ°. Π’ΠΎΠ²Π° Π΅ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ, Ρ‚.Π΅. ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Π΅Π΄Π½ΠΎ място.

И Ρ‚Π°ΠΊΠ°, имашС Ρ„Π°ΠΉΠ», Π½Π΅ΠΊΠ° Π΄Π° сС справим със случилото сС.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Ρ‚ΡƒΠΊ Π½ΠΈ интСрСсува ΠΊΠΎΠ³Π° сС Π΅ случил Ρ„ΠΈΠ»Π΅Ρ€ΡŠΡ‚. ВоСст, Π½ΠΈΠ΅ сС интСрСсувамС ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ.

Но Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½, тоСст Π½Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π±Π°Π²ΠΈ. МоТС Π΄Π° бъдС Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°Π΅Π½.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Ρ‚ΠΎ ΠΈΠΌΠ° Π½Π°Ρ‡Π°Π»Π΅Π½ ΠΈ ΠΊΡ€Π°Π΅Π½ час, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅. И Π½ΠΈΠ΅ раздСлямС всички ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π½Π° Ρ‚Ρ€ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°: ΠΈΠΌΠ°ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΈ слСд Ρ„Π°ΠΉΠ»Π°. ВоСст, Π½ΠΈΠ΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ всички ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² Ρ‚Π°Π·ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²Π° линия.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС случи Ρ„ΠΈΠ»Π΅Ρ€, Π½ΠΈΠ΅ Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° случилото сС, ΠΊΠ°ΠΊΠ²Π° Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Ρ„ΠΈΠ»Π΅Ρ€Π°.

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Ρ‚Ρ€ΡƒΠΏΠΈΡ‚Π΅, Ρ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ класичСски Ρ‚Ρ€ΡƒΠΏΠΈ Patroni. Π’ΠΎΠΉ Π½ΠΈ ΠΊΠ°Π·Π²Π° Π² тях, Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΅ станал Π³Π»Π°Π²Π΅Π½ ΠΈ ролята Π½Π° главния Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»Π° към Ρ‚ΠΎΠ·ΠΈ възСл. Π’ΡƒΠΊ Π΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€Ρ‚Π°Π½ΠΎ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π°Ρ‰ΠΎ сС Π΅ случило Ρ„Π°ΠΉΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, Ρ‚.Π΅. ΠΊΠ°ΠΊΠ²ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ са Π½Π°ΡΡ‚ΡŠΠΏΠΈΠ»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°ΠΊΠ°Ρ€Π°Π»ΠΈ Π³Π»Π°Π²Π½Π°Ρ‚Π° роля Π΄Π° сС прСмСсти ΠΎΡ‚ Π΅Π΄ΠΈΠ½ възСл Π² Π΄Ρ€ΡƒΠ³. И Π² Ρ‚ΠΎΠ·ΠΈ случай всичко Π΅ просто. ИмамС Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ взаимодСйствиС със систСмата Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅. ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ΡŠΡ‚ Ρ€Π°Π·Π±Ρ€Π°, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с DCS, тоСст ΠΈΠΌΠ° някакъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с взаимодСйствиСто. И ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС господар ΠΈ си ΠΏΠΎΠ΄Π°Π²Π° оставката. Π’ΠΎΠ·ΠΈ Ρ€Π΅Π΄ β€žΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ сСбС ΡΠΈβ€œ ΠΊΠ°Π·Π²Π° Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Ако Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π°, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π°Ρ‰ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ самитС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π·Π° Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ ΡΡŠΠ²Π΅Ρ‚Π½ΠΈΠΊΠ°.

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Patroni, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ, изчаквания, Ρ‚.Π΅. Π°Π³Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° Patroni Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с DCS. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‚ΠΎΠ²Π° Π΅ Consul agent, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° Π½Π° ΠΏΠΎΡ€Ρ‚ 8500.

И ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Ρ‚ΡƒΠΊ Π΅, Ρ‡Π΅ Patroni ΠΈ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ работят Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ хост. И ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Consul бяха стартирани Π½Π° ΡΡŠΡ‰ΠΈΡ възСл. Бъздавайки Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Consul. Π’Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° ΠΎΠ±Ρ‰ΡƒΠ²Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π‘Π»Π΅Π΄ извСстно Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ намаля, Π½Π°ΡˆΠΈΡΡ‚ ΠŸΠ°Ρ‚Ρ€ΠΎΠ½ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ успя Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° с Π°Π³Π΅Π½Ρ‚ΠΈ. Нормалната Ρ€Π°Π±ΠΎΡ‚Π° бСшС възобновСна. И ΡΡŠΡ‰ΠΈΡΡ‚ Pgdb-2 ΡΡŠΡ€Π²ΡŠΡ€ ΠΎΡ‚Π½ΠΎΠ²ΠΎ стана Π³Π»Π°Π²Π΅Π½. ВоСст имашС малък Ρ„Π»ΠΈΠΏ, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Π²ΡŠΠ·Π΅Π»ΡŠΡ‚ сС ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ правомощията Π½Π° ΠΊΠ°ΠΏΠΈΡ‚Π°Π½Π° ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π³ΠΈ ΠΏΠΎΠ΅, тоСст всичко сС Π²ΡŠΡ€Π½Π° ΠΊΠ°ΠΊΡ‚ΠΎ си бСшС.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ Ρ„Π°Π»ΡˆΠΈΠ²Π° Ρ‚Ρ€Π΅Π²ΠΎΠ³Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС счита, Ρ‡Π΅ ΠŸΠ°Ρ‚Ρ€ΠΎΠ½ΠΈ Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ» всичко ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ. ВоСст Ρ‚ΠΎΠΉ Ρ€Π°Π·Π±Ρ€Π°, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π° правомощията си.

И Ρ‚ΡƒΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ възникна ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Consul са Π½Π° ΡΡŠΡ‰ΠΈΡ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·ΠΈΡ‚Π΅. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ всяко Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅: нСзависимо Π΄Π°Π»ΠΈ Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° дисковС ΠΈΠ»ΠΈ процСсори, Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ засяга взаимодСйствиСто с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Π½Π΅ трябва Π΄Π° ΠΆΠΈΠ²Π΅Π΅ Π·Π°Π΅Π΄Π½ΠΎ, ΠΎΡ‚Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π·Π° ΠšΠΎΠ½ΡΡƒΠ». А Patroni Π²Π΅Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ с ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Consul, тоСст имашС ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Postgres cluster, ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Consul cluster. Π’ΠΎΠ²Π° Π΅ основна инструкция ΠΊΠ°ΠΊ Π΄Π° носитС ΠΈ ΠΏΠ°Π·ΠΈΡ‚Π΅ всички Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π°, Π·Π° Π΄Π° Π½Π΅ ΠΆΠΈΠ²Π΅Π΅ Π·Π°Π΅Π΄Π½ΠΎ.

ΠšΠ°Ρ‚ΠΎ опция ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π²ΡŠΡ€Ρ‚ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ttl, loop_wait, retry_timeout, Ρ‚.Π΅. ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ сС Π΄Π° ΠΏΡ€Π΅ΠΆΠΈΠ²Π΅Π΅Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ краткосрочни ΠΏΠΈΠΊΠΎΠ²Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, ΠΊΠ°Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π½Π°ΠΉ-подходящият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС дълго във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ. И Π½ΠΈΠ΅ просто Ρ‰Π΅ ΠΈΠ·Π»Π΅Π·Π΅ΠΌ извън Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Π½ΠΈΡ†ΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. И Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ наистина Π΄Π° Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΊΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Π΅ прост. Π’Π·Π΅Ρ…ΠΌΠ΅ ΠΈ слоТихмС DCS Π·Π°Π΅Π΄Π½ΠΎ с основата, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Вторият ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ. Подобно Π΅, Ρ‡Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ със систСмата DCS.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π³Ρ€Π΅ΡˆΠΊΠ° Π² комуникацията. И Patroni ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° взаимодСйствам с DCS, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ тСкущият мастСр ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°.

Бтарият майстор става Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Ρ‚ΡƒΠΊ Patroni Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ трябва. Π’ΠΎΠΉ изпълнява pg_rewind, Π·Π° Π΄Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚ΠΈ ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с новия мастСр, Π·Π° Π΄Π° навакса с новия мастСр. Π’ΡƒΠΊ ΠŸΠ°Ρ‚Ρ€ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ трябва.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ΡƒΠΊ трябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ мястото, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Ρ…ΠΎΠΆΠ΄Π° Ρ„Π°ΠΉΠ»Π°, Ρ‚.Π΅. Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½ΠΈ Π½Π°ΠΊΠ°Ρ€Π°Π»ΠΈ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ„Π°ΠΉΠ». И Π² Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Patroni са доста ΡƒΠ΄ΠΎΠ±Π½ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. Π’ΠΎΠΉ пишС Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». И Π°ΠΊΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΡ‚ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ‡Π΅ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ са сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ са Π·Π°ΠΏΠΎΡ‡Π½Π°Π»ΠΈ някои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π‘ΡŠΡ€Π·ΠΎ сС Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ Π½Π° Ρ‚ΠΎΠ²Π° място, Π²ΠΈΠΆΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ станС.

И Π² Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° ситуация Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½. Π‘ΠΎΠ±ΡΡ‚Π²Π΅Π½ΠΈΠΊΡŠΡ‚ Π½Π° ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠ°Ρ‚Π° сС провСрява. И Π°ΠΊΠΎ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½ΠΈΠΊΡŠΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ», Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ някои ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Patroni трябва Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°. Но Π² Ρ‚ΠΎΠ·ΠΈ случай смС Π΄ΠΎΠ±Ρ€Π΅. Π’ΡŠΡ€ΡΠΈΠΌ мястото, ΠΎΡ‚ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ са Π·Π°ΠΏΠΎΡ‡Π½Π°Π»ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И слСд ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚ΠΈΡ…ΠΌΠ΅ Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° сС появяват Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ смС ΠΈΠΌΠ°Π»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ бяха ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с взаимодСйствиС с DCS ΠΈ Π² нашия случай ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Consul, Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ Π³Π»Π΅Π΄Π°ΠΌΠ΅ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Consul, ΠΊΠ°ΠΊΠ²ΠΎ сС Π΅ случило Ρ‚Π°ΠΌ.

Бравнявайки Π³Ρ€ΡƒΠ±ΠΎ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Consul, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ съсСди Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° сС ΡΡŠΠΌΠ½ΡΠ²Π°Ρ‚ Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Π°ΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π°Π³Π΅Π½Ρ‚ΠΈ Π½Π° Consul, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ Ρ‚Π°ΠΌ сС случва някакъв Π²ΠΈΠ΄ срив Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. И всички Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠšΠΎΠ½ΡΡƒΠ» сС ΡΡŠΠΌΠ½ΡΠ²Π°Ρ‚ Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ Π½Π° Π΄Ρ€ΡƒΠ³. И Ρ‚ΠΎΠ²Π° бСшС Ρ‚Π»Π°ΡΡŠΠΊΡŠΡ‚ Π·Π° Ρ„ΠΈΠ»Π΅Ρ€Π°.

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ сС случи ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ ΠΈΠΌΠ° всякакви Π³Ρ€Π΅ΡˆΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΡ€Π°Π΅Π½ срок, RPC ΠΏΠ°Π΄Π½Π°, тоСст ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠΌΠ° някакъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ във взаимодСйствиСто Π½Π° Ρ‡Π»Π΅Π½ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си .

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Най-простият ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π΅ Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Но Π·Π° ΠΌΠ΅Π½, стоящ Π½Π° ΠΏΠΎΠ΄ΠΈΡƒΠΌΠ°, Π΅ лСсно Π΄Π° ΠΊΠ°ΠΆΠ° Ρ‚ΠΎΠ²Π°. Но обстоятСлствата са Ρ‚Π°ΠΊΠΈΠ²Π°, Ρ‡Π΅ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° си ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Ρ€Π΅ΠΌΠΎΠ½Ρ‚ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΆΠΈΠ²Π΅Π΅ Π² DC ΠΈ Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Π΄Π° повлияС Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ. И Ρ‚Π°ΠΊΠ° са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ някои Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠΏΡ†ΠΈΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Има ΠΎΠΏΡ†ΠΈΠΈ:

  • Най-простият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ спорСд ΠΌΠ΅Π½ Π΅ написан Π΄ΠΎΡ€ΠΈ Π² докумСнтацията, Π΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ консулскитС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, тоСст просто Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ ΠΏΡ€Π°Π·Π΅Π½ масив. И Π½ΠΈΠ΅ ΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π½Π° консулския Π°Π³Π΅Π½Ρ‚ Π΄Π° Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Ρ‡Π΅ΠΊΠΎΠ²Π΅. Π‘ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π±ΡƒΡ€ΠΈ ΠΈ Π΄Π° Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ».
  • Π”Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ raft_multiplier. Π’ΠΎΠ²Π° Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Π½Π° самия ΡΡŠΡ€Π²ΡŠΡ€ Consul. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ Π½Π° 5. Π’Π°Π·ΠΈ стойност сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° ΠΎΡ‚ докумСнтацията Π·Π° сцСнични срСди. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠ²Π° сС отразява Π½Π° чСстотата Π½Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡Π»Π΅Π½ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Consul. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ влияС Π²ΡŠΡ€Ρ…Ρƒ скоростта Π½Π° комуникация ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡Π»Π΅Π½ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul. А Π·Π° производството Π²Π΅Ρ‡Π΅ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ Π΄Π° обмСнят ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΏΠΎ-чСсто.
  • Π”Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ измислихмС, Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π½Π° процСситС Consul срСд Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ процСси Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ° Π½Π° процСси Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма. Има Ρ‚Π°ΠΊΡŠΠ² β€žΡ…ΡƒΠ±Π°Π²β€œ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€, Ρ‚ΠΎΠΉ просто опрСдСля ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π½Π° процСситС, ΠΊΠΎΠΉΡ‚ΠΎ сС Π²Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΎΡ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ° Π½Π° ОБ ΠΏΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅. НамалихмС ΠΈ Ρ…ΡƒΠ±Π°Π²Π°Ρ‚Π° стойност Π·Π° консулскитС Π°Π³Π΅Π½Ρ‚ΠΈ, Ρ‚.Π΅. ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π΄Π°Π²Π° Π½Π° процСситС Consul ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ изпълнСниС Π½Π° тСхния ΠΊΠΎΠ΄. Π’ нашия случай Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½ΠΈ.
  • Π”Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π΄Π° Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Consul. Имам приятСл, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ голям ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠ½ΠΈΠΊ Π½Π° Etcd. И Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ спорим с Π½Π΅Π³ΠΎ ΠΊΠΎΠ΅ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ Etcd ΠΈΠ»ΠΈ Consul. Но ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ΅ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС съгласявамС с Π½Π΅Π³ΠΎ, Ρ‡Π΅ Consul ΠΈΠΌΠ° Π°Π³Π΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° всСки възСл с Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ВоСст взаимодСйствиСто Π½Π° Patroni с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ·ΠΈ Π°Π³Π΅Π½Ρ‚. И Ρ‚ΠΎΠ·ΠΈ Π°Π³Π΅Π½Ρ‚ сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² ΠΏΡ€Π΅Ρ‡ΠΊΠ°. Ако Π½Π΅Ρ‰ΠΎ сС случи с Π°Π³Π΅Π½Ρ‚Π°, Patroni Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Consul. И Ρ‚ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚. Няма Π°Π³Π΅Π½Ρ‚ Π² ΠΏΠ»Π°Π½Π° Etcd. Patroni ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ със списък ΠΎΡ‚ Etcd ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ Π²Π΅Ρ‡Π΅ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π° с тях. Π’ Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Etcd във Π²Π°ΡˆΠ°Ρ‚Π° компания, Ρ‚ΠΎΠ³Π°Π²Π° Etcd вСроятно Ρ‰Π΅ бъдС ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€ ΠΈΠ·Π±ΠΎΡ€ ΠΎΡ‚ Consul. Но Π½ΠΈΠ΅, Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Π²ΠΈΠ½Π°Π³ΠΈ смС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ ΠΈΠ·Π±Ρ€Π°Π» ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. И ΠΈΠΌΠ°ΠΌΠ΅ ΠšΠΎΠ½ΡΡƒΠ» Π² ΠΏΠΎ-голямата си част Π·Π° всички ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.
  • И послСдната Ρ‚ΠΎΡ‡ΠΊΠ° Π΅ Π΄Π° сС ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚ стойноститС Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅. МоТСм Π΄Π° повишим Ρ‚Π΅Π·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ с Π½Π°Π΄Π΅ΠΆΠ΄Π°Ρ‚Π°, Ρ‡Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ краткосрочни ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΈ няма Π΄Π° ΠΈΠ·ΠΏΠ°Π΄Π½Π°Ρ‚ извън ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ агрСсивността Π½Π° Patroni Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°, Π°ΠΊΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Мисля, Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Patroni, са Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ с Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. И Π½Π° ΠΏΡ€ΡŠΠ² ΠΏΠΎΠ³Π»Π΅Π΄ Ρ‚Π°Π·ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½Π°. ИмамС мастСр, ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, няма забавянС Π½Π° рСпликацията. Но Ρ‚Π°Π·ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎ Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ трябва Π΄Π° ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ възСла, Π° Π½Π΅ Π΄Π²Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ имашС Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ». И слСд Ρ‚ΠΎΠ·ΠΈ Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ» Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΈΠ·Ρ‡Π΅Π·Π½Π°. Врябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π°Ρ‰ΠΎ Π΅ ΠΈΠ·Ρ‡Π΅Π·Π½Π°Π»Π° ΠΈ Π΄Π° я Π²ΡŠΡ€Π½Π΅ΠΌ, Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ. И Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π·Π°Ρ‰ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ Ρ‚ΠΎΠ·ΠΈ случай Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° стана майстор. Π’ΡƒΠΊ всичко Π΅ Π½Π°Ρ€Π΅Π΄.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И трябва Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΏΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠ°Π΄Π½Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Patroni ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ смС ΠΈΠΌΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСса Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π° Π΅Ρ‚Π°ΠΏ pg_rewind. Π—Π° Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, трябва Π΄Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚ΠΈΡ‚Π΅ Π½Π°Π·Π°Π΄ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π΄Π° поискатС нСобходимия Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ главния ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅, Π·Π° Π΄Π° наваксатС главния.

Π’ Ρ‚ΠΎΠ·ΠΈ случай нямамС Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° стартира. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ спирамС Postgres с Π³Ρ€Π΅ΡˆΠΊΠ°. И слСдоватСлно Π½Π΅ Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Врябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π°Ρ‰ΠΎ Π½Π΅ Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ Π·Π°Ρ‰ΠΎ няма рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ΠžΡ‚ΠΈΠ²Π°ΠΌΠ΅ ΠΏΡ€ΠΈ новия господар ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π² Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈΡ‚Π΅. Оказва сС, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ pg_rewind Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ, възниква ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°. А някои ΠΎΡ‚ старитС рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ просто бяха ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ старият мастСр сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с новия мастСр ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ заявка Π·Π° Ρ‚Π΅Π·ΠΈ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ‚Π΅ Π²Π΅Ρ‡Π΅ бяха ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ, просто Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ…Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π‘Ρ€Π°Π²Π½ΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΡŠΡ†ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ са сС случили Ρ‚Π΅Π·ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ. И Ρ‚Π°ΠΌ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ 150 милисСкунди, тоСст ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π·Π° 369 милисСкунди, WAL сСгмСнтитС бяха ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ. И Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ Π² 517, слСд 150 милисСкунди, Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΏΡ€Π΅Π½Π°Π²ΠΈΠ²Π°Π½Π΅ Π½Π° старата Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°. ВоСст, Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ 150 милисСкунди Π½ΠΈ бяха Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ, Π·Π° Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ ΠΈ Π΄Π° ΠΏΠ΅Ρ‡Π΅Π»ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Какви са ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅?

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ слотовС Π·Π° рСпликация. ΠœΠΈΡΠ»Π΅Ρ…ΠΌΠ΅, Ρ‡Π΅ Π΅ Π΄ΠΎΠ±Ρ€Π΅. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ Π΅Ρ‚Π°ΠΏ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ…ΠΌΠ΅ слотовСтС. Π‘Ρ‚Ρ€ΡƒΠ²Π°ΡˆΠ΅ Π½ΠΈ сС, Ρ‡Π΅ Π°ΠΊΠΎ слотовСтС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ WAL сСгмСнти, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° изпуснСм мастСра. Π’ΠΎΠΉ Ρ‰Π΅ ΠΏΠ°Π΄Π½Π΅. Π‘Ρ‚Ρ€Π°Π΄Π°Ρ…ΠΌΠ΅ извСстно Π²Ρ€Π΅ΠΌΠ΅ Π±Π΅Π· слотовС. И Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ слотовС, Π²ΡŠΡ€Π½Π°Ρ…ΠΌΠ΅ Π³ΠΈ.

Но Ρ‚ΡƒΠΊ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ главният ΠΎΡ‚ΠΈΠ΄Π΅ Π΄ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, Ρ‚ΠΎΠΉ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° слотовСтС ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° WAL сСгмСнтитС Π·Π°Π΅Π΄Π½ΠΎ със слотовСтС. И Π·Π° Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ΠΌ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° повишим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° wal_keep_segments. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ 8 сСгмСнта. Π’Π΄ΠΈΠ³Π½Π°Ρ…ΠΌΠ΅ Π³ΠΎ Π½Π° 1 ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ…ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΠΎ свободно място ΠΈΠΌΠ°ΠΌΠ΅. И Π΄Π°Ρ€ΠΈΡ…ΠΌΠ΅ 000 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π° Π·Π° wal_keep_segments. ВоСст ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅Π·Π΅Ρ€Π² ΠΎΡ‚ 16 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΈ Π½Π° всички възли.

И плюс - Ρ‚ΠΎΠΉ всС ΠΎΡ‰Π΅ Π΅ подходящ Π·Π° Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ трябва Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅. И Π½ΠΈΠ΅ искамС Π΄Π° Π³ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ. Врябва Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ софтуСра, ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Π½Π΅Ρ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, ΡΠ»ΠΎΡ‚ΡŠΡ‚ Π·Π° Ρ‚Π°Π·ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΡΡŠΡ‰ΠΎ сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°. И Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ малък wal_keep_segments, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΡ€ΠΈ дълго ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π³ΡƒΠ±Π΅Π½ΠΈ. Π©Π΅ създадСм Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, тя Ρ‰Π΅ поиска Ρ‚Π΅Π·ΠΈ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ спряла, Π½ΠΎ Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ са Π½Π° главния. И Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΡΡŠΡ‰ΠΎ няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅. Π—Π°Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ голям запас ΠΎΡ‚ списания.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π Π°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ с производствСна Π±Π°Π·Π°. Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π² Ρ…ΠΎΠ΄.

ИмашС ΠΏΠΈΠ»Π°. ВлязохмС ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ…ΠΌΠ΅ - всичко Π΅ Π½Π°Ρ€Π΅Π΄, Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅ са си Π½Π° мястото, няма Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π΅Π½ Π»Π°Π³. Няма Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π² Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, всичко Π΅ Π½Π°Ρ€Π΅Π΄.

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ трябва Π΄Π° ΠΈΠΌΠ° някакви Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π½ΠΈΠ΅ Π³ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ, Π½ΠΎ Π½Π΅ Π³ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. И трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС Π΅ случило с тях.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Ясно Π΅, Ρ‡Π΅ pg_rewind Π³ΠΈ Π΅ пропуснал. Π’Π΅Π΄Π½Π°Π³Π° Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ Ρ‚ΠΎΠ²Π°, Π½ΠΎ ΠΎΡ‚ΠΈΠ΄ΠΎΡ…ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ става.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ ΠΊΠΎΠ³Π° сС Π΅ случило ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ, ΠΊΠΎΠΉ Π΅ станал главният ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠΎΠΉ Π΅ Π±ΠΈΠ» старият Π³Π»Π°Π²Π΅Π½ ΠΈ ΠΊΠΎΠ³Π° Π΅ искал Π΄Π° станС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Ρ‚.Π΅. ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ количСството рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ бСшС ΠΈΠ·Π³ΡƒΠ±Π΅Π½.

Бтарият Π½ΠΈ майстор сС рСстартира. И Patroni бСшС рСгистриран Π² autorun. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π° Patroni. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° стартира Postgres. По-Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° стартира Postgres ΠΈ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Patroni стартира процСса pg_rewind. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Ρ‚ΠΎΠΉ ΠΈΠ·Ρ‚Ρ€ΠΈ част ΠΎΡ‚ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈ Π½ΠΎΠ²ΠΈ ΠΈ сС ΡΠ²ΡŠΡ€Π·Π°. Π’ΡƒΠΊ Patroni Ρ€Π°Π±ΠΎΡ‚ΠΈ ΡƒΠΌΠ½ΠΎ, тоСст, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΎΡ‡Π°ΠΊΠ²Π°ΡˆΠ΅. ΠšΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ Π΅ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²Π΅Π½. Π˜ΠΌΠ°Ρ…ΠΌΠ΅ 3 възСла, слСд Ρ„Π°ΠΉΠ»Π° 3 възСла - всичко Π΅ Π³ΠΎΡ‚ΠΈΠ½ΠΎ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π—Π°Π³ΡƒΠ±ΠΈΡ…ΠΌΠ΅ някои Π΄Π°Π½Π½ΠΈ. И трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ смС Π·Π°Π³ΡƒΠ±ΠΈΠ»ΠΈ. Π’ΡŠΡ€ΡΠΈΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π½Π°Π²ΠΈΠ²Π°Π½Π΅. МоТСм Π΄Π° Π³ΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ Π² Ρ‚Π°ΠΊΠΈΠ²Π° записи Π² Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°. ΠŸΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°, Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ Ρ‚Π°ΠΌ ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Врябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ позицията Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ спрял старият мастСр. Π’ случая Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ°Ρ€ΠΊΠ°Ρ‚Π°. И ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π²Ρ‚ΠΎΡ€Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, тоСст разстояниСто, с ΠΊΠΎΠ΅Ρ‚ΠΎ старият майстор сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ новия.

Π’Π·ΠΈΠΌΠ°ΠΌΠ΅ обичайния pg_wal_lsn_diff ΠΈ сравнявамС Ρ‚Π΅Π·ΠΈ Π΄Π²Π΅ ΠΌΠ°Ρ€ΠΊΠΈ. И Π² Ρ‚ΠΎΠ·ΠΈ случай ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ 17 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°. Много ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΊΠΎ, всСки Ρ€Π΅ΡˆΠ°Π²Π° Π·Π° сСбС си. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π·Π° някой 17 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, Π·Π° някой Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. Π’ΡƒΠΊ всСки сам опрСдСля спорСд Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° бизнСса.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Но ΠΊΠ°ΠΊΠ²ΠΎ Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ Π·Π° сСбС си?

ΠŸΡŠΡ€Π²ΠΎ, трябва Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ сами - Π²ΠΈΠ½Π°Π³ΠΈ Π»ΠΈ трябва Patroni Π΄Π° сС стартира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ слСд рСстартиранС Π½Π° систСмата? ЧСсто сС случва Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅ΠΌ ΠΏΡ€ΠΈ стария майстор, Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ докъдС Π΅ стигнал. МоТС Π±ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ сСгмСнти ΠΎΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π²ΠΈΠΆΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Ρ‚Π°ΠΌ. И Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ трябва Π΄Π° стартирамС стария мастСр Π² самостоятСлСн Ρ€Π΅ΠΆΠΈΠΌ, Π·Π° Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΠΌ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

И Π΅Π΄Π²Π° слСд Ρ‚ΠΎΠ²Π° трябва Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΠΈΠΌ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ, ΡΠ²ΡŠΡ€Π·Π²Π°ΠΉΠΊΠΈ Ρ‚ΠΎΠ·ΠΈ възСл ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° към нашия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

ОсвСн Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ "maximum_lag_on_failover". По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π°ΠΊΠΎ Π½Π΅ ΠΌΠ΅ лъТС ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΈΠΌΠ° стойност ΠΎΡ‚ 1 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚.

Как Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΠΎΠΉ? Ако Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° изостава с 1 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½ΠΈ Π² рСпликационния Π»Π°Π³, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Π°Π·ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° Π½Π΅ участва Π² ΠΈΠ·Π±ΠΎΡ€ΠΈΡ‚Π΅. И Π°ΠΊΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΈΠΌΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΡŠΡ€, Patroni Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠΎΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ изостават. Ако изостават с голям Π±Ρ€ΠΎΠΉ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° станат господар. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π° Π·Π°Ρ‰ΠΈΡ‚Π½Π° функция, която Π²ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠ°Π·Π²Π° ΠΎΡ‚ Π·Π°Π³ΡƒΠ±Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΈ.

Но ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ забавянСто Π½Π° рСпликацията Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Patroni ΠΈ DCS сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π». Мисля, Ρ‡Π΅ 30 сСкунди Π΅ ttl стойността ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ситуация, ΠΏΡ€ΠΈ която ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ забавянС Π½Π° рСпликация Π·Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π² DCS, Π½ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° напълно Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ забавянС ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΄Π° няма забавянС, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. И Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ отразява Ρ€Π΅Π°Π»Π½Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°. И Π½Π΅ си струва Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ фантастична Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ.

И Ρ€ΠΈΡΠΊΡŠΡ‚ ΠΎΡ‚ Π·Π°Π³ΡƒΠ±Π° Π²ΠΈΠ½Π°Π³ΠΈ остава. И Π² Π½Π°ΠΉ-лошия случай Π΅Π΄Π½Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°, Π° Π² срСдния случай Π΄Ρ€ΡƒΠ³Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°. ВоСст, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ внСдряванСто Π½Π° Patroni ΠΈ оцСнявамС ΠΊΠΎΠ»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ, трябва Π΄Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΌΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈ ΠΈ Π³Ρ€ΡƒΠ±ΠΎ Π΄Π° си прСдставим ΠΊΠΎΠ»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ.

И ΠΈΠΌΠ° Π΄ΠΎΠ±Ρ€ΠΈ Π½ΠΎΠ²ΠΈΠ½ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ старият майстор Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠ», Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ някои Ρ„ΠΎΠ½ΠΎΠ²ΠΈ процСси. ВоСст имашС някакъв Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌ, Ρ‚ΠΎΠΉ записа Π΄Π°Π½Π½ΠΈΡ‚Π΅, записа Π³ΠΈ Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅. И лСсно ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π½Π΅ΠΌ ΠΈ Π·Π°Π³ΡƒΠ±ΠΈΠΌ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Няма ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Ρ‚ΠΎΠ²Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π°ΠΊΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ maximum_lag_on_failover ΠΈ Π΅ възникнал Ρ„Π°ΠΉΠ» ΠΈ трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ Ρ„Π°ΠΉΠ». Π Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° сС оцСнява ΠΊΠ°Ρ‚ΠΎ нСспособна Π΄Π° участва Π² ΠΈΠ·Π±ΠΎΡ€ΠΈΡ‚Π΅. И тя ΠΎΡ‚ΠΊΠ°Π·Π²Π° Π΄Π° участва Π² Π½Π°Π΄ΠΏΡ€Π΅Π²Π°Ρ€Π°Ρ‚Π° Π·Π° Π»ΠΈΠ΄Π΅Ρ€. И Ρ‡Π°ΠΊΠ° Π΄Π° бъдС ΠΈΠ·Π±Ρ€Π°Π½ Π½ΠΎΠ² мастСр, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с Π½Π΅Π³ΠΎ. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° мярка срСщу Π·Π°Π³ΡƒΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ΡƒΠΊ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Π΅ΠΊΠΈΠΏ, ΠΊΠΎΠΉΡ‚ΠΎ написа, Ρ‡Π΅ тСхният ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Postgres. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ самият мастСр Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Ρ‡Ρ€Π΅Π· SSH. И Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰ΠΎ Π½Π΅ става.

Π’ΠΎΠ·ΠΈ хост бСшС ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ Π΄Π° сС рСстартира. ΠŸΠΎΡ€Π°Π΄ΠΈ рСстартиранСто сС случи Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ», Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ бСшС възмоТно Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ€ΡŠΡ‡Π½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊΡ‚ΠΎ сСга Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ. И слСд рСстартиранСто Π²Π΅Ρ‡Π΅ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ с тСкущия мастСр.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π½Π°Π΅Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с дисковСтС, тоСст Π²Π΅Ρ‡Π΅ Π·Π½Π°Π΅Ρ…ΠΌΠ΅ ΠΎΡ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° къдС Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ВлязохмС Π² ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° postgres ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ сС случва Ρ‚Π°ΠΌ. ВидяхмС ΠΊΠΎΠΌΠΈΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Ρ‚Π°ΠΌ Π΅Π΄Π½Π°, Π΄Π²Π΅, Ρ‚Ρ€ΠΈ сСкунди, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ. ВидяхмС, Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌ стартира ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°Π²Π½ΠΎ ΠΈ странно. И видяхмС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° диска. ВоСст, Ρ‚ΠΎΠ²Π° са всички ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с дисковСтС.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ систСмния dmesg (Π΄Π½Π΅Π²Π½ΠΈΠΊ Π½Π° ядрото). И видяхмС, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π΅Π΄ΠΈΠ½ ΠΎΡ‚ дисковСтС. Дисковата подсистСма бСшС софтуСрСн Raid. Π Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ /proc/mdstat ΠΈ видяхмС, Ρ‡Π΅ Π½ΠΈ липсва Π΅Π΄Π½ΠΎ устройство. ВоСст ΠΈΠΌΠ° Raid ΠΎΡ‚ 8 диска, липсва Π½ΠΈ Π΅Π΄ΠΈΠ½. Ако Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ слайда, Ρ‚ΠΎΠ³Π°Π²Π° Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ нямамС sde Ρ‚Π°ΠΌ. ΠŸΡ€ΠΈ нас, условно ΠΊΠ°Π·Π°Π½ΠΎ, Π΄ΠΈΡΠΊΡŠΡ‚ Π΅ ΠΎΡ‚ΠΏΠ°Π΄Π½Π°Π». Π’ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с диска ΠΈ прилоТСнията ΡΡŠΡ‰ΠΎ ΠΈΠ·ΠΏΠΈΡ‚Π°Ρ…Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π° Postgres.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Π² Ρ‚ΠΎΠ·ΠΈ случай Patroni няма Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Patroni няма Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° слСди ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° диска. И Π½ΠΈΠ΅ трябва Π΄Π° наблюдавамС Ρ‚Π°ΠΊΠΈΠ²Π° ситуации Ρ‡Ρ€Π΅Π· външно наблюдСниС. Π‘ΡŠΡ€Π·ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° диск към външСн ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³.

И имашС Ρ‚Π°ΠΊΠ°Π²Π° мисъл - ΠΌΠΎΠΆΠ΅ Π»ΠΈ Ρ„Π΅Ρ…Ρ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° ΠΈΠ»ΠΈ ΡΠΎΡ„Ρ‚ΡƒΠ΅Ρ€ΡŠΡ‚ Π·Π° наблюдСниС Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅? ΠœΠΈΡΠ»Π΅Ρ…ΠΌΠ΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π΅Π΄Π²Π° Π»ΠΈ Ρ‰Π΅ΡˆΠ΅ Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π² Ρ‚ΠΎΠ·ΠΈ случай, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Patroni ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄Π° взаимодСйства с DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ Π½Π΅ видя никакъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. ВоСст ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° DCS ΠΈ Patroni всичко бСшС Π½Π°Ρ€Π΅Π΄ с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ имашС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с диска, имашС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с наличността Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

По ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-страннитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ съм изслСдвал ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅, ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ… ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΡƒΡ€Π½Π°Π»ΠΈ, ΠΈΠ·Π±Ρ€Π°Ρ… ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ Π³ΠΎ Π½Π°Ρ€Π΅ΠΊΠΎΡ… ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π΅Π½ симулатор.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ бСшС, Ρ‡Π΅ старият мастСр Π½Π΅ моТСшС Π΄Π° станС Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Ρ‚.Π΅. Patroni Π³ΠΎ стартира, Patroni ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ възСл ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ бСшС Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°. Π‘Π΅Π³Π° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π°Ρ‰ΠΎ. Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π°ΠΏΠ°Π·ΠΈΡ… ΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΡ‡Π½Π° всичко? Π—Π°ΠΏΠΎΡ‡Π½Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с дискови спирачки. Π˜ΠΌΠ°Ρ…ΠΌΠ΅ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π·Π° сСкунда, Π΄Π²Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ИмашС ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅, Ρ‚.Π΅. ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ бяха Ρ€Π°Π·ΠΊΡŠΡΠ°Π½ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ИмашС Π·Π°ΠΏΡƒΡˆΠ²Π°Π½ΠΈΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° тСТСст.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ дисковата подсистСма Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π·ΠΈΠ²Ρ‡ΠΈΠ²Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Π½Π°ΠΉ-мистСриозното Π½Π΅Ρ‰ΠΎ Π·Π° ΠΌΠ΅Π½ Π΅ пристигналата заявка Π·Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅. Postgres ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅:

  • ΠšΡ€Π°ΡΠΈΠ²ΠΎ Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‡Π°ΠΊΠ°ΠΌΠ΅ всички ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π΄Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° сами.
  • Има Π±ΡŠΡ€Π·ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΄Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ.
  • И Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ. Π’ Ρ‚ΠΎΠ·ΠΈ случай immediate Π΄ΠΎΡ€ΠΈ Π½Π΅ ΠΊΠ°Π·Π²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΄Π° сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π°Ρ‚, Π° просто сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° Π±Π΅Π· ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. И Π½Π° всички ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π²Π΅Ρ‡Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° RST ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ (TCP ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Ρ‡Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π΅ ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ няма ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π΄Π° Ρ…Π²Π°Π½Π΅).

Кой ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ Ρ‚ΠΎΠ·ΠΈ сигнал? Π€ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси Π½Π° Postgres Π½Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° сигнали Π΅Π΄ΠΈΠ½ Π½Π° Π΄Ρ€ΡƒΠ³, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° Π΅ kill-9. Π’Π΅ Π½Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π΅Ρ‰Π° Π΅Π΄ΠΈΠ½ Π½Π° Π΄Ρ€ΡƒΠ³, Ρ‚Π΅ Ρ€Π΅Π°Π³ΠΈΡ€Π°Ρ‚ само Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π΅Ρ‰Π°, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° Π΅ спСшно рСстартиранС Π½Π° Postgres. Кой Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ, Π½Π΅ Π·Π½Π°ΠΌ.

ΠŸΠΎΠ³Π»Π΅Π΄Π½Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žΠΏΠΎΡΠ»Π΅Π΄Π½Π°β€œ ΠΈ видях Π΅Π΄ΠΈΠ½ Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Π²Π»Π΅Π·Π΅ Π² Ρ‚ΠΎΠ·ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ с нас, Π½ΠΎ бях Ρ‚Π²ΡŠΡ€Π΄Π΅ срамСТлив Π΄Π° Π·Π°Π΄Π°ΠΌ Π²ΡŠΠΏΡ€ΠΎΡ. МоТС Π±ΠΈ бСшС убийствСно -9. Π‘ΠΈΡ… видял kill -9 Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Postgres ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ° kill -9, Π½ΠΎ Π½Π΅ Π³ΠΎ видях Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ПоглСТдайки ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ, видях, Ρ‡Π΅ Patroni Π½Π΅ пишС Π² Π΄Π½Π΅Π²Π½ΠΈΠΊΠ° доста дълго Π²Ρ€Π΅ΠΌΠ΅ - 54 сСкунди. И Π°ΠΊΠΎ сравним Π΄Π²Π΅ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°Ρ€ΠΊΠΈ, няма ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π·Π° ΠΎΠΊΠΎΠ»ΠΎ 54 сСкунди.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ имашС Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ». Patroni ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΡΠ²ΡŠΡ€ΡˆΠΈ страхотна Ρ€Π°Π±ΠΎΡ‚Π°. Бтарият Π½ΠΈ господар Π½Π΅ бСшС Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅Ρ‰ΠΎ ΠΌΡƒ сС случи. И Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° Π½ΠΎΠ² господар. Π’ΡƒΠΊ всичко сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΠ±Ρ€Π΅. ΠΠ°ΡˆΠΈΡΡ‚ pgsql01 стана новият Π»ΠΈΠ΄Π΅Ρ€.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ИмамС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° станала майстор. И ΠΈΠΌΠ° Π²Ρ‚ΠΎΡ€ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€. И имашС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°. Вя сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°. Π”ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ, тя сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ recovery.conf, Π΄Π° рСстартира Postgres ΠΈ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с новия мастСр. На всСки 10 сСкунди пишС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, Ρ‡Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°, Π½ΠΎ Π½Π΅ успява.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ ΠΏΡ€ΠΈ стария господар пристига сигнал Π·Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅. ΠœΠ°ΡΡ‚Π΅Ρ€ΡŠΡ‚ сС рСстартира. И ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅Ρ‚ΠΎ спира, Π·Π°Ρ‰ΠΎΡ‚ΠΎ старият майстор ΠΎΡ‚ΠΈΠ²Π° Π² рСстартиранС. ВоСст Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с Π½Π΅Π³ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΈ, Π½ΠΎ рСпликацията Π½Π΅ стартира.

ЕдинствСното ΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅, Ρ‡Π΅ имашС стар Π³Π»Π°Π²Π΅Π½ адрСс Π² recovery.conf. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС появи Π½ΠΎΠ² мастСр, Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° всС ΠΎΡ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π°ΡˆΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ със стария мастСр.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ΠšΠΎΠ³Π°Ρ‚ΠΎ Patroni стартира Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Π²ΡŠΠ·Π΅Π»ΡŠΡ‚ стартира, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π°. И сС ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π΅Π½ Π»Π°Π³, ΠΊΠΎΠΉΡ‚ΠΎ изглСТдашС Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ. ВоСст ΠΈ Ρ‚Ρ€ΠΈΡ‚Π΅ възСла бяха Π½Π° мястото си, Π½ΠΎ вторият възСл ΠΈΠ·ΠΎΡΡ‚Π°Π²Π°ΡˆΠ΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π°ΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са записани, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ рСпликацията Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ са Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ. И Ρ‚Π΅Π·ΠΈ рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ главният ΠΏΡ€Π΅Π΄Π»Π°Π³Π°, ΠΊΠΎΠΈΡ‚ΠΎ са посочСни Π² recovery.conf, просто Π½Π΅ отговарят Π½Π° тСкущия Π½ΠΈ възСл.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Ρ‚ΡƒΠΊ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… Π³Ρ€Π΅ΡˆΠΊΠ°. Π’Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π΄ΠΎΠΉΠ΄Π° ΠΈ Π΄Π° видя ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π² recovery.conf, Π·Π° Π΄Π° тСствам Ρ…ΠΈΠΏΠΎΡ‚Π΅Π·Π°Ρ‚Π° си, Ρ‡Π΅ сС ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ с Π³Ρ€Π΅ΡˆΠ½ΠΈΡ мастСр. Но Ρ‚ΠΎΠ³Π°Π²Π° просто сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ… с Ρ‚ΠΎΠ²Π° ΠΈ Π½Π΅ ΠΌΠΈ Ρ…Ρ€ΡƒΠΌΠ½Π°, ΠΈΠ»ΠΈ видях, Ρ‡Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° изостава ΠΈ Ρ‰Π΅ трябва Π΄Π° сС напълни ΠΎΡ‚Π½ΠΎΠ²ΠΎ, тоСст някак си Ρ€Π°Π±ΠΎΡ‚ΠΈΡ… Π½Π΅Π±Ρ€Π΅ΠΆΠ½ΠΎ. Π’ΠΎΠ²Π° бСшС моят Π΄ΠΆΠΎΠΉΠ½Ρ‚.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π‘Π»Π΅Π΄ 30 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π²Π΅Ρ‡Π΅ Π΄ΠΎΠΉΠ΄Π΅ Π°Π΄ΠΌΠΈΠ½ΡŠΡ‚, Ρ‚.Π΅. рСстартирах Patroni Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°. Π’Π΅Ρ‡Π΅ Π³ΠΎ слоТих ΠΊΡ€Π°ΠΉ, мислСх си, Ρ‡Π΅ Ρ‰Π΅ трябва Π΄Π° Π³ΠΎ напълня ΠΎΡ‚Π½ΠΎΠ²ΠΎ. И си помислих - Ρ‰Π΅ рСстартирам Patroni, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Ρ‰Π΅ сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π½Π΅Ρ‰ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ. Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°. И Π±Π°Π·Π°Ρ‚Π° Π΄ΠΎΡ€ΠΈ ΠΎΡ‚Π²ΠΎΡ€ΠΈ, бСшС Π³ΠΎΡ‚ΠΎΠ²Π° Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

РСпликацията Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Π»Π°. Но ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΏΠΎ-късно тя ΠΏΠ°Π΄Π½Π° с Π³Ρ€Π΅ΡˆΠΊΠ°, Ρ‡Π΅ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π΅ са подходящи Π·Π° нСя.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ΠœΠΈΡΠ»Π΅Ρ… Π΄Π° рСстартирам ΠΎΡ‚Π½ΠΎΠ²ΠΎ. РСстартирах Patroni ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ Π½Π΅ рСстартирах Postgres, Π½ΠΎ рСстартирах Patroni с Π½Π°Π΄Π΅ΠΆΠ΄Π°Ρ‚Π°, Ρ‡Π΅ магичСски Ρ‰Π΅ стартира Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

РСпликацията Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ, Π½ΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈΡ‚Π΅ Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ бяха Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ, Π½Π΅ бяха ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΎΠΏΠΈΡ‚ Π·Π° стартиранС. РСпликацията ΠΎΡ‚Π½ΠΎΠ²ΠΎ спря. И посланиСто Π²Π΅Ρ‡Π΅ бСшС ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ. И Π½Π΅ ΠΌΠΈ бСшС ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΈ Ρ…Ρ€ΡƒΠΌΠ²Π° - ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ станС, Π°ΠΊΠΎ рСстартирам Postgres, Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ направя ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° тСкущия мастСр, Π·Π° Π΄Π° прСмСстя Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΠΏΡ€Π΅Π΄, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ ΠΌΠΎΠΌΠ΅Π½Ρ‚? ОсвСн Ρ‚ΠΎΠ²Π° всС ΠΎΡ‰Π΅ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ запаси ΠΎΡ‚ WAL.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

РСстартирах Patroni, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… няколко ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° главния, няколко Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° рСстартиранС Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΡ‚Π²ΠΎΡ€ΠΈ. И Ρ‚ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°. Π”ΡŠΠ»Π³ΠΎ мислих Π·Π°Ρ‰ΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ. И Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π½Π°. И рСпликацията Π²Π΅Ρ‡Π΅ Π½Π΅ бСшС Ρ€Π°Π·ΠΊΡŠΡΠ°Π½Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Вакъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π° ΠΌΠ΅Π½ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΠΎ-мистСриознитС, Π½Π°Π΄ ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‰Π΅ си Π»ΡƒΡ‚Π°ΠΌ Π³Π»Π°Π²Π°Ρ‚Π° ΠΊΠ°ΠΊΠ²ΠΎ наистина сС Π΅ случило Ρ‚Π°ΠΌ.

Какви са ΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ? Patroni ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ. Но Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ 100% гаранция, Ρ‡Π΅ ΠΏΡ€ΠΈ нас всичко Π΅ Π½Π°Ρ€Π΅Π΄. Π Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° стартира, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π² ΠΏΠΎΠ»ΡƒΡ€Π°Π±ΠΎΡ‚Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚Π°ΠΊΠ°Π²Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‰Π΅ ΠΈΠΌΠ° стари Π΄Π°Π½Π½ΠΈ.

И слСд Ρ„Π°ΠΉΠ»Π° Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° провСряватС Π΄Π°Π»ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄ с ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, тоСст ΠΈΠΌΠ° нСобходимия Π±Ρ€ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, няма забавянС Π½Π° рСпликацията.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

И Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ‰Π΅ направя ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ. ΠžΠΏΠΈΡ‚Π°Ρ… сС Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΌ Π² Π΄Π²Π° слайда. ВСроятно всички истории ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² Π΄Π²Π° слайда ΠΈ само Ρ€Π°Π·ΠΊΠ°Π·Π°Π½ΠΈ.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Patroni, трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Π’ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ³Π° Π΅ Π½Π°ΡΡ‚ΡŠΠΏΠΈΠ»ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π°ΠΊΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Π΅ стС ΠΈΠΌΠ°Π»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, няматС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π°Π΄ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. И Ρ‚ΠΎΠ²Π° Π΅ лошо.

Π‘Π»Π΅Π΄ всСки Ρ„Π°ΠΉΠ» Π²ΠΈΠ½Π°Π³ΠΈ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° провСрявамС ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Врябва Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ Π±Ρ€ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, няма забавянС Π½Π° рСпликацията, няма Π³Ρ€Π΅ΡˆΠΊΠΈ Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π°Π½Π΅, с Patroni, със систСмата DCS.

Автоматизацията ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Patroni Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡŠΡ€ инструмСнт. МоТС Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π½ΠΎ Ρ‚ΠΎΠ²Π° няма Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π΄ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. И Π°ΠΊΠΎ Π½Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π° Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

А ΠŸΠ°Ρ‚Ρ€ΠΎΠ½ΠΈ Π½Π΅ Π΅ ΡΡ€Π΅Π±ΡŠΡ€Π΅Π½ ΠΊΡƒΡ€ΡˆΡƒΠΌ. ВсС ΠΎΡ‰Π΅ трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Postgres, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ рСпликацията ΠΈ ΠΊΠ°ΠΊ Patroni Ρ€Π°Π±ΠΎΡ‚ΠΈ с Postgres ΠΈ ΠΊΠ°ΠΊ сС осигурява комуникацията ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° отстранитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Ρ€ΡŠΡ†Π΅Ρ‚Π΅ си.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Как Π΄Π° подходя към Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΠ·Π°Ρ‚Π°? Π’Π°ΠΊΠ° сС случи, Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ Π½ΠΈΠΊΠΎΠΉ няма ELK стСк ΠΈ трябва Π΄Π° сортирамС Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ 6 ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ ΠΈ 2 Ρ€Π°Π·Π΄Π΅Π»Π°. Π’ Π΅Π΄ΠΈΠ½ Ρ€Π°Π·Π΄Π΅Π» Ρ‚ΠΎΠ²Π° са рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Patroni Π·Π° всСки възСл, Π² другия Ρ€Π°Π·Π΄Π΅Π» Ρ‚ΠΎΠ²Π° са рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Consul ΠΈΠ»ΠΈ Postgres, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Много Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС диагностицира Ρ‚ΠΎΠ²Π°.

Какви ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ съм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»? ΠŸΡŠΡ€Π²ΠΎ, Π²ΠΈΠ½Π°Π³ΠΈ Π³Π»Π΅Π΄Π°ΠΌ ΠΊΠΎΠ³Π° Π΅ пристигнал Ρ„Π°ΠΉΠ»ΡŠΡ‚. И Π·Π° ΠΌΠ΅Π½ Ρ‚ΠΎΠ²Π° Π΅ Π²ΠΎΠ΄ΠΎΠ΄Π΅Π». Π“Π»Π΅Π΄Π°ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС случи ΠΏΡ€Π΅Π΄ΠΈ Ρ„ΠΈΠ»Π΅Ρ€Π°, ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„ΠΈΠ»Π΅Ρ€Π° ΠΈ слСд Ρ„ΠΈΠ»Π΅Ρ€Π°. Fileover ΠΈΠΌΠ° Π΄Π²Π° Π·Π½Π°ΠΊΠ°: Ρ‚ΠΎΠ²Π° Π΅ началният ΠΈ крайният час.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π³Π»Π΅Π΄Π°ΠΌ Π² Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΏΡ€Π΅Π΄ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π°Π»ΠΈ Ρ„Π°ΠΉΠ»Π°, Ρ‚.Π΅. Ρ‚ΡŠΡ€ΡΡ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ сС Π΅ случил Ρ„Π°ΠΉΠ»ΡŠΡ‚.

И Ρ‚ΠΎΠ²Π° Π΄Π°Π²Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π½Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΊΠ°ΠΊΠ²ΠΎ сС Π΅ случило ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅, Π·Π° Π΄Π° Π½Π΅ сС случват ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ обстоятСлства (ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° няма Ρ„Π°ΠΉΠ»).

И къдС Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ? Π“Π»Π΅Π΄Π°ΠΌ:

  • ΠŸΡŠΡ€Π²ΠΎ, Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Patroni.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Postgres ΠΈΠ»ΠΈ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° DCS, Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ Π² рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Patroni.
  • И систСмнитС рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΡΡŠΡ‰ΠΎ понякога Π΄Π°Π²Π°Ρ‚ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΠ»ΠΎ Ρ„Π°ΠΉΠ»Π°.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Какво чувствам към Patroni? Имам ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ с Patroni. Π‘ΠΏΠΎΡ€Π΅Π΄ ΠΌΠ΅Π½ Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΎΡ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° днСс. Π—Π½Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ. Π’ΠΎΠ²Π° са Stolon, Repmgr, Pg_auto_failover, PAF. 4 инструмСнта. ΠžΠΏΠΈΡ‚Π°Ρ… Π³ΠΈ всичкитС. Patroni ΠΌΠΈ Π΅ Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚.

Ако ΠΌΠ΅ ΠΏΠΎΠΏΠΈΡ‚Π°Ρ‚: "ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π»ΠΈ Patroni?". Π©Π΅ ΠΊΠ°ΠΆΠ° Π΄Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ харСсвам Patroni. И мисля, Ρ‡Π΅ сС Π½Π°ΡƒΡ‡ΠΈΡ… Π΄Π° Π³ΠΎ готвя.

Ако сС интСрСсуватС Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠΌΠ° с Patroni освСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ спомСнах, Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ страницата Π²ΡŠΠΏΡ€ΠΎΡΠΈ Π½Π° GitHub. Има ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ истории ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсни Π²ΡŠΠΏΡ€ΠΎΡΠΈ сС ΠΎΠ±ΡΡŠΠΆΠ΄Π°Ρ‚ Ρ‚Π°ΠΌ. И Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° бяха въвСдСни ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ някои Π³Ρ€Π΅ΡˆΠΊΠΈ, тоСст Ρ‚ΠΎΠ²Π° Π΅ интСрСсно Ρ‡Π΅Ρ‚ΠΈΠ²ΠΎ.

Има някои интСрСсни истории Π·Π° Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ сС прострСлват Π² ΠΊΡ€Π°ΠΊΠ°Ρ‚Π°. Много ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π΅Π½. Π§Π΅Ρ‚Π΅Ρ‚Π΅ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅. ΠžΡ‚ΠΌΠ΅Ρ‚Π½Π°Ρ… сС.

И Π±ΠΈΡ… искал Π΄Π° ΠΊΠ°ΠΆΠ° голямо благодаря Π½Π° Zalando Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ ΠšΡƒΠΊΡƒΡˆΠΊΠΈΠ½ ΠΈ АлСксСй Клюкин. АлСксСй Клюкин Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΡΡŠΠ°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Ρ‚ΠΎΠΉ Π²Π΅Ρ‡Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Zalando, Π½ΠΎ Ρ‚ΠΎΠ²Π° са Π΄Π²Π°ΠΌΠ° Π΄ΡƒΡˆΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° работят с Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

И мисля, Ρ‡Π΅ Patroni Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ‚ΠΈΠ½ΠΎ Π½Π΅Ρ‰ΠΎ. Π Π°Π΄Π²Π°ΠΌ сС, Ρ‡Π΅ я ΠΈΠΌΠ°, интСрСсно Π΅ с нСя. И голямо благодаря Π½Π° всички ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΈΡˆΠ°Ρ‚ ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° Patroni. Надявам сС ΠŸΠ°Ρ‚Ρ€ΠΎΠ½ΠΈ Π΄Π° станС ΠΏΠΎ-зрял, Π³ΠΎΡ‚ΠΈΠ½ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ с Π²ΡŠΠ·Ρ€Π°ΡΡ‚Ρ‚Π°. Π’Π΅Ρ‡Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°, Π½ΠΎ сС надявам Π΄Π° станС ΠΎΡ‰Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ, Π°ΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Patroni, Π½Π΅ сС страхувайтС. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.

Π’ΠΎΠ²Π° Π΅ всичко. Ако ΠΈΠΌΠ°Ρ‚Π΅ Π²ΡŠΠΏΡ€ΠΎΡΠΈ ΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅.

Patroni Failure Stories ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сринСтС вашия PostgreSQL ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€. АлСксСй ЛСсовски

Π’ΡŠΠΏΡ€ΠΎΡΠΈ

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Ако слСд Ρ„Π°ΠΉΠ» всС ΠΏΠ°ΠΊ трябва Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Ρ‚Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° Π·Π°Ρ‰ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ»?

Π—Π°Ρ‰ΠΎΡ‚ΠΎ са Π½ΠΎΠ²ΠΈ Π½Π΅Ρ‰Π°. Π‘ нСя смС само ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°. По-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° стС Π² бСзопасност. ИскамС Π΄Π° Π²Π»Π΅Π·Π΅ΠΌ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ всичко наистина сС Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ трябва. Π’ΠΎΠ²Π° Π΅ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° Π½Π΅Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ Π½Π° Π²ΡŠΠ·Ρ€Π°ΡΡ‚Π½ΠΈΡ‚Π΅ - ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅.

НапримСр ΠΎΡ‚ΠΈΠ΄ΠΎΡ…ΠΌΠ΅ сутринта ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ…ΠΌΠ΅, Π½Π°Π»ΠΈ?

НС сутрин, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π°ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π·Π° Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ»Π° ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π°. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ извСстия, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π΅ възникнал Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ». ΠŸΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅. Но всички Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ Π΄ΠΎ Π½ΠΈΠ²ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Ако ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Patroni Ρ‡Ρ€Π΅Π· REST API, ΠΈΠΌΠ° история. Π§Ρ€Π΅Π· хронологията ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ ΠΊΠ»Π΅ΠΉΠΌΠ°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС Π΅ случило Ρ„Π°ΠΉΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ. Π’ΡŠΠ· основа Π½Π° Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ историята, ΠΊΠΎΠ»ΠΊΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π΅ ΠΈΠΌΠ°Π»ΠΎ. Ако ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, Π·Π½Π°Ρ‡ΠΈ Π΅ възникнал Π°Π²Ρ‚ΠΎΡ„Π°ΠΉΠ». МоТСш Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅Ρˆ ΠΈ Π΄Π° видиш. Или Π½Π°ΡˆΠ°Ρ‚Π° автоматизация Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π΄Π°Π»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ всички Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π° място, няма забавянС ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄.

Благодаря Π²ΠΈ!

Благодаря ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° страхотния Ρ€Π°Π·ΠΊΠ°Π·! Ако прСмСстим DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° някъдС Π΄Π°Π»Π΅Ρ‡ ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π½Π° Postgres, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΡΡŠΡ‰ΠΎ трябва Π΄Π° сС обслуТва ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ? Какви са Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Ρ‡Π΅ някои части ΠΎΡ‚ DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ, Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ с тях ΠΈ Ρ‚.Π½.? Как оцСлява цялата Ρ‚Π°Π·ΠΈ структура? И ΠΊΠ°ΠΊ Π³ΠΈ ΠΏΡ€Π°Π²ΠΈΡˆ Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π°?

Π—Π° Π΅Π΄Π½Π° компания бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠ°ΠΊΠ²ΠΎ сС случва, Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ няколко ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° сС поврСдят. Бъгласно Ρ‚Π°Π·ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π½ΠΈΠ΅ послСдоватСлно ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π· всички ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ сцСнарии Π² случай Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π·Π° всСки сцСнарий Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΠ»Π°Π½ Π·Π° дСйствиС Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅. А Π² случая Π½Π° DCS, Ρ‚ΠΎΠΉ ΠΈΠ΄Π²Π° ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ стандартната инфраструктура. И Π°Π΄ΠΌΠΈΠ½Π° Π³ΠΎ администрира, Π° Π½ΠΈΠ΅ Π²Π΅Ρ‡Π΅ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΌΠ΅ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π³ΠΎ администрират ΠΈ тяхната способност Π΄Π° Π³ΠΎ оправят ΠΏΡ€ΠΈ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ. Ако ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ няма DCS, Ρ‚ΠΎΠ³Π°Π²Π° Π³ΠΎ внСдрявамС, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ Π³ΠΎ наблюдавамС особСно, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ носим отговорност Π·Π° инфраструктурата, Π½ΠΎ Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ ΠΊΠ°ΠΊ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° наблюдавамС.

ВоСст, ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π»ΠΈ Ρ€Π°Π·Π±Ρ€Π°Ρ…, Ρ‡Π΅ трябва Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌ Patroni, Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌ Ρ„Π°ΠΉΠ»Π°, Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌ всичко, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° направя Π½Π΅Ρ‰ΠΎ с хостовСтС?

Зависи ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ възли ΠΈΠΌΠ°ΠΌΠ΅ Π² DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Ако ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ възли ΠΈ Π°ΠΊΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ само Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ (Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°), Ρ‚ΠΎΠ³Π°Π²Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠ²ΠΎΡ€ΡƒΠΌ. И Patroni ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. И Π½ΠΈΡ‰ΠΎ Π½Π΅ сС задСйства. Ако ΠΈΠΌΠ°ΠΌΠ΅ някои слоТни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ засягат ΠΏΠΎΠ²Π΅Ρ‡Π΅ възли, липсата Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° съсипС ΠΊΠ²ΠΎΡ€ΡƒΠΌΠ°, Ρ‚ΠΎΠ³Π°Π²Π° - Π΄Π°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ° смисъл Π΄Π° поставим Patroni Π½Π° ΠΏΠ°ΡƒΠ·Π°. Има ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° - patronictl pause, patronictl resume. НиС просто ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΠ°ΡƒΠ·Π° ΠΈ автоматичният Ρ„Π°ΠΉΠ» Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π˜Π·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ ΠΏΠ°ΡƒΠ·Π°Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΆΠΈΠ²Π΅Π΅ΠΌ.

Благодаря Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ!

Благодаря Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Как сС чувства продуктовият Π΅ΠΊΠΈΠΏ относно Π·Π°Π³ΡƒΠ±Π°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ?

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈΡ‚Π΅ Π΅ΠΊΠΈΠΏΠΈ Π½Π΅ сС интСрСсуват, Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠΈ са притСснСни.

Какви Π³Π°Ρ€Π°Π½Ρ†ΠΈΠΈ ΠΈΠΌΠ°?

Π“Π°Ρ€Π°Π½Ρ†ΠΈΠΈΡ‚Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΈ. ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ ΠšΡƒΠΊΡƒΡˆΠΊΠΈΠ½ ΠΈΠΌΠ° Π΄ΠΎΠΊΠ»Π°Π΄ β€žΠšΠ°ΠΊ Π΄Π° изчислим RPO ΠΈ RTOβ€œ, Ρ‚.Π΅. Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ. Мисля, Ρ‡Π΅ трябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ Ρ‚Π΅Π·ΠΈ слайдовС ΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ. Π”ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ си спомням, ΠΈΠΌΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΡΡ‚ΡŠΠΏΠΊΠΈ Π·Π° изчисляванС Π½Π° Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π°. Колко Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ, ΠΊΠΎΠ»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ. ΠšΠ°Ρ‚ΠΎ опция ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ синхронна рСпликация Π½Π° Π½ΠΈΠ²ΠΎ Patroni, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π½ΠΎΠΆ с Π΄Π²Π΅ остриСта: ΠΈΠ»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ надСТдност Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΈΠ»ΠΈ Π³ΡƒΠ±ΠΈΠΌ скорост. Има синхронна рСпликация, Π½ΠΎ тя ΡΡŠΡ‰ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° 100% Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Π·Π°Π³ΡƒΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ.

АлСксСй, благодаря Π·Π° страхотния Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π°ΠΆ! Π˜ΠΌΠ°Ρ‚Π΅ Π»ΠΈ ΠΎΠΏΠΈΡ‚ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Patroni Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎ Π½ΠΈΠ²ΠΎ? ВоСст, във Π²Ρ€ΡŠΠ·ΠΊΠ° със синхронСн Ρ€Π΅ΠΆΠΈΠΌ Π½Π° готовност? Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π²ΡŠΠΏΡ€ΠΎΡ. И вторият Π²ΡŠΠΏΡ€ΠΎΡ. Използвали стС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Repmgr, Π½ΠΎ Π±Π΅Π· autofiler, Π° сСга ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ autofiler. И Π½ΠΈΠ΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Patroni ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Какво ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ прСдимства Π² сравнСниС с Repmgr?

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π²ΡŠΠΏΡ€ΠΎΡ бСшС Π·Π° синхроннитС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ. Никой Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° синхронна рСпликация Ρ‚ΡƒΠΊ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ всички сС страхуват (Няколко ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π²Π΅Ρ‡Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚, ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π΅ са забСлязали ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с производитСлността - Π‘Π΅Π»Π΅ΠΆΠΊΠ° Π½Π° Π»Π΅ΠΊΡ‚ΠΎΡ€Π°). Но Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π° сСбС си, Ρ‡Π΅ трябва Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ½Π΅ Ρ‚Ρ€ΠΈ възСла Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π·Π° синхронна рСпликация, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π° възСла ΠΈ Π°ΠΊΠΎ главният ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° сС провалят, Ρ‚ΠΎΠ³Π°Π²Π° Patroni ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ‚ΠΎΠ·ΠΈ възСл Π² самостоятСлСн Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°. Π’ Ρ‚ΠΎΠ·ΠΈ случай ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° риск ΠΎΡ‚ Π·Π°Π³ΡƒΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ.

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° втория Π²ΡŠΠΏΡ€ΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Repmgr ΠΈ всС ΠΎΡ‰Π΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ с някои ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ историчСски ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ. Какво ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠ°ΠΆΠ΅? Patroni ΠΈΠ΄Π²Π° с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ», Repmgr ΠΈΠ΄Π²Π° с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° функция, която трябва Π΄Π° бъдС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π°. Врябва Π΄Π° стартирамС Π΄Π΅ΠΌΠΎΠ½Π° Repmgr Π½Π° всСки възСл ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ автоматичния Ρ„Π°ΠΉΠ».

Repmgr провСрява Π΄Π°Π»ΠΈ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ Π½Π° Postgres са ΠΆΠΈΠ²ΠΈ. Repmgr процСситС провСряват Π·Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ Π½Π° Π΄Ρ€ΡƒΠ³, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° слоТни случаи Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° изолация, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ голям Repmgr ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π·ΠΏΠ°Π΄Π½Π΅ Π½Π° няколко ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΈ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. НС слСдя Repmgr ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ Π±ΠΈ бСшС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΎ ... ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅. Но ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° информация Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π² DCS, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ Stolon, Patroni, Π΅ Π½Π°ΠΉ-ТизнСспособният Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

АлСксСй, ΠΈΠΌΠ°ΠΌ Π΅Π΄ΠΈΠ½ Π²ΡŠΠΏΡ€ΠΎΡ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ ламСрски. Π’ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ прСмСстихтС DCS ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° машина към ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ хост. Π Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π΅ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° свои собствСни характСристики, ΠΆΠΈΠ²Π΅Π΅ самостоятСлно. И ΠΊΠ°ΠΊΠ²ΠΎ сС случва, Π°ΠΊΠΎ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ станС Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½? Няма Π΄Π° ΠΊΠ°Π·Π²Π°ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях: ΠΎΡ‚ ΠΊΡ€ΠΈΠ²ΠΈΡ‚Π΅ Ρ€ΡŠΡ†Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΈΡ‚Π΅ Π΄ΠΎ Ρ€Π΅Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

НС съм Π³ΠΎ ΠΊΠ°Π·Π°Π» Π½Π° глас, Π½ΠΎ DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ ΡΡŠΡ‰ΠΎ трябва Π΄Π° бъдС failover, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅Ρ‡Π΅Ρ‚Π΅Π½ Π±Ρ€ΠΎΠΉ възли, Π·Π° Π΄Π° бъдС постигнат ΠΊΠ²ΠΎΡ€ΡƒΠΌ. Какво сС случва, Π°ΠΊΠΎ DCS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ станС Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС постигнат ΠΊΠ²ΠΎΡ€ΡƒΠΌ, Ρ‚.Π΅. някакъв Π²ΠΈΠ΄ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ раздСлянС ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄Π° Π½Π° възСл? Π’ Ρ‚ΠΎΠ·ΠΈ случай ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ Patroni ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. ΠšΠ»ΡŠΡΡ‚Π΅Ρ€ΡŠΡ‚ Patroni Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈ. Π’ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с DCS ΠΈ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΠΈ Ρ‚Π°ΠΌ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ цСлият ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. И Ρ‡Π°ΠΊΠ° ΠΈΠ»ΠΈ Ρ€ΡŠΡ‡Π½Π° намСса ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΈΠ»ΠΈ DCS Π΄Π° сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈ.

Π“Ρ€ΡƒΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, DCS става услуга Π·Π° нас Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ½Π°, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΈ самата Π±Π°Π·Π°?

Π”Π° Π΄Π°. Π’ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Service Discovery Π΅ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»Π½Π° част ΠΎΡ‚ инфраструктурата. ВнСдрява сС ΠΎΡ‰Π΅ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡ€ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π² инфраструктурата. ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, инфраструктурата бСшС стартирана, Ρ€Π°Π·Π³ΡŠΡ€Π½Π°Ρ‚Π° Π² DC ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Service Discovery. Ако Π΅ Consul, Ρ‚ΠΎΠ³Π°Π²Π° DNS ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ. Ако Ρ‚ΠΎΠ²Π° Π΅ Etcd, Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° част ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Kubernetes, Π² която Ρ‰Π΅ бъдС Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ всичко останало. Π‘Ρ‚Ρ€ΡƒΠ²Π° ΠΌΠΈ сС, Ρ‡Π΅ Service Discovery Π²Π΅Ρ‡Π΅ Π΅ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»Π½Π° част ΠΎΡ‚ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ инфраструктури. И Ρ‚Π΅ мислят Π·Π° Ρ‚ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Ρ€Π°Π½ΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

Благодаря Π²ΠΈ!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€