Manual:$wgDBservers

From MediaWiki.org
Jump to: navigation, search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
English • ‎فارسی • ‎français • ‎日本語 • ‎polski
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


Details[edit]

Since MediaWiki 1.18 (Release notes) the database user for all databases configured in this array (if you use replication) needs the REPLICATION CLIENT privilege to determine the lag between master <-> slave.

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

host
Host name (see $wgDBserverManual:$wgDBserver). For mysql, it can contain a port or socket path after a colon.
dbname
Default database name (see $wgDBnameManual:$wgDBname)
user
DB user (see $wgDBuserManual:$wgDBuser)
password
DB password (see $wgDBpasswordManual:$wgDBpassword)
type
"mysql" or "pgsql" (see $wgDBtypeManual:$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:

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, each slave getting an equal amount of read access load.

max lag
(optional) Maximum replication lag before a slave will be taken out of rotation
max threads
((removed in 1.23) 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.

Mysql specific options[edit]

lagDetectionMethod 
Set to one of (Seconds_Behind_Master,pt-heartbeat). pt-heartbeat assumes the table is at heartbeat.heartbeat and uses UTC timestamps in the heartbeat.ts column. (https://www.percona.com/doc/percona-toolkit/2.2/pt-heartbeat.html)
lagDetectionOptions 
If using pt-heartbeat, this can be set to an array map to change the default behavior. Normally, the heartbeat row with the server ID of this server's master will be used. Set the "conds" field to override the query conditions, e.g. ['shard' => 's1'].
useGTIDs 
Use GTID methods like MASTER_GTID_WAIT() when possible.
sslKeyPath 
Path to key file.
sslCertPath 
Path to certificate file.
sslCAFile
Path to a single certificate authority PEM file. 1.30+
sslCAPath 
Path to certificate authority PEM directory.
sslCiphers 
Array list of allowable ciphers.

MSSQL specific options[edit]

port 
Port to connect to the server.
UseWindowsAuth 
Use Integrated Windows Authentication for authentication to the database instead of username/password.

Postgres specific options[edit]

port 
Port to connect to the server.
keywordTableMap 
Map of reserved table names to alternative table names to use

Sqlite specific options[edit]

dbFilePath 
Path to the database file.
dbDirectory 
Path to the directory containing the database file. Only needed if dbFilePath is not specified, and requires dbname.
dbname 
Name of the database (without the .sqlite extension). Only needed if dbFilePath is not specified, and requires dbDirectory.
trxMode 
Transaction mode. One of DEFERRED, IMMEDIATE or EXCLUSIVE.

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 $wgDBloadsManual:$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 $wgCookiePrefixManual:$wgCookiePrefix and $wgCachePrefixManual:$wgCachePrefix are set explicitly.

See also[edit]