Drupal 7 MySQL master / slave репликация не работает - PullRequest
4 голосов
/ 17 августа 2011

У меня проблемы с получением Drupal 7.7 для использования подчиненной базы данных MySQL.

Мой файл settings.php выглядит следующим образом:

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'my_db',
  'username' => 'dbuser',
  'password' => 'dbpw',
  'host' => 'db-ip-address'
);
$databases['default']['slave'][] = array(
  'driver' => 'mysql',
  'database' => 'my_db',
  'username' => 'dbuser',
  'password' => 'dbpw',
  'host' => '127.0.0.1'
);

Сама репликация работает отлично.Когда я добавляю новый контент на сайт, он быстро копируется на ведомый.

Хотя, глядя на tcpdump, я никогда не вижу вызова локальной базы данных.

Есть ли что-то, чего мне не хватает, чтобы позволить Drupal использовать раба?

Ответы [ 3 ]

1 голос
/ 01 февраля 2012

Эта проблема имеет действительно хороший ответ на этот же вопрос: https://drupal.stackexchange.com/questions/10806/how-to-get-core-to-leverage-a-mysql-master-slave-configuration

Действительно, довольно легко можно сделать большинство основных и использовать подчиненный сервер для выбора, не внося исправления в ядро:)

1 голос
/ 23 августа 2011

Использование ведомых баз данных практически не реализовано в ядре Drupal. Если вы разрабатываете свои собственные модули, то вызовы db_query должны указывать, что они хотят использовать подчиненную базу данных с помощью массива $ options. См. DatabaseConnection :: defaultOptions , чтобы узнать, как установить этот массив.

0 голосов
/ 13 декабря 2012

Модуль AutoSlave перенаправляет SELECT запросы в реплицируемые базы данных только для чтения, и , учитывает задержку репликации.

Согласно документам модуля, он использует репликант только для чтения, когда выполняются все следующие условия:

  1. Запрос является запросом выбора
  2. Таблицы в запросе выбора не были записаны во время запроса и в пределах предполагаемой задержки репликации
  3. Транзакция не была начата
  4. Таблицы в запросе выбора не указаны в параметре «таблицы» в настройках драйвера
  5. Блокировка не была запущена (поддерживаются core db-lock и memcache-lock)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...