Обзор репликации
Репликация — это функция, позволяющая копировать содержимое одного или нескольких серверов (называемых первичными) на один или несколько серверов (называемых репликами).
Вы можете контролировать, какие данные реплицировать. Все базы данных, одна или несколько баз данных или таблицы внутри базы данных могут быть реплицированы выборочно.
Основным механизмом, используемым в репликации, является бинарный журнал. Если включена запись в бинарный журнал, все обновления базы данных (манипуляции и определения данных) записываются в бинарный журнал в качестве событий бинарного журнала. Реплики считывают бинарный журнал с каждого первичного сервера, чтобы получить доступ к данным для репликации. На реплике создается журнал ретрансляции с тем же форматом, что и бинарный журнал, и он используется для выполнения репликации. Старые файлы журнала ретрансляции удаляются, когда они больше не нужны.
Сервер реплики отслеживает позицию в первичном бинарном журнале последнего применённого события на реплике. Это позволяет серверу реплики подключиться и продолжить репликацию с того места, где он остановился после временной остановки репликации. Это также позволяет реплике отключиться, быть клонированной, а затем новой реплике продолжить репликацию с того же первичного сервера.
Первичные и реплики не нуждаются в постоянном общении друг с другом. Совершенно возможно отключить серверы или отключиться от сети, и при их возвращении репликация продолжится с того места, где она остановилась.
Применение репликации
Репликация используется в ряде распространённых сценариев. Применение включает:
- Масштабируемость. Имея одну или несколько реплик, чтение может быть распределено по нескольким серверам, что уменьшает нагрузку на первичный сервер. Наиболее распространённый сценарий для среды с большим чтением и малым количеством записей — это один первичный сервер, где происходят все записи, реплицируемые на несколько реплик, которые обрабатывают большинство чтений.
- Анализ данных. Анализ данных может слишком сильно повлиять на первичный сервер, и это аналогично может быть обработано на реплике, в то время как первичный сервер останется незатронутым дополнительной нагрузкой.
- Помощь в резервном копировании. Резервные копии могут быть выполнены проще, если сервер не активно изменяет данные. Распространённый сценарий — репликация данных на реплику, которая затем отключается от первичного сервера с данными в стабильном состоянии. Затем резервное копирование выполняется с этого сервера. См. Репликация как решение для резервного копирования.
- Распределение данных. Вместо подключения к удалённому первичному серверу можно реплицировать данные локально и работать с этими данными.
Общие конфигурации репликации
Стандартная репликация
- Обеспечивает бесконечное масштабирование чтения.
- Обеспечивает высокую доступность, повышая реплику до первичного уровня.
Репликация в кольце
- Обеспечивает масштабирование чтения и записи.
- Не обрабатывает конфликты.
- Если один первичный сервер выходит из строя, репликация прекращается.
Звёздная репликация
- Обеспечивает масштабирование чтения и записи.
- Не обрабатывает конфликты.
- Необходимо использовать фильтры репликации, чтобы избежать дублирования данных.
Репликация из нескольких источников
- Позволяет объединить данные из разных источников.
- Разные домены выполняются независимо параллельно на всех репликах.
Совместимость репликации между версиями
В следующей таблице описана совместимость репликации между различными версиями MariaDB Server. В целом, реплика должна быть всегда как минимум эквивалентной по версии первичному серверу:
| Primary→ | MariaDB 10.3 | MariaDB 10.4 | MariaDB 10.5 | MariaDB 10.6 | MariaDB 10.11 | |
|---|---|---|---|---|---|---|
| Replica ↓ | ||||||
| MariaDB 10.3 | ✅ | ⛔ | ⛔ | ⛔ | ⛔ | |
| MariaDB 10.4 | ✅ | ✅ | ⛔ | ⛔ | ⛔ | |
| MariaDB 10.5 | ✅ | ✅ | ✅ | ⛔ | ⛔ | |
| MariaDB 10.6 | ✅ | ✅ | ✅ | ✅ | ⛔ | |
| MariaDB 10.11 | ✅ | ✅ | ✅ | ✅ | ✅ |
- ✅: Эта комбинация поддерживается.
- ⛔: Эта комбинация не поддерживается.
Подробные сведения о совместимости репликации между MariaDB и MySQL см. в разделе MariaDB по сравнению с MySQL - Совместимость: Совместимость репликации.
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/replication-overview/