Manuel:$wgDBservers

This page is a translated version of the page Manual:$wgDBservers and the translation is 100% complete.
Paramètre du partage de charge: $wgDBservers
Paramètres du partage 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 "postgres" (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)
max lag
(optionnel) délai maximum de réplication avant qu'un réplicat soit sorti de la rotation
max threads
(optionnel) nombre maximum de processus en cours (supprimé en 1.23)
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 (obsolète depuis v. 1.39)
  • DBO_COMPRESS — compresser la communication
  • DBO_PERSISTENT — activer les connexions persistentes
ssl (introduit dans 1.39)
booléen, indique s'il faut utiliser le chiffrement TLS. Redéfinit DBO_SSL.

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 1 :

$wgDBservers = [
    [
        'host' => "primary.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.

Exemple 2 :

$wgDBservers = [
    [
        'host' => 'serv.er',
        'dbname' => 'wikidb',
        'user' => 'wikiuser',
        'password' => 'secret',
        'type' => 'mysql',
        'flags' => DBO_DEFAULT | DBO_SSL,
        'load' => 0
    ]
];

Cela va configurer un serveur avec la connexion SSL personnalisée si $wgDBssl échoue avec la valeur true.

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. (introduit dans 1.30+)
sslCAPath
Chemin vers un répertoire PEM d'autorité de certification.
sslCiphers
Liste de tableaux de chiffres autorisés.

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.

Options spécifiques à MSSQL

Notez que MSSQL n'est plus pris en charge à partir de MediaWiki 1.34.
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.

Notes importantes

Si vous optez pour cela, assurez-vous de garder $wgDBname , $wgDBprefix et $wgDBTableOptions défini, ou assurez-vous que $wgCookiePrefix et $wgCachePrefix sont définis explicitement. Notez aussi que si vous souhaitez vous connecter à un seul serveur de base de données, le paramètre load doit être initialisé à 0.

Voir aussi