Як контрольні суми даних взаємодіють із потоковою реплікацією?


11

Контрольні суми даних - це нова функція, представлена ​​в 9.3, і:

є новий параметр GUC "ignore_checksum_failure", який змусить PostgreSQL продовжувати обробляти транзакцію, навіть якщо виявлена ​​корупція

У разі відмови контрольної суми у майстра реплікації, чи пошкоджені дані будуть копіюватися на раби, або реплікація зупиниться. Це залежить від налаштування ignore_checksum_failure?

Цей README містить корисну пов’язану інформацію, але не відповідає безпосередньо на питання.


6
Дуже гарне запитання. Частково залежить від того, чи впливають контрольні суми даних також на WAL (який IIRC вони не мають, за винятком зображень на повній сторінці у WAL). Я не встиг заглибитись у контрольні суми даних, як я допомагав з іншими функціями. Запитувати про pgsql-генерал може бути хорошою ідеєю. Якщо час і нова дитина дозволить, я погляну на джерела, але я не затримував би дихання.
Крейг Рінгер


4
Те, що ви дізнаєтесь на StackExchange ... "допомагає з іншими функціями" - це евфемізм для "зміни памперсів".
Colin 't Hart

Відповіді:


1

Якщо дані були пошкоджені під час роботи на диску, пошкодження не повинно повторюватися, якщо воно вже не було в резервній копії, з якої створена репліка.

Звичайно, якщо ви ігноруєте збої контрольної суми, то майстер може почати йти неправильно, і ця неправильність повториться.

Якщо в пам'яті відбувається пошкодження, то всі ставки виключаються.


2
тут досить близько до позначки. Документація цього ignore_checksum_failureпараметра включає попередження про те, що "така поведінка може ... поширювати ... корупцію". Без прямого згадування (потокової) реплікації, здавалося б, тут мається на увазі. Зазвичай помилка контрольної суми може призвести до припинення транзакції, тому дані не будуть реплікуватися. Ігнорування цієї помилки дозволить вам здійснити транзакцію та записати (потенційно) пошкоджені дані, які також будуть реплікуватися.
Колін 'Харт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.