8.4.6 Использование MySQL Clone с InnoDB Cluster
InnoDB Cluster интегрирует плагин MySQL Clone для автоматической подготовки присоединения экземпляров. Процесс извлечения данных кластера, чтобы экземпляр мог синхронизироваться с кластером, называется распределённым восстановлением. Когда экземпляру необходимо восстановить транзакции кластера, мы различаем донора, который является экземпляром кластера, предоставляющим данные, и получателя, который является экземпляром, получающим данные от донора. В предыдущих версиях Group Replication предоставлял только асинхронную репликацию для восстановления транзакций, необходимых для синхронизации присоединяемого экземпляра с кластером, чтобы он мог присоединиться к кластеру. Для кластера с большим количеством ранее обработанных транзакций может потребоваться много времени для восстановления всех транзакций новым экземпляром перед его присоединением к кластеру. Или кластер, который очистил GTID, например, в рамках планового технического обслуживания, может не иметь некоторых транзакций, необходимых для восстановления нового экземпляра. В таких случаях единственной альтернативой было ручное предоставление экземпляра с помощью инструментов, таких как MySQL Enterprise Backup, как показано в .
MySQL Clone предоставляет альтернативный способ восстановления транзакций, необходимых для синхронизации экземпляра с кластером. Вместо того, чтобы полагаться на асинхронную репликацию для восстановления транзакций, MySQL Clone создаёт моментальную копию данных на экземпляре-доноре и затем передаёт эту моментальную копию получателю.
Все предыдущие данные в получателе уничтожаются во время операции клонирования. Однако все настройки MySQL, не хранящиеся в таблицах, сохраняются.
После того, как операция клонирования передала моментальную копию получателю, если кластер обработал транзакции во время передачи моментальной копии, для синхронизации получателя с кластером используется асинхронная репликация для восстановления необходимых данных. Это может быть намного эффективнее, чем восстановление экземпляром всех транзакций с помощью асинхронной репликации, и позволяет избежать проблем, вызванных очисткой GTID, что позволяет быстро предоставлять новые экземпляры для InnoDB Cluster. Дополнительную информацию см. в и
В отличие от использования MySQL Clone, инкрементное восстановление — это процесс, при котором экземпляр, присоединяющийся к кластеру, использует только асинхронную репликацию для восстановления экземпляра из кластера. Когда InnoDB Cluster настроен на использование MySQL Clone, экземпляры, присоединяющиеся к кластеру, используют либо MySQL Clone, либо инкрементное восстановление для восстановления транзакций кластера. По умолчанию кластер автоматически выбирает наиболее подходящий метод, но вы можете настроить это поведение, например, принудительно включить клонирование, которое заменяет любые транзакции, уже обработанные присоединяемым экземпляром. При использовании MySQL Shell в интерактивном режиме, если кластер не уверен, что может продолжить восстановление, он предоставляет интерактивный запрос. В этом разделе описаны различные предлагаемые варианты и различные сценарии, влияющие на выбор вариантов.
Кроме того, вывод для членов в состоянии Cluster.status()RECOVERING включает информацию о ходе восстановления, что позволяет легко отслеживать операции восстановления, использующие MySQL Clone или инкрементное восстановление. InnoDB Cluster предоставляет дополнительную информацию об экземплярах, использующих MySQL Clone, в выводе .Cluster.status()
Существуют проверки совместимости версий клонирования для экземпляров-доноров и получателей. При определенных условиях необходимо соответствие только основному и второстепенному номерам версии, номер исправления игнорируется.
Применяются следующие условия:
Только версия 8.0.17 или выше может выполнять клонирование.
Если обе версии 8.0.37 или выше, необходимо соответствие только основному и второстепенному номерам версий.
Если версия 8.0.17 или выше и меньше 8.0.37, должны соответствовать основные, второстепенные и номер исправления.
© 2025 Oracle
Licensed under the GPLv2 License.