998просмотров
57.9%от подписчиков
24 января 2026 г.
questionScore: 1.1K
Что такое реплики баз данных? Начнем с того, что реплика - это копия основной базы данных (или её части). Реплика используется для многих целей. Как пример: ▶️Для отказоустойчивости. Если с основной БД что-то случается, то реплика становится на её место и перенимает весь её функционал до тех пор, пока проблема не устранится. В тот момент, когда основная БД становится снова доступна, она, как правило, сама становится репликой. А старая реплика становится основной БД. ▶️Для снижения нагрузки на основную систему. Базы данных используются для очень многих процессов: туда и загружаются данные, и добавляются новые столбцы, и происходят обновления/удаления и т.д. и т.п. И еще из БД данные выгружаются. И чтобы не нагружать БД еще и разными выгрузками, делаются реплики в виде read-only (откуда данные можно только выгружать). Это делается для того, чтобы основная БД не использовалась для выгрузок и чтобы распределить лишнюю нагрузку. Также это помогает снижать риск случайной порчи данных из-за человеческого фактора или из-за ошибки системы. 🟠Выделяют основные виды реплик: ▶️Read-only replica, упоминалась чуть выше. Это та реплика, которая позволяет только читать данные, но не изменять их. ▶️Hot standby. По сути, это тоже реплика, которая принимает запросы только на выборку, но которая в случае сбоев основной БД может её заменить. ▶️Warm/cold standby. Это реплика, которая вообще никак не используется ни для каких запросов, которая просто существует. Но в случае сбоев основной БД принимает весь её функционал. 🟠Базовые этапы построения реплик выглядят так: 1️⃣Сначала делается полная копия БД на определенный момент времени, т.е. её снимок. Таким образом реплика создаётся, принимается ее начальное состояние. 2️⃣Одновременно эта позиция фиксируется с помощью логов в журнале транзакций, чтобы потом иметь понимание, с какого состояния эту реплику поддерживать 3️⃣Затем с помощью логов в журнале транзакций фиксируются изменения, которые происходят с БД 4️⃣В итоге эти изменения непрерывно передаются на реплику, чтобы она соответствовала актуальной версии БД. Таким образом реплика поддерживается. P.S. Репликация и CDC (про который писал ранее) основаны на одном и том же механизме - чтении журнала транзакций, но решают разные задачи.