Master/Master/Slave (High availability/High performance)

Last updated on
30 April 2025

You are browsing documentation for an older version of Drupal, which is not supported any longer, and the information may not be correct. See current documentation for Contributed modules

The following setup has 2 masters and 2 slaves. The two master will also be used as slaves. The setup will prefer master1 as the master, and switch to master2 if master1 fails.

<?php
$databases['default']['master1'] = array (
  'database' => 'mydatabase',
  'username' => 'readwrite',
  'password' => 'readwrite',
  'host' => 'master1',
  'port' => '',
  'driver' => 'mysql',
  'prefix' => '',
);
$databases['default']['master2'] = array (
  'database' => 'mydatabase',
  'username' => 'readwrite',
  'password' => 'readwrite',
  'host' => 'master2',
  'port' => '',
  'driver' => 'mysql',
  'prefix' => '',
);

$databases['default']['slave'][] = array (
  'database' => 'mydatabase',
  'username' => 'readonly',
  'password' => 'readonly',
  'host' => 'slave1',
  'port' => '',
  'driver' => 'mysql',
  'prefix' => '',
  'readonly' => TRUE,
);
$databases['default']['slave'][] = array (
  'database' => 'mydatabase',
  'username' => 'readonly',
  'password' => 'readonly',
  'host' => 'slave2',
  'port' => '',
  'driver' => 'mysql',
  'prefix' => '',
  'readonly' => TRUE,
);
$databases['default']['slave'][] = $databases['default']['master1'];
$databases['default']['slave'][] = $databases['default']['master2'];

$databases['default']['default'] = array (
  'driver' => 'autoslave',
  'master' => array('master1', 'master2'),
  'slave' => array('slave'),
);
?>

Help improve this page

Page status: Not set

You can: