Распределённые данные · проверено по источникам

Асинхронная репликация

Асинхронная репликация передаёт изменения на резервную сторону без ожидания её подтверждения при фиксации на основном сервере. Реплика может отставать по получению, сохранению и применению журнала.

Также ищут: Asynchronous replication · async replica

Практический смысл

Почему это важно

Подтверждение заказа меньше зависит от задержки реплики, но это не доказывает его наличие на новом основном сервере. При переключении нужно установить, какая история сохранилась и может быть воспроизведена.

Доказательная часть

Что подтверждено

  1. Потоковая репликация PostgreSQL по умолчанию асинхронна: фиксация на основном сервере не ждёт подтверждения резервного. Передача и воспроизведение WAL идут отдельно от такого подтверждения клиенту.

    Граница применимости: Потоковая репликация PostgreSQL 18 без удалённого синхронного ожидания.

  2. При отказе основного сервера могут быть потеряны подтверждённые изменения, чья история WAL недоступна стороне восстановления. Величина риска зависит от реально сохранившейся истории в данном отказе; одно число задержки применения не определяет потери.

    Граница применимости: Асинхронное переключение PostgreSQL 18; учитываются доступные копии WAL, а не только текущий ответ реплики.

  3. Отсутствие удалённого ожидания не означает отсутствия локальной долговечности. synchronous_commit=local ждёт устойчивого локального WAL; synchronous_commit=off может подтвердить раньше его сброса.

    Граница применимости: PostgreSQL 18; локальная политика фиксации и удалённая репликация — отдельные условия.

  4. Готовая отвечать на запросы асинхронная реплика может ещё не воспроизвести подтверждённый на основном сервере заказ. Отсутствие заказа в таком чтении не доказывает, что фиксация не состоялась.

    Граница применимости: Чтения с горячей резервной копии PostgreSQL 18 при отставании воспроизведения.

  5. WAL может быть устойчиво сохранён на реплике раньше применения. Если нужная непрерывная история доступна и успешно воспроизводится, этот разрыв означает работу по применению и задержку видимости, а не уже доказанную потерю изменений.

    Граница применимости: Сопоставление этапов потоковой репликации и восстановления PostgreSQL 18; получение без устойчивого хранения не даёт той же гарантии.

  6. Если основной сервер уже удалил нужный реплике сегмент WAL, возобновить поток только с текущего места недостаточно. Реплика должна получить пропущенную историю из доступного архива либо быть заново создана из подходящей базовой копии.

    Граница применимости: PostgreSQL 18; разрыв требуемой истории потоковой репликации.

  7. Слот репликации удерживает нужный потребителю WAL, но это расходует место на основном сервере. Неограниченное отставание нельзя компенсировать обещанием бесконечного хранения; лимит удержания также может оставить реплику без нужных сегментов.

    Граница применимости: PostgreSQL 18; удержание WAL слотами и предел max_slot_wal_keep_size.

Граница терминов

Не путать

Синхронная репликация

Асинхронная фиксация не ждёт удалённого этапа; синхронная ждёт его на выбранном числе реплик. В обоих случаях нужно отдельно назвать локальную политику и охваченный отказ.

Отставание репликации

Асинхронность — правило подтверждения транзакции, а отставание — измеряемое состояние разных этапов. Нулевое наблюдаемое отставание не превращает режим подтверждения в синхронный.

Перед спецификацией

Что проверить

  1. Отделите локальную политику фиксации от ожидания удалённой копии.
  2. Укажите допустимую потерю подтверждённых заказов для выбранного отказа.
  3. Измеряйте получение, устойчивый сброс и применение WAL раздельно.
  4. Не направляйте обязательную проверку свежего заказа на произвольную отстающую реплику.
  5. Перед переключением установите доступную историю WAL и возможность её применения.
  6. Проверьте архив и процедуру восстановления реплики после пропуска сегментов.
  7. Ограничьте и наблюдайте место, которое удерживают слоты репликации.
Открытые основания

Первоисточники

  • Официальная документация

    PostgreSQL 18 Documentation: Log-Shipping Standby Servers

    PostgreSQL Global Development Group · PostgreSQL 18, Chapter 26.2

    Фиксирует async default, synchronous commit wait points и связь replication delay с data loss.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: Continuous Archiving and Point-in-Time Recovery

    PostgreSQL Global Development Group · PostgreSQL 18, Chapter 25.3

    Связывает base backup, непрерывный WAL archive и проверяемый recovery target.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: WAL Configuration

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Проверить fsync, synchronous_commit=off/on/remote_write/remote_apply и условия ожидания синхронных реплик.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: The Cumulative Statistics System

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Сверить pg_stat_replication: позиции LSN, write_lag/flush_lag/replay_lag, NULL после простоя и отсутствие прогноза догоняния.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: Replication

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Сверить synchronous_standby_names, FIRST/ANY и удержание WAL слотами.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие