Распределённые данные

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

Определение

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

Также ищут: 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. Ограничьте и наблюдайте место, которое удерживают слоты репликации.
Открытые основания

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

  • Документация5
  • Официальная документация
    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.

    Утверждения: 01 · 02 · 04 · 05 · 06 · 07

  • Официальная документация
    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.

    Утверждения: 02 · 05 · 06

  • Официальная документация
    PostgreSQL 18 Documentation: WAL Configuration PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года · проверено

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

    Утверждения: 03

  • Официальная документация
    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 после простоя и отсутствие прогноза догоняния.

    Утверждения: 05

  • Официальная документация
    PostgreSQL 18 Documentation: Replication PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года · проверено

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

    Утверждения: 07

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие