Алгоритм выбора базы данных при переходе сервера в режим главного

При переходе сервера в состояние главного наиболее подходящая БД определяется по следующему алгоритму:

  1. проверяется возможность рабочей и архивной БД сервера быть кандидатами на роль новой рабочей БД сервера. Для этого БД должна удовлетворять следующим требованиям:

    • реально существовать на сервере;

    • иметь состояние, отличное от SLAVECRASH или MAINCRASH;

    • время БД должно быть отлично от 0 (существующая БД всегда имеет хотя бы на секунду позже начала эпохи);

    • БД должна быть актуальной (если сравнение происходит не в стартовом (UNDEFINED) состоянии).

  2. если какая-либо БД не может быть кандидатом на роль рабочей БД главного сервера, то автоматически ею становится другая;

  3. если обе БД удовлетворяют перечисленным требованиям, то кандидат выбирается последовательно на основании сравнения системных журналов, времени, состояний;

  4. если на этапе сравнения состояний наиболее подходящая БД не выбрана, то используется рабочая БД;

  5. если обе БД не подходят на роль рабочей БД, то используется архивный файл БД (только для UNDEFINED-состояния с ключом /crash, после разворачивания система останавливается);

  6. возможна также ситуация, когда сервер вообще не имеет данных и, следовательно, не может работать в режиме главного.