Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 12/09/2017 12:55:40
- duple
- Membre
Base REPLIQUE corrompue
Bonjour,
Si on a une base de réplique corrompue, alors que la réplique ne peut accepter que des SELECT. Comment fait on pour la reindexation, ou on le lance dans le master et il serait automatiquement appliqué au slave ?
Hors ligne
#2 12/09/2017 13:07:25
- rjuju
- Administrateur
Re : Base REPLIQUE corrompue
Si votre serveur répliqué est corrompu, la première chose à faire est de comprendre d'où vient cette corruption. S'il s'agit d'un problème disque et que les même sont utilisés sur le serveur principal, autant être au courant tout de suite...
De plus, il s'agit là d'une corruption visible. Il est probable que vous avez également des corruptions silentieuses, c'est-à-dire que les requêtes ne remontent pas d'erreur mais que les données renvoyées sont fausses par exemple.
La seule solution est de :
- arrêter d'utiliser ce serveur en lecture
- trouver la cause de la corruption
- corriger
- recréer le serveur secondaire
Julien.
https://rjuju.github.io/
Hors ligne
#3 12/09/2017 16:12:06
- duple
- Membre
Re : Base REPLIQUE corrompue
Merci de votre réponse sur ce sujet.
Effectivement, j'ai une requête qui lancait au master renvoie bien les résultats attendu. Mais quand on le lance au slave, une erreur "unexpected chunk number 0 (expected 1) for toast value 130066199 in pg_toast_2801358" arrête l’exécution de la requête. Il y avait un arrêt brusque de la base hier suite à une panne électrique, je suppose ce qui a engendré la corruption de la base slave.
Par curiosité, je ne comprends pas trop ce que vous voulez dire par corruption silencieuse, par quel moyen une requête pourrait il renvoyer des données fausses.
Comment savoir si une corruption provienne d'un problème de disque ou autres choses ?
Dans l'attente je vais dumper la base maitre et relancer les procédures de creation de slave.
Hors ligne
Pages : 1