Prérequis
- Accès à votre base de données PostgreSQL source.
- Une instance ClickHouse Managed Postgres vers laquelle vous souhaitez migrer vos données.
- PeerDB installé sur une machine. Vous pouvez suivre les instructions d’installation dans le dépôt GitHub de PeerDB. Il vous suffit de cloner le dépôt et d’exécuter
docker-compose up. Pour ce guide, nous utiliserons PeerDB UI, qui sera accessible à l’adressehttp://localhost:3000une fois PeerDB démarré.
Points à prendre en compte avant la migration
- Objets de base de données : PeerDB créera automatiquement des tables dans la base de données cible à partir du schéma source. Cependant, certains objets de base de données, comme les index, les contraintes et les triggers, ne seront pas migrés automatiquement. Vous devrez recréer manuellement ces objets dans la base de données cible après la migration.
- Modifications DDL : Si vous activez la réplication continue, PeerDB maintiendra la base de données cible synchronisée avec la source pour les opérations DML (INSERT, UPDATE, DELETE) et propagera les opérations ADD COLUMN. Cependant, les autres modifications DDL (comme DROP COLUMN et ALTER COLUMN) ne sont pas propagées automatiquement. Pour en savoir plus sur la prise en charge des modifications de schéma, consultez ce guide
- Connectivité réseau : Assurez-vous que les bases de données source et cible sont toutes deux accessibles depuis la machine sur laquelle PeerDB s’exécute. Vous devrez peut-être configurer des règles de pare-feu ou des paramètres de groupe de sécurité pour autoriser la connectivité.
Créer des peers
+ New peer.
Création du peer source
Create peer pour enregistrer le peer.
Création du peer cible
Create peer pour enregistrer le peer cible.
Vous devriez maintenant voir les peers source et cible dans la section “Peers”.
Obtenir le dump du schéma de la base de données source
pg_dump pour créer un export contenant uniquement le schéma de votre base de données PostgreSQL source :
Installation de pg_dump
Installation de pg_dump
Ubuntu :Mettez à jour les listes de paquets :Installez le client PostgreSQL :macOS :Méthode 1 : avec Homebrew (recommandé)Installez Homebrew si vous ne l’avez pas :Installez PostgreSQL :Vérifiez l’installation :
Supprimer les contraintes d’unicité et les index du dump du schéma
Appliquer le dump du schéma à la base de données cible
psql et en exécutant le fichier de dump du schéma :
session_replication_role sur replica :
Créer un mirror
+ New mirror.
- Donnez à votre mirror un nom décrivant la migration.
- Sélectionnez les peers source et cible que vous avez créés précédemment dans les menus déroulants.
- Assurez-vous que :
- Soft delete est sur OFF.
- Développez
Advanced settings. Assurez-vous que le système de types Postgres est activé et que les colonnes PeerDB sont désactivées.
- Sélectionnez les tables que vous souhaitez migrer. Vous pouvez choisir des tables spécifiques ou sélectionner toutes les tables de la base de données source.
Sélection des tablesAssurez-vous que les noms des tables de destination sont identiques à ceux des tables source dans la base de données cible, car nous avons migré le schéma tel quel à l’étape précédente.
- Une fois les paramètres du mirror configurés, cliquez sur le bouton
Create mirror.
Attendre le chargement initial
Suivi du chargement initial et de la réplication
- Nous exécutons d’abord une requête COUNT pour estimer le nombre de lignes dans chaque table.
- Ensuite, nous exécutons une requête de partitionnement avec NTILE pour découper les grandes tables en fragments plus petits afin d’optimiser le transfert des données.
- Nous exécutons ensuite des commandes FETCH pour récupérer les données depuis la base de données source, puis PeerDB les synchronise avec la base de données cible.
Tâches post-migration
Ces étapes peuvent varier selon votre cas d’usage et les exigences de votre application. L’essentiel est de garantir la cohérence des données, de minimiser les interruptions de service et de valider l’intégrité des données migrées avant de basculer complètement vers le nouveau système.
- Effectuez les vérifications de validation avant le basculement
- Arrêter les écritures sur le système source
- Confirmez que la réplication est entièrement à jour
- Recréez et activez les contraintes, les index et les déclencheurs
replica :
- Réinitialiser les séquences des tables cibles
- Basculer le trafic applicatif
- Dirigez le trafic de lecture vers ClickHouse Managed Postgres.
- Dirigez le trafic d’écriture vers ClickHouse Managed Postgres.
- Surveillez les erreurs de l’application, les violations de contraintes et la santé de la base de données.
- Nettoyer les ressources
Slots de réplicationSi vous avez activé la réplication continue, PeerDB créera un slot de réplication sur la base de données PostgreSQL source. Veillez à supprimer manuellement le slot de réplication de la base de données source une fois la migration terminée afin d’éviter une consommation inutile de ressources.
Références
- Documentation de ClickHouse Managed Postgres
- Guide PeerDB pour la création d’un CDC
- FAQ sur Postgres ClickPipe (également valable pour PeerDB)