pg_dump et pg_restore.
Prérequis
- Accès à votre base de données PostgreSQL source.
pg_dumpetpg_restoreinstallés sur votre machine locale. Ils sont généralement fournis avec PostgreSQL. Dans le cas contraire, vous pouvez les télécharger depuis le site officiel de PostgreSQL.
La mise en place
- Deux tables :
eventsetusers.eventscontient un million de lignes, etusersen contient mille. eventsa un index.- Une vue définie sur la table
events. - Deux séquences
Créer un dump de la base de données source
pg_dump pour générer un fichier dump des objets ci-dessus. C’est une commande simple :
- Remplacez
<user>,<password>,<host>,<port>et<database>par les identifiants de connexion de votre base de données source. La plupart des fournisseurs Postgres vous fournissent une chaîne de connexion que vous pouvez utiliser directement. --format directoryindique que nous voulons un dump au format répertoire, ce qui convient àpg_restore.-f rds-dumpindique le répertoire de sortie des fichiers du dump. Notez que ce répertoire sera créé automatiquement et ne doit pas exister au préalable.- Vous pouvez également paralléliser le processus de dump en ajoutant l’option
--jobs, suivie du nombre de tâches parallèles que vous souhaitez exécuter. Pour plus de détails, consultez la documentation de pg_dump.
Migrer le dump vers ClickHouse Managed Postgres
pg_restore.
Créez une instance ClickHouse Managed Postgres
Restaurer le dump
pg_restore pour restaurer le dump dans notre instance ClickHouse Managed Postgres :
--verboseaffiche une sortie détaillée pendant le processus de restauration.- Vous pouvez également utiliser l’option
--jobsici pour paralléliser le processus de restauration. Pour plus de détails, consultez la documentation pg_restore.
Vérifier la migration
Points à prendre en compte
- Assurez-vous que les versions de PostgreSQL des bases de données source et cible sont compatibles. L’utilisation d’une version de pg_dump plus ancienne que le serveur source peut entraîner l’absence de certaines fonctionnalités ou des problèmes de restauration. Idéalement, utilisez une version majeure de pg_dump identique à celle de la base de données source, ou plus récente.
- Les bases de données volumineuses peuvent prendre beaucoup de temps à exporter et à restaurer.
Anticipez-le afin de réduire au minimum le temps d’arrêt, et envisagez d’utiliser des exports/restaurations parallèles (
--jobs) lorsque cette option est prise en charge. - Notez que pg_dump / pg_restore ne répliquent pas tous les objets liés à la base de données ni l’intégralité de l’état d’exécution. Cela inclut les rôles et les appartenances à des rôles, les slots de réplication, la configuration au niveau du serveur (par ex. postgresql.conf, pg_hba.conf), les tablespaces et les statistiques d’exécution.