Réplication logique pour le partitionnement horizontal
Utilisez la réplication logique PUBLICATION/SUBSCRIPTION pour déplacer des tables entre des grappes et prendre en charge les mises à niveau de version majeure.
Réplication logique pour le partitionnement horizontal est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Réplication logique ou physique
La réplication physique réplique les BYTES du WAL : tout le cluster, avec la même version. La réplication logique réplique les ROWS : des tables sélectionnées, éventuellement entre différentes versions de PG :
- S’abonner à des tables précises
- Répliquer de PG 14 → PG 16 (pour les mises à niveau !)
- Réplication bidirectionnelle ou multi-maître, avec précaution
- Autoriser des schémas différents
Configuration : éditeur
Déclarez le serveur primaire comme éditeur :
-- postgresql.conf
wal_level = logical
-- Create a publication:
CREATE PUBLICATION pub_orders FOR TABLE orders, order_items;
-- Or all tables in the database:
CREATE PUBLICATION pub_all FOR ALL TABLES;Configuration : abonné
Dans la base de données cible :
CREATE SUBSCRIPTION sub_orders
CONNECTION 'host=primary port=5432 user=repl dbname=mydb'
PUBLICATION pub_orders;Synchronisation initiale
L’abonnement effectue une copie initiale de toutes les tables correspondantes, puis transmet les modifications. Le schéma cible doit correspondre à celui de la source.
Cas d’utilisation : mise à niveau majeure
La réplication logique est la méthode moderne pour mettre à niveau PostgreSQL avec un temps d’interruption minimal :
- Construire le cluster PG16
- Répliquer logiquement de PG14 vers PG16
- Basculer les applications lorsque PG16 a rattrapé son retard
- Arrêter PG14
Cas d’utilisation : scinder une base de données
Pour diviser une base de données géante en bases plus petites :
- Publier uniquement les tables nécessaires à un nouveau service
- S’y abonner depuis la nouvelle base de données
- Transférer les écritures une fois le rattrapage terminé
Cas d’utilisation : réplicas hétérogènes
Répliquer vers un réplica de lecture doté d’index différents, ou vers une base PostgreSQL d’entrepôt de données contenant des colonnes supplémentaires pour les rapports.
Conflits
La réplication logique ne résout pas automatiquement les conflits. Si la même ligne est modifiée des deux côtés, l’abonné s’arrête avec une erreur. Évitez cela en :
- Écrivant d’un seul côté
- Utilisant REPLICA IDENTITY FULL pour obtenir de meilleurs diagnostics
- Résolvant manuellement les conflits, puis en redémarrant l’abonnement
Modifications du schéma
DDL n’est PAS répliqué. Appliquez manuellement les modifications du schéma des deux côtés, généralement d’abord sur l’abonné, puis sur l’éditeur. Vous pouvez aussi utiliser l’extension pglogical, qui peut répliquer DDL.
Réplication partielle
Les versions modernes de PG autorisent des filtres de lignes et des listes de colonnes pour chaque publication :
CREATE PUBLICATION us_only FOR TABLE customers
WHERE (country = 'US');
CREATE PUBLICATION compact FOR TABLE users (id, email);Partitionnement horizontal avec réplication logique
Déplacez des locataires vers un fragment dédié :
- Publication sur la source, filtrée sur un seul locataire
- Abonnement depuis la destination
- Basculer l’application vers le nouveau fragment
- Supprimer les données du locataire sur la source
Performances et retard
La réplication logique est principalement mono-thread par abonnement. Les sources à gros volume peuvent tirer parti de plusieurs publications et abonnements, ou d’outils tiers comme pglogical et Debezium.
Récapitulatif
La réplication logique permet la diffusion au niveau des lignes.
- Entre différentes versions et sur une partie des tables
- Mises à niveau majeures avec un temps d’interruption minimal
- La résolution des conflits relève de YOUR responsabilité
- DDL n’est pas répliqué
Vérification rapide
Vous devez effectuer une mise à niveau de PostgreSQL 14 vers 16 avec un temps d’interruption minimal. Quelle réplication utiliser ?
Questions Fréquemment Posées
La leçon « Réplication logique pour le partitionnement horizontal » est-elle gratuite ?
Oui — le texte complet de « Réplication logique pour le partitionnement horizontal » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Réplication logique pour le partitionnement horizontal » ?
Utilisez la réplication logique PUBLICATION/SUBSCRIPTION pour déplacer des tables entre des grappes et prendre en charge les mises à niveau de version majeure. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Réplication logique pour le partitionnement horizontal » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Réplication en continu et WAL
- Réplication logique pour le partitionnement horizontal
- Basculement et élection du leader (Patroni, Stolon)
- Répliques de lecture et routage des connexions