在drupal中读取副本配置

时间:2013-11-11 16:43:02

标签: drupal amazon-rds

我在amazon上托管了我的drupal网站,并希望扩展dbserver以处理增加的流量。我启用了RDS的dbinstance的只读副本。我不知道从drupal结束必须做什么改变才能使这个工作。

如果有人将上述实现配置到他们的网站中,那么一些指针将非常受欢迎。

1 个答案:

答案 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')参数,查询将针对其中一个从属数据库运行。如果同一页面有多个此类查询,则所有查询都将在同一个从属服务器上运行。如果没有可用的从站,则将忽略该选项,并且将对主站运行查询。