我在亚马逊上托管了我的 drupal 站点,并希望扩展 dbserver 以处理增加的流量。我已启用 RDS 的 dbinstance 的只读副本。我不知道从 drupal 端需要做哪些更改才能使其正常工作。
如果有人将上述实现配置到他们的站点中,那么将非常感谢一些指针。
我在亚马逊上托管了我的 drupal 站点,并希望扩展 dbserver 以处理增加的流量。我已启用 RDS 的 dbinstance 的只读副本。我不知道从 drupal 端需要做哪些更改才能使其正常工作。
如果有人将上述实现配置到他们的站点中,那么将非常感谢一些指针。
从 Drupal 7 开始,他们很容易将它与 MySQL 主(读/写)-从(只读)设置一起使用。假设我们有 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',
);
现在在此之下,如果您希望任何选择查询使用从服务器,请使用以下语法:
$query = db_select('node', 'n', array('target' => 'slave'));
通过提供 array('target' => 'slave') 参数,查询将针对从属数据库之一运行。如果同一个页面有多个这样的查询,那么所有查询都将在同一个从服务器上运行。如果没有可用的从站,则该选项将被忽略,查询将针对主站运行。