我在amazon上托管了我的drupal网站,并希望扩展dbserver以处理增加的流量。我启用了RDS的dbinstance的只读副本。我不知道从drupal结束必须做什么改变才能使这个工作。
如果有人将上述实现配置到他们的网站中,那么一些指针将非常受欢迎。
答案 0 :(得分:1)
自Drupal 7以来,他们使用MySQL master(读/写)-slave(只读)设置非常容易。假设我们有2个MySQL服务器配置为主从模式。
在settings.php中,从MySQL主配置开始。
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'mysql-master-db',
'username' => 'mysql-master-username',
'password' => 'mysql-master-password',
'host' => 'mysql-master(Read + Write)-IP',
);
现在,在此之下,添加以下代码以配置从属。
$databases['default']['slave'][] = array(
'driver' => 'mysql',
'database' => 'mysql-slave1-db',
'username' => 'mysql-slave1-user',
'password' => 'mysql-slave1-password',
'host' => 'mysql-slave1(Read-only)-IP',
);
现在,如果您希望任何select查询使用从属服务器,请使用以下语法:
$query = db_select('node', 'n', array('target' => 'slave'));
通过提供数组(' target' =>' slave')参数,查询将针对其中一个从属数据库运行。如果同一页面有多个此类查询,则所有查询都将在同一个从属服务器上运行。如果没有可用的从站,则将忽略该选项,并且将对主站运行查询。