4

Drupal7.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がスレーブを使用できるようにするために欠けているものはありますか?

4

3 に答える 3

1

この問題には、この同じ質問に対する本当に良い答えがあります: https://drupal.stackexchange.com/questions/10806/how-to-get-core-to-leverage-a-mysql-master-slave-configuration

コアにパッチを当てずに、コアとコントリブのほとんどを選択にスレーブサーバーを使用するのはかなり簡単です:)

于 2012-02-01T17:23:03.847 に答える
0

AutoSlaveモジュールは、クエリを読み取り専用のレプリカントデータベースにリダイレクトしSELECT、レプリケーションの遅延考慮に入れます。

モジュールのドキュメントによると、次のすべての条件が当てはまる場合にのみ、読み取り専用レプリカントが使用されます。

  1. クエリは選択クエリです
  2. selectクエリのテーブルは、リクエスト中および想定されるレプリケーションラグ内に書き込まれていません。
  3. トランザクションが開始されていません
  4. 選択クエリのテーブルが、ドライバ設定の「テーブル」オプションで指定されていません
  5. ロックが開始されていません(コアdb-lockおよびmemcache-lockがサポートされています)
于 2012-12-13T16:47:57.033 に答える