Репликация базы данных средствами SberMobile

SberMobile Server имеет встроенный кластерный движок высокой доступности, который может выполнять репликацию базы данных и балансировку нагрузки, независимо от базы данных. Этот движок обычно имеет ту же конфигурацию, что главный и дублирующий сервера SberMobile. Он настроен на то, чтобы:

  • Отслеживать соединения с несколькими серверами БД.
  • Записывать любые данные, сгенерированные SberMobile Server во все БД.
  • Выбирать менее загруженную базу данных для чтения данных, запрашиваемых SberMobile Server. Это гарантирует балансировку нагрузки между серверами БД.
  • После восстановления неработающей БД движок синхронизирует данные между неисправной БД и другими (активными) базами данных.

Преимущества и недостатки

Преимущества:

  • Настройка проста и не зависит от базы данных.
  • Для обеспечения безопасности данные реплицируются во все узлы кластера БД.
  • Балансировка нагрузки серверов БД во время операций чтения.

Недостатки:

  • Если при записи в одну из БД кластера возникла ошибка, синхронизация баз данных осуществляется SberMobile Server, по сути останавливая все остальные операции сервера. Такие перерывы в работе могут занимать довольно много времени (несколько минут), если одна из баз данных кластера была недоступна длителньое время (например, несколько часов или дней).
  • Небольшие накладные расходы главного сервера SberMobile при операциях записи.
  • Для всех узлов базы данных должны использоваться одни и те же данные для авторизации.

Создание кластера БД с использованием встроенной технологии SberMobile Server обеспечивает зеркалирование данных и, как результат, повышает надежность системы. Это также повышает производительность системы благодаря распределению нагрузки операций чтения. Однако, если узел кластера БД недоступен,  SberMobile Server производит синхронизацию узла БД, чтобы обеспечить целостность данных. Эта операция по сути останавливает все другие операции сервера, поэтому использование встроенной кластеризации БД не рекомендовано для систем высокой надежности, т.е. систем, для которых несколько минут простоя недопустимы.

Пожалуйста, используйте технологию внутренней кластеризации ядра выбранной вами реляционной БД или технологию отказоустойчивой кластеризации БД NoSQL, встроенную в SberMobile Server , чтобы обеспечить сохранность данных при высокой надежности системы.

Настройка

Ниже приведен список изменений в конфигурации, необходимых для настройки репликации БД средствами SberMobile.

Серверы базы данных

  • Настройка двух и более идентичных серверов БД.
  • Настройка всех серверов на принятие соединений с IP-адресов или хостов главного и дублирующего серверов SberMobile.

Главный сервер SberMobile

  • Добавьте запись в таблицу Базы данных кластера для каждого сервера БД. Убедитесь, что Вы указали правильный URL для каждой БД.
  • Убедитесь, что Имя пользователя БД, пароль, и настройки диалекта во вкладке БД  соответствуют Вашим БД.
  • Сохраните общие настройки и запустите сервер. Теперь он должен соединиться с кластером БД.

Все базы данных в кластере должны использовать одни и те же имя пользователя/пароль для подключения SberMobile Server.

Отказоустойчивый сервер SberMobile

  • Выполните изменения, аналогичные изменениям на главном сервере, т.е. включите Кластеризацию БД и добавьте записи в таблицу баз данных кластера.

Решение ситуации сбоя в базе данных

Движок кластеризации выполняет периодические проверки доступности и целостности каждой БД. Если возникает неисправность базы данных, она отключается от кластера и помечается как Not Active (не активная). Сервер не будет пытаться выполнить операции чтения/записи с этой БД.

Активация и синхронизация БД

Сервер периодически проверяет доступность всех неактивных БД. Если неактивная БД становится доступна, сервер автоматически реактивирует ее. В процессе реактивации происходит синхронизация данных между вновь активированной базой и всеми остальными базами данных в кластере, что может потребовать большого количества времени и значительных ресурсов сервера.

Просмотр статуса кластера БД

Чтобы просмотреть статус отдельных баз данных, включенных в кластер базы данных, откройте таблицу Базы данных кластера в общей настройке SberMobile Server. Поле Активен в этой таблице указывает, использует ли кластер базу данных в текущий момент.

Хранение информации о статусе баз данных кластера

SberMobile хранит в памяти информацию об активности баз данных кластера и удерживает эту информацию при перезапуске сервера. Данные хранятся независимо от ОС, например, в системном реестре (для систем Windows) или в файле (для систем Linux).

Чтобы конфигурационный файл кластера всегда соответствовал сохраненному в памяти статусу баз данных, удаляйте кластерные базы данных только при помощи утилиты конфигуратор сервера или другими способами конфигурации SberMobile Server. Не удаляйте учетные записи БД из конфигурационного файла кластера БД, редактируя этот файл напрямую.