0Pricing
SQL Academy · Leçon

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 :

  1. Construire le cluster PG16
  2. Répliquer logiquement de PG14 vers PG16
  3. Basculer les applications lorsque PG16 a rattrapé son retard
  4. 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 :

  1. Publier uniquement les tables nécessaires à un nouveau service
  2. S’y abonner depuis la nouvelle base de données
  3. 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é :

  1. Publication sur la source, filtrée sur un seul locataire
  2. Abonnement depuis la destination
  3. Basculer l’application vers le nouveau fragment
  4. 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

  1. Réplication en continu et WAL
  2. Réplication logique pour le partitionnement horizontal
  3. Basculement et élection du leader (Patroni, Stolon)
  4. Répliques de lecture et routage des connexions
← Retour à SQL Academy