Алгоритм выбора базы данных при переходе сервера в режим главного
При переходе сервера в состояние главного наиболее подходящая БД определяется по следующему алгоритму:
-
проверяется возможность рабочей и архивной БД сервера быть кандидатами на роль новой рабочей БД сервера. Для этого БД должна удовлетворять следующим требованиям:
-
реально существовать на сервере;
-
иметь состояние, отличное от SLAVECRASH или MAINCRASH;
-
время БД должно быть отлично от 0 (существующая БД всегда имеет хотя бы на секунду позже начала эпохи);
-
БД должна быть актуальной (если сравнение происходит не в стартовом (UNDEFINED) состоянии).
-
-
если какая-либо БД не может быть кандидатом на роль рабочей БД главного сервера, то автоматически ею становится другая;
-
если обе БД удовлетворяют перечисленным требованиям, то кандидат выбирается последовательно на основании сравнения системных журналов, времени, состояний;
-
если на этапе сравнения состояний наиболее подходящая БД не выбрана, то используется рабочая БД;
-
если обе БД не подходят на роль рабочей БД, то используется архивный файл БД (только для UNDEFINED-состояния с ключом
/crash
, после разворачивания система останавливается); -
возможна также ситуация, когда сервер вообще не имеет данных и, следовательно, не может работать в режиме главного.