17.1.3.2 Обнаружение сбоев
Механизм обнаружения сбоев Group Replication представляет собой распределённую службу, способную определить, что сервер в группе не взаимодействует с другими, и, следовательно, считается неработоспособным. Если консенсус группы состоит в том, что подозрение, вероятно, справедливо, группа принимает скоординированное решение об исключении члена. Исключение члена, который не взаимодействует, необходимо, потому что группе требуется большинство её членов для согласования транзакции или изменения представления. Если член не участвует в этих решениях, группа должна его удалить, чтобы повысить вероятность того, что группа содержит большинство правильно работающих членов и, следовательно, может продолжать обрабатывать транзакции.
В группе репликации каждый член имеет двусторонний канал связи с каждым другим членом, создавая полностью связный граф. Эти подключения управляются движком групповой коммуникации (XCom, вариант Paxos) и используют сокеты TCP/IP. Один канал используется для отправки сообщений члену, а другой — для получения сообщений от члена. Если член не получает сообщения от другого члена в течение 5 секунд, он предполагает, что член вышел из строя, и отмечает статус этого члена как UNREACHABLE в собственной таблице Performance Schema replication_group_members. Обычно два члена подозревают друг друга в выходе из строя, так как они не общаются друг с другом. Хотя менее вероятно, что член A подозревает члена B в выходе из строя, а член B не подозревает члена A — возможно, из-за проблем с маршрутизацией или брандмауэром. Член также может сформировать подозрение в отношении самого себя. Член, изолированный от остальной части группы, предполагает, что все остальные вышли из строя.
Если подозрение длится более 10 секунд, подозреваемый член пытается распространить своё мнение о неисправности подозреваемого члена другим членам группы. Подозреваемый член делает это только в том случае, если он является нотификатором, рассчитанным по внутреннему номеру узла XCom. Если член фактически изолирован от остальной части группы, он может попытаться распространить своё мнение, но это не будет иметь последствий, так как он не может обеспечить кворум других членов, чтобы они с ним согласились. Подозрение имеет последствия только в том случае, если член является нотификатором, а его подозрение длится достаточно долго, чтобы распространиться на других членов группы, и другие члены соглашаются с ним. В этом случае подозреваемый член помечается для исключения из группы в скоординированном решении и исключается после того, как механизм исключения обнаружит и выполнит исключение.
Дополнительную информацию о переменных системы Group Replication, которые можно настроить для указания реакций работающих членов группы на ситуации сбоев, и действиях, предпринимаемых членами группы, которые подозреваются в сбое, см. в .
© 2025 Oracle
Licensed under the GPLv2 License.