Skip to content
10 / 15

РСпликация Π² PostgreSQL: физичСская ΠΈ логичСская, отставаниС Ρ€Π΅ΠΏΠ»ΠΈΠΊ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ЀизичСская (потоковая) рСпликация ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ WAL Π±Π°ΠΉΡ‚ Π² Π±Π°ΠΉΡ‚: Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° β€” точная копия основного ΡƒΠ·Π»Π°, годится для отказоустойчивости ΠΈ чтСния, Π½ΠΎ нСльзя Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠ»ΠΈΠΊΡƒ. ЛогичСская ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ измСнСния строк Ρ‡Π΅Ρ€Π΅Π· ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ подписки: ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹ΠΌΠΈ вСрсиями, ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² подписчика β€” Ρ†Π΅Π½ΠΎΠΉ отсутствия DDL Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΈ нСобходимости ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° слотами. ΠžΡ‚ΡΡ‚Π°Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ€ΡΡŽΡ‚ Π½Π΅ Π² Π±Π°ΠΉΡ‚Π°Ρ…, Π° Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: pg_last_xact_replay_timestamp() Π΄Π°Ρ‘Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ примСнСния. Π“Π»Π°Π²Π½Ρ‹Π΅ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ послС записи Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ старыС Π΄Π°Π½Π½Ρ‹Π΅, поэтому Β«ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉ своё ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅Β» Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ чтСния с основного ΡƒΠ·Π»Π° ΠΈΠ»ΠΈ оТидания LSN; Π·Π°ΡΡ‚Ρ€ΡΠ²ΡˆΠΈΠΉ слот Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ WAL ΠΈ ΠΌΡ‘Ρ€Ρ‚Π²Ρ‹Π΅ вСрсии, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ диск основного ΡƒΠ·Π»Π° заполняСтся, Π° Π²Π°ΠΊΡƒΡƒΠΌ пСрСстаёт ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ мусор. Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π½ΠΎ добавляСт сСтСвой ΠΊΡ€ΡƒΠ³ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи.

РСпликация Π² PostgreSQL: физичСская ΠΈ логичСская, отставаниС Ρ€Π΅ΠΏΠ»ΠΈΠΊ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ | JScriptiser