Drupal 7 MySQL主/从复制不起作用

时间:2011-08-16 23:36:24

标签: mysql drupal database-replication master

我无法让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 个答案:

答案 0 :(得分:1)

在Drupal核心中几乎没有使用从属数据库。如果您正在开发自己的模块,那么调用db_query需要指定他们想要使用$ options数组来使用slave数据库。有关如何设置此数组的信息,请参阅DatabaseConnection::defaultOptions

答案 1 :(得分:1)

这个问题对这个问题有一个非常好的答案: https://drupal.stackexchange.com/questions/10806/how-to-get-core-to-leverage-a-mysql-master-slave-configuration

确实可以很容易地使大多数核心和贡献者使用从服务器进行选择,而无需修补核心:)

答案 2 :(得分:0)

AutoSlave模块将SELECT个查询重定向到只读复制数据库, 它会考虑复制滞后。

根据模块文档,只有在满足以下所有条件时才使用只读复制者:

  
      
  1. 查询是选择查询
  2.   
  3. 在请求期间和假定的复制延迟
  4. 期间,尚未写入select查询中的表   
  5. 尚未启动交易
  6.   
  7. 选择查询中的表未在驱动程序设置
  8. 的“表格”选项中指定   
  9. 尚未启动锁定(支持核心db-lock和memcache-lock)
  10.