Manual:$wgDBservers

From MediaWiki.org
Jump to: navigation, search
LoadBalancer settings: $wgDBservers
Settings for the database load balancer (database servers and load ratios).
Introduced in version: 1.2.0
Removed in version: still in use
Allowed values: (see below)
Default value: false

Other settings: Alphabetical | By Function


Contents

Details [edit]

Database load balancer. This is a two-dimensional array, an array of server info structures. Fields are:

host
Host name (see $wgDBserver)
dbname
Default database name (see $wgDBname)
user
DB user (see $wgDBuser)
password
DB password (see $wgDBpassword)
type
"mysql" or "pgsql" (see $wgDBtype)
load
ratio of DB_SLAVE load, must be >=0, the sum of all loads must be >0
groupLoads
array of load ratios, the key is the query group name. A query may belong to several groups, the most specific group defined here is used. (added in 1.4.3)
flags
bit field:
  • DBO_DEFAULT -- turns on DBO_TRX only if $wgCommandLineMode != true (recommended)
  • DBO_DEBUG -- equivalent of $wgDebugDumpSql
  • DBO_TRX -- automatically start transactions (see Database transactions)
  • DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
  • DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)

Leave at false to use the single-server variables listed above.

The master must be the first entry in the array.

Example:

$wgDBservers = array(
         array(
                 'host' => "master.serv.er",
                 'dbname' => "wikidb",
                 'user' => "wikiuser",
                 'password' => "secret",
                 'type' => "mysql",
                 'flags' => DBO_DEFAULT,
                 'load' => 0,
         ),
         array(
                 'host' => "slave1.serv.er",
                 'dbname' => "wikidb",
                 'user' => "wikiuser",
                 'password' => "secret",
                 'type' => "mysql",
                 'flags' => DBO_DEFAULT,
                 'load' => 1,
         ),
         array(
                 'host' => "slave2.serv.er",
                 'dbname' => "wikidb",
                 'user' => "wikiuser",
                 'password' => "secret",
                 'type' => "mysql",
                 'flags' => DBO_DEFAULT,
                 'load' => 1,
         ),
);

This would configure one master and two slaves, which each slave get an equal amount of read access load.


max lag
(optional) Maximum replication lag before a slave will be taken out of rotation
max threads
(optional) Maximum number of running threads

These and any other user-defined properties will be assigned to the mLBInfo member variable of the Database object.

Early versions [edit]

Versions of MediaWiki prior to 1.4.0 used a single-dimensional array, listing the server names, e.g. array("larousse", "pliny"), which was used in conjunction with $wgDBloads. From 1.4.0 onwards, $wgDBloads is deprecated and the above method must be used.

The groupLoads field was added in 1.4.3.

max lag and max threads (and the use of other user-defined properties) was added in 1.6.0

Warnings [edit]

If you switch to this, ensure you either keep $wgDBname set, or ensure $wgCookiePrefix and $wgCachePrefix are set explicitly.

See also [edit]

Language: English  • français • 日本語