17.9.5.2 Восстановление по состоянию на определённый момент времени
Для синхронизации сервера, присоединяющегося к группе, с донором до определённого момента времени, присоединяющийся сервер и донор используют механизм идентификаторов глобальных транзакций MySQL (GTID). См. Раздел 16.1.3, «Репликация с глобальными идентификаторами транзакций». Однако GTID предоставляют лишь способ определить, какие транзакции отсутствуют на присоединяющемся сервере, но не помогают обозначить конкретный момент времени, к которому присоединяющийся сервер должен синхронизироваться, а также не обеспечивают передачу сертификационных данных. Это задача маркеров просмотра бинарного лога, которые отмечают изменения в потоке бинарного лога и содержат дополнительную метаданную информацию, предоставляя присоединяющемуся серверу недостающие данные, связанные с сертификацией.
Просмотр и изменения просмотра
Для объяснения концепции маркеров изменения просмотра важно понять, что такое просмотр и изменение просмотра.
Просмотр соответствует группе участников, активно участвующих в текущей конфигурации, то есть в определённый момент времени. Они корректны и онлайн в системе.
Изменение просмотра происходит при изменении конфигурации группы, например, при присоединении или выходе участника. Любое изменение членства в группе приводит к независимому изменению просмотра, переданному всем участникам в один и тот же логический момент времени.
Идентификатор просмотра однозначно идентифицирует просмотр. Он генерируется при каждом изменении просмотра.
На уровне коммуникации группы изменения просмотра с соответствующими идентификаторами просмотра являются границами между данными, обмениваемыми до и после присоединения участника. Эта концепция реализована посредством нового события бинарного лога: «событие изменения просмотра». Таким образом, идентификатор просмотра также становится маркером для транзакций, переданных до и после изменений в членстве группы.
Сам идентификатор просмотра состоит из двух частей: (i) случайной и (ii) монотонно возрастающей целой. Первая часть генерируется при создании группы и не изменяется, пока в группе есть хотя бы один участник. Вторая часть увеличивается каждый раз при изменении просмотра.
Причина использования такой гетерогенной пары для идентификатора просмотра заключается в необходимости однозначно отмечать изменения в группе при присоединении или выходе участника, а также при выходе всех участников из группы, когда нет никакой информации о том, в каком просмотре находилась группа. Фактически, использование только монотонно возрастающих идентификаторов может привести к повторному использованию одного и того же идентификатора после полного завершения работы группы, что разрушает уникальность маркеров данных бинарного лога, от которых зависит восстановление. Подводя итог, первая часть идентифицирует момент запуска группы с нуля, а нарастающая часть — момент изменения группы с этого момента.
© 2025 Oracle
Licensed under the GPLv2 License.