Просмотров: 14405 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 21.11.2019
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в редакциях:
Старт, Стандарт, Малый бизнес, Бизнес

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

Подключение к сайту дополнительных серверов баз данных позволяет снизить нагрузку на основную базу данных. В этом случае чтение данных происходит из дополнительных (slave) баз данных, а запись - в основную.

Репликация

Подключение

Подключение и настройка дополнительных (slave) баз данных осуществляется на странице Slave базы данных (Настройки > Веб-кластер > Группа #1 > Репликация).

Репликация

Внимание! При использовании нескольких веб-серверов в файле \bitrix\php_interface\dbconn.php на всех серверах обязательно должен быть указан адрес подключения к главной базе данных (master). Желательно указывать прямой IP-адрес или быть уверенным, что для каждого веб-сервера будет происходить соединение именно с сервером главной базы данных в случае обращения не по IP-адресу. Использование адреса вида localhost при такой конфигурации запрещено.

Для репликации необходимо использовать разные серверы с быстрым каналом связи между собой.

В настройках модуля Веб-кластер можно указать время отставания slave базы данных от master, после которого она будет автоматически отключена для снижения риска рассинхрониизации данных.

Примечание: Для работы репликации учетные записи основного и резервных master/slave-серверов должны иметь, кроме стандартных, также привилегии: SUPER, REPLICATION CLIENT, REPLICATION SLAVE.

Учетные записи

  • Нажмите кнопку Добавить slave базу данных. После чего откроется окно мастера добавления новой slave базы данных.
  • В первом окне будут выведены рекомендации по настройке системы Мастер добавления новой slave базы данных , критичные для работы. Обязательно исправьте их, пока проверка не покажет, что всё в порядке Мастер добавления новой slave базы данных .
  • Пройдите все шаги мастера Мастер добавления новой slave базы данных

    И так далее...
    .

После прохождения мастера база появится в списке, но будет не задействована:

Мастер добавления новой slave базы данных

В списке slave баз данных в меню действий выполните команду Начать использовать пункт меню "Начать использовать" и следуйте рекомендациям мастера.

Внимание! Запуск репликации начинается с копирования содержимого базы данных. На время копирования публичная часть сайта будет закрыта Мастер запуска slave базы данных , а административная нет. Любые неучтенные модификации данных в период копирования могут в дальнейшем повлиять на правильность работы сайта.

После успешного подключения slave-сервера баз данных отображается его статус Статус сервера баз данных .

Настройка параметров базы данных

При необходимости измените настройки подключения базы. Для этого дважды кликните по желаемой базе в списке или воспользуйтесь пунктом меню действий Изменить. Откроется форма Настройка параметров главной базы/slave базы данных:

Настройка параметров slave базы данных

Значение в поле Процент распределения нагрузки (0..100) указывается для каждой базы в отдельности. Эта опция перераспределяет большую часть нагрузки на более быстрые и мощные серверы в составе кластера.

Примечание: Для главной базы существует отдельная опция, которая позволяет Минимизировать нагрузку Настройка параметров главной базы данных на нее.

Особенности обращений к master базе

Если на хите в системе происходит запись в master базу, то последующие операции чтения (запросы) данных будут тоже происходить из master базы, а не slave.

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

Примечание для разработчиков: Собственные запросы на запись в системе (пример - веб аналитика) обрамлены специальными методами класса CDatabase: StartUsingMasterOnly и StopUsingMasterOnly. Которые соответственно начинают и заканчивают использование только мастер базы.

Вы можете обернуть свои АПИ вызовы на запись такими конструкциями, но должны быть уверены, что дальше по коду не будет чтения этих данных из базы.

Дополнительно


24


Курсы разработаны в компании «1С-Битрикс»