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