Open main menu

Manuel:$wgDBservers

This page is a translated version of the page Manual:$wgDBservers and the translation is 100% complete.

Other languages:
English • ‎français • ‎magyar • ‎polski • ‎中文 • ‎日本語
Paramètre du partage de charge: $wgDBservers
Paramètres pour l'équilibreur de charge de base de données (serveurs de base de données et ratios de charge).
Introduit dans la version :1.2.0
Retiré dans la version :Encore utilisé
Valeurs autorisées :voir ci-dessous
Valeur par défaut :false

Détails

Depuis MediaWiki 1.18 (Notes de diffusion) l'utilisateur de la base de données pour toutes les bases configurées dans ce tableau (si vous utilisez la réplication) a besoin du privilège REPLICATION CLIENT pour déterminer le décalage entre le maître et le replicat.

Équilibreur de charge de base de données. C'est un tableau à deux dimensions, un tableau de structures d'information de serveur. Les champs en sont:

host
Nom de l'hôte (voir $wgDBserver ). Pour MySQL, il peut contenir un port ou un chemin de socket après les deux points.
dbname
Nom par défaut de la base de données (voir $wgDBname )
user
Utilisateur de la base de données (voir $wgDBuser )
password
Mot de passe de la base de données (voir $wgDBpassword )
type
"mysql" ou "pgsql" (voir $wgDBtype )
load
ratio de charge DB_REPLICA, doit être >=0, la somme de toutes les charges doit être >0
groupLoads
tableau des ratios de charge, la clé est le nom de groupe de requête. Une requête peut appartenir à plusieurs groupes; le groupe le plus spécifique défini ici est utilisé. (introduit dans 1.4.3)
flags
Champ de bits:
  • DBO_DEFAULT -- active DBO_TRX seulement si $wgCommandLineMode  != true (recommandé)
  • DBO_DEBUG -- équivalent à $wgDebugDumpSql
  • DBO_TRX -- démarre automatiquement les transactions (voir Database transactions )
  • DBO_IGNORE -- ignore les erreurs (inutile dans LocalSettings.php)
  • DBO_NOBUFFER -- désactive la mise en tampon (inutile dans LocalSettings.php)
  • DBO_SSL -- utilise une connexion sécurisée
  • DBO_COMPRESS -- compresser la communication
  • DBO_PERSISTENT -- activer les connexions persistentes

Laisser à false pour utiliser les variables mono-serveur listées ci-dessus.

Le maître doit être la première entrée du tableau.

Exemple :

$wgDBservers = [
    [
        'host' => "master.serv.er",
        'dbname' => "wikidb",
        'user' => "wikiuser",
        'password' => "secret",
        'type' => "mysql",
        'flags' => DBO_DEFAULT,
        'load' => 0,
    ],
    [
        'host' => "replica1.serv.er",
        'dbname' => "wikidb",
        'user' => "wikiuser",
        'password' => "secret",
        'type' => "mysql",
        'flags' => DBO_DEFAULT,
        'load' => 1,
    ],
    [
        'host' => "replica2.serv.er",
        'dbname' => "wikidb",
        'user' => "wikiuser",
        'password' => "secret",
        'type' => "mysql",
        'flags' => DBO_DEFAULT,
        'load' => 1,
    ],
];

Cela configurera un maître et deux réplicats, chacun des réplicats ayant la même quantité de charge d'accès en lecture.

max lag
(optionnel) délai maximum de réplication avant qu'un réplicat soit sorti de la rotation
max threads
((supprimé en 1.23) optionnel) nombre maximum de processus en cours

Celles-ci et toute autre propriété définie par l'utilisateur doivent être assignées à la variable membre mLBInfo de l'objet Database.

Options spécifiques à MySQL

lagDetectionMethod 
Initialiser à l'une des valeurs (Seconds_Behind_Master, pt-heartbeat). pt-heartbeat suppose que la table est à heartbeat.heartbeat et utilise l'horodatage UTC dans la colonne heartbeat.ts (https://www.percona.com/doc/percona-toolkit/2.2/pt-heartbeat.html)
lagDetectionOptions 
Si vous utilisez pt-heartbeat, vous pouvez initialiser ceci avec un tableau de correspondance pour modifier le comportement par défaut. Normalement, on utilise la ligne heartbeat avec l'ID du maître du serveur actuel. Initialisez le champ "conds" pour réécraser les conditions de la requête, par exemple ['shard' => 's1'].
useGTIDs 
Utilisez les méthodes GTID comme MASTER_GTID_WAIT() là où c'est possible.
sslKeyPath 
Chemin vers le fichier clé.
sslCertPath 
Chemin vers le fichier de certificat.
sslCAFile
Chemin vers un fichier PEM d'autorité de certification unique. 1.30+
sslCAPath 
Chemin vers un répertoire PEM d'autorité de certification.
sslCiphers 
Liste de tableaux de chiffres autorisés.

Options spécifiques à MSSQL

port 
Port pour se connecter au serveur.
UseWindowsAuth 
Utilisez l'Authentification Windows intégrée pour l'authentification auprès de la base de données au lieu du nom d'utilisateur/mot de passe.

Options spécifiques à PostgreSQL

port 
Port pour se connecter au serveur.
keywordTableMap 
Correspondance entre les noms de tables réservés et d'autres noms de table à utiliser

Options spécifiques à SQLite

dbFilePath 
Chemin vers le fichier de la base de données.
dbDirectory 
Chemin vers le répertoire contenant le fichier de la base de données. Nécessaire uniquement si dbFilePath n'est pas spécifié et nécessite dbname.
dbname 
Nom de la base de données (sans l'extension .sqlite). Nécessaire uniquement si dbFilePath n'est pas spécifié et nécessite dbDirectory.
trxMode 
Mode de transaction. Une valeur parmi : DEFERRED, IMMEDIATE ou EXCLUSIVE.

Premières versions

Les versions de MediaWiki antérieures à 1.4.0 utilisaient un tableau à une dimension, listant les noms de serveur, par ex. array("larousse", "pliny"), lequel était utilisé en lien avec $wgDBloads . Depuis la version 1.4.0, $wgDBloads est obsolète et la méthode ci-dessus doit être utilisée.

Le champ groupLoads a été ajouté en 1.4.3.

max lag et max threads (et l'utilisation d'autres propriétés définies par l'utilisateur) ont été ajoutées en 1.6.0

Avertissements

Si vous optez pour cela, assurez-vous de garder $wgDBname défini, ou assurez-vous que $wgCookiePrefix et $wgCachePrefix sont définis explicitement.

Voir aussi