Il s'agit spécifiquement de maintenir la confiance dans l'utilisation de diverses solutions de réplication que vous seriez en mesure de basculer vers l'autre serveur sans perte de données. Ou dans une situation maître-maître que vous pourriez savoir dans un délai raisonnable si l'une des bases de données est tombée en désynchronisation.Vérification de la cohérence des données entre deux bases de données postgresql
Existe-t-il des outils pour cela, ou les gens dépendent-ils généralement du système de réplication lui-même pour prévenir les incohérences? Je suis actuellement le plus familier avec l'expédition postgresql WAL dans une configuration maître-veille, mais je considère une configuration maître-maître avec quelque chose comme PgPool. Cependant, comme cette solution est un peu moins directement liée à PostgreSQL (ma compréhension de base est qu'elle fournit la connexion qu'une application utiliserait, interceptant ainsi les diverses instructions SQL, et les enverrait ensuite à tous les serveurs de son pool) , ça m'a fait penser à vérifier la cohérence des données.
Exigences spécifiques:
Je ne parle pas de la structure juste table. Je voudrais savoir que les données d'enregistrement sont les mêmes, afin que je sache si les enregistrements ont été corrompus ou manqués (dans ce cas, je vais réinitialiser la mauvaise base de données avec une sauvegarde récente + fichiers WAL avant de le ramener dans le pool)
Les bases de données sont de l'ordre de 30-50 Go. Je doute que les requêtes SELECT brutes fonctionneraient très bien.
Je ne vois pas le besoin de vérifier en temps réel (bien que ce serait, bien sûr, agréable). Horaire ou même quotidien serait mieux que rien.
La vérification au niveau du bloc ne fonctionnerait pas. Ce serait deux bases de données avec un stockage indépendant.
Ou ce type de vérification n'est-il tout simplement pas réaliste?
première pensée qui vient à l'esprit qui est la base de données agnostique est de hachage des lignes des deux côtés et savoir comment comparer les valeurs de hachage pour chaque ligne de db1 db2. La charge initiale de ce serait lente, mais si vous l'avez fait progressivement, ce n'est peut-être pas si mal. – Kuberchaun
Voici un lien d'intérêt pour prolonger mon précédent commentaire. http: // stackoverflow.com/questions/9607063/checksum-champ-dans-postgresql-à-comparaison de contenu – Kuberchaun