Отказ кластера высокой доступности - это потеря соединения между серверами баз данных в кластере, которую мог вызвать ряд различных ситуаций.
При нормальном функционировании кластера сервер баз данных ждет подтверждения связи от других серверов баз данных в этом кластере. У каждого сервера баз данных в кластере есть параметр ONCONFIG DRTIMEOUT, который задает срок в секундах. Если подтверждение от другого сервера баз данных в кластере не поступит в течение времени, заданного значением параметра DRTIMEOUT, сервер баз данных сочтет, что произошел сбой кластера.
Серверы баз данных отправляют друг-другу сигналы ping независимо от того, отправляет ли первичный сервер баз данных какие-либо записи на вторичные серверы баз данных, или нет. Если один из серверов баз данных не ответит на четыре последовательные попытки передачи сигнала ping, другой сервер баз данных сочтет, что произошел сбой кластера.
Каждый сервер баз данных в кластере отправляет сигнал ping на другие серверы баз данных в этом кластере по истечении срока, заданного в секундах параметром DRTIMEOUT на этом сервере баз данных.
После того как сервер баз данных обнаружит сбой кластера, он запишет сообщение в свой журнал сообщений (например, DR: receive error - ошибка приема) и выключит репликацию данных. Если происходит сбой кластера, соединение между двумя серверами баз данных прерывается и вторичный сервер баз данных остается в режиме только чтения.
Если вторичный сервер баз данных останется в подключенном состоянии после сбоя кластера, а для параметра конфигурации DRAUTO задано значение 1 (RETAIN_TYPE), тип этого сервера баз данных автоматически изменится на стандартный. Если для DRAUTO задано значение 0 (OFF), вторичный сервер баз данных будет периодически пытаться снова установить соединение с первичным сервером баз данных. Если для DRAUTO задано значение 2 (REVERSE_TYPE), то как только завершится соединение при сбое на исходном первичном сервере, вместо перезапуска исходного первичного сервера баз данных первичным сервером баз данных станет вторичный сервер баз данных.
Если включен менеджер соединений и вы зададите для DRAUTO значение 3, это позволит не допустить того, чтобы в кластере с высокой доступностью оказалось несколько первичных серверов. Если задано DRAUTO=3, при попытке подключения сервера к системе в качестве первичного сервера менеджер соединений проверит, нет ли в кластере других активных первичных серверов. Если активен другой первичный сервер, менеджер соединений отклоняет полученный запрос.