[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-postgresql-kakie-vidy-replikatsii-podderzhivaet-postgresql":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},1054,"kakie-vidy-replikatsii-podderzhivaet-postgresql",28,"postgresql","PostgreSQL","🐘","Какие виды репликации поддерживает PostgreSQL?","PostgreSQL поддерживает два основных вида репликации: потоковую (streaming\u002Fфизическую) и логическую (logical). Потоковая реплицирует всю БД побайтово через WAL-поток, логическая — отдельные таблицы на уровне SQL-операций.\n\n### Потоковая (физическая) репликация\n\n```\nМастер (Primary) ---> WAL stream ---> Реплика (Standby)\n```\n\n- Реплицируется **вся** база данных целиком (нельзя выбрать отдельные таблицы)\n- Реплика может быть «горячей» (hot standby) — принимает запросы на чтение\n- Синхронная или асинхронная репликация\n- Используется для отказоустойчивости (failover) и масштабирования чтения\n\n### Синхронная vs асинхронная\n\n- **Асинхронная** (по умолчанию) — мастер не ждёт подтверждения от реплики. Возможна потеря данных при падении мастера\n- **Синхронная** — мастер ждёт подтверждения от реплики перед COMMIT. Нулевая потеря данных, но выше задержка записи\n\n### Логическая репликация (PostgreSQL 10+)\n\n```sql\n-- На мастере (publisher)\nCREATE PUBLICATION payments_pub FOR TABLE transactions, accounts;\n\n-- На подписчике (subscriber)\nCREATE SUBSCRIPTION payments_sub\n    CONNECTION 'host=master port=5432 dbname=bank user=replicator'\n    PUBLICATION payments_pub;\n```\n\n- Можно реплицировать **отдельные таблицы**\n- Можно реплицировать между **разными версиями** PostgreSQL\n- Подписчик может иметь собственные индексы, триггеры\n- Подписчик может быть **доступен для записи**\n\n### Сравнение\n\n| Свойство | Потоковая | Логическая |\n|---|---|---|\n| Единица репликации | Вся БД | Таблицы |\n| Формат | Физический (WAL-байты) | Логический (SQL-операции) |\n| Запись на реплике | Нет | Да |\n| Разные версии PG | Нет | Да |\n| DDL-репликация | Да | Нет |\n| Применение | Failover, чтение | Миграция, частичная репликация |\n\n> **На собеседовании:** покажите понимание сценариев: потоковая — для failover и read-replicas, логическая — для миграции между версиями и частичной репликации. Упомяните, что логическая не реплицирует DDL (ALTER TABLE) — это частый подводный камень при миграции.","","senior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Какие виды репликации поддерживает PostgreSQL? — Gymterview","PostgreSQL поддерживает два основных вида репликации: потоковую (streaming\u002Fфизическую) и логическую (logical). Потоковая реплицирует всю БД побайтово через WAL-","PostgreSQL поддерживает два основных вида репликации: потоковую (streaming\u002Fфизическую) и логическую (logical). Потоковая",[7,13],"PostgreSQL поддерживает два основных вида репликации: потоковую (streaming\u002Fфизическую) и логическую (logical). Потоковая реплицирует всю БД побайтово через WAL-поток, логическая — отдельные таблицы на уровне SQL-операций.",true]