我无法让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使用奴隶的东西?
答案 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
个查询重定向到只读复制数据库, 和 它会考虑复制滞后。
根据模块文档,只有在满足以下所有条件时才使用只读复制者:
- 查询是选择查询
- 在请求期间和假定的复制延迟
期间,尚未写入select查询中的表- 尚未启动交易
- 选择查询中的表未在驱动程序设置
的“表格”选项中指定- 尚未启动锁定(支持核心db-lock和memcache-lock)
醇>