Identifier les options d’outil de migration
Il existe de nombreuses options disponibles pour effectuer une migration d’un serveur PostgreSQL vers un Serveur flexible Azure Database pour PostgreSQL. Il existe des outils PostgreSQL natifs tels que pg_dump, pgadmin et pg_restore. Il existe des services cloud Microsoft Azure comme Database Migration Service et l’option de migration dans Azure Database pour PostgresSQL - Serveur flexible, qui peuvent automatiser en grande partie le processus de transfert de données global de la source vers la cible.
Serveur flexible Azure Database pour PostgreSQL - Migration
Dans le service Serveur flexible Azure Database pour PostgreSQL, il existe une fonctionnalité native permettant de prendre en charge la migration des bases de données d’autres instances PostgreSQL vers le service basé sur Azure. Cette option est destinée à la migration hors connexion des bases de données de la source vers la cible. Pour utiliser cette option, nous devons utiliser les outils pg_dumpall et psql décrits précédemment pour migrer les bases de données objets au niveau du serveur qui migrent vers le serveur flexible.
Cette fonctionnalité est conçue avec des instances PostgreSQL externes en tant que source et Serveur flexible sur lequel le projet de migration a été créé en tant que cible. Essentiellement pour extraire des données dans le serveur flexible. Les avantages de l’utilisation de ce service sur l’exécution d’un processus de sauvegarde et de restauration manuel sont la nature managée de la migration. Une fois configuré, il analyse le processus pour toutes les tables migrées vers le Serveur flexible. Nous pouvons donc facilement voir quand le basculement au niveau de l’application peut être effectué.
Projets de migration
Une fois la connectivité triée, il nous suffit de sélectionner la base de données ou les bases de données que nous voulons migrer vers le nouveau serveur. Dans la capture d’écran suivante, notez que s’il existe plusieurs bases de données qui sauvegardent plusieurs services faisant partie d’un système plus grand, nous pouvons choisir de les migrer en tant que groupe plutôt qu’une à la fois. Ce regroupement de bases de données peut vraiment aider à accélérer les migrations, mais aussi à maintenir la cohérence logique pendant les activités de migration.
Lorsque nous commençons le processus de validation et de migration, nous pouvons examiner la progression globale du processus en utilisant le tableau de bord du projet. Ce tableau de bord nous montre que les bases de données sont validées, puis qu’elles sont migrées vers le nouveau serveur.
Ces informations seront conservées après la migration, ce qui nous permettra de suivre la progression globale. Ces informations fournissent également toute preuve nécessaire pour les processus de contrôle des modifications concernant la réussite et la durée de tout travail entrepris.
Outils PostgreSQL
Ici, nous explorons les principaux outils qui peuvent être utilisés pour migrer des données d’un serveur PostgreSQL vers un Serveur flexible Azure Database pour PostgreSQL.
pgcopydb
Pgcopydb est un projet open source qui peut automatiser le processus de copie d’une base de données entre des serveurs PostgreSQL. Il existe plusieurs avantages à utiliser pgcopydb par rapport aux outils natifs fournis lors de l’installation de PostgreSQL, notamment :
- Supprimer le besoin de fichiers intermédiaires utilisant pg_backup et de pg_restore.
- Créer une concurrence d’index pour paralléliser la création d’index sur des tables en utilisant la fonctionnalité synchronize__seqscans dans PostgreSQL.
- Copier les tables multithreads vers les données de partition et transférer les tables plus volumineuses en parallèle.
- Capture des changements de données pour la synchronisation des données afin de réduire le besoin de fenêtres de temps d’arrêt prolongées.
Il existe deux options principales dans pgcopydb qui peuvent être utilisées pour la migration de base de données et de données d’un serveur source vers une cible. Ces options sont Clone et Copy.
pgcopydb clone
Clone est l’option principale permettant de copier une base de données entière d’un serveur source vers une cible. Cette commande dispose de plusieurs commutateurs qui nous permettent de configurer une opération de clonage de base, jusqu’à l’automatisation de la configuration de la capture de données modifiées pour synchroniser les données afin de réduire le temps d’arrêt lié à la migration. Nous pouvons également spécifier des options permettant de paralléliser le transfert de données par table et des options de transfert parallèle pour les tables, les index et les objets volumineux.
pgcopydb copy
Copy est une option qui permet une plus grande granularité de contrôle lorsqu’il s’agit de migrer la base de données ou des parties de celle-ci. Nous pouvons utiliser cette option de commande pour choisir les schémas, tables ou rôles, entre autres, à transférer d’une base de données de serveur source vers le serveur et la base de données cibles. Cette commande est utile dans les scénarios où une base de données volumineuse est décomposée en plus petites dans le cadre d’une activité de migration de modernisation des applications. Une autre activité de migration de consolidation nous permet de migrer le contenu d’une base de données dans des schémas au sein d’une autre.
Ces options ne sont que quelques-unes des façons dont pgcopydb peut nous aider à améliorer le processus de migration des bases de données vers un Serveur flexible Azure Database pour PostgreSQL. Ce processus offre un moyen de migration qui minimise les risques et optimise nos chances de réussite.
pgAdmin
pgAdmin est un outil de gestion largement utilisé qui peut être utilisé pour interagir avec les bases de données PostgreSQL. Cet outil permet la création et l’exécution de scripts pgsql. L’outil contient un tableau d’outils d’interface graphique utiles, qui peuvent être utilisés pour configurer, sauvegarder et restaurer des bases de données PostgreSQL. En règle générale, installez pgAdmin sur les stations de travail administratives. Cet outil permet de s’inscrire et de se connecter à plusieurs serveurs PostgreSQL, ce qui en fait un élément clé de notre ensemble d’outils de migration.
pg_dump, pg_restore et psql
pg_dump est un outil de ligne de commande installé en même temps qu’une instance PostgreSQL et qui peut être installé selon les besoins sur une station de travail administrative. Il permet de créer des sauvegardes de base de données cohérentes depuis PostgreSQL, même en cas de charge de travail simultanée. Il fonctionne avec les bases de données individuelles et nous permet de sauvegarder une base de données entière ou des parties de celle-ci.
Si nous utilisons pg_dump pour exporter des objets de schéma, nous pouvons utiliser psql pour exécuter le fichier .sql résultant sur la base de données cible pour créer les objets. Après cette étape, nous pouvons examiner les façons de déplacer les données du système source vers le système cible. Les commandes à utiliser pour exporter un schéma de base de données depuis une base de données et le créer dans une autre peuvent être consultées dans l’exemple suivant.
pg_dump -O --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks --schema-only > adventureWorks.sql
psql --host=MyFlexibleServer --username=demo --dbname=AdventureWorks < adventureWorks.sql
Si nous créons une copie de sauvegarde complète de la base de données source, nous cherchons à utiliser pg_restore pour lire le fichier résultant et restaurer la base de données sur l’instance PostgreSQL cible. Il existe plusieurs facteurs déterminants pour le temps que ces activités prennent lors de l’exécution d’une sauvegarde et d’une restauration vers l’image mémoire. Notamment la taille de la base de données, les performances du sous-système de stockage, la bande passante réseau et la latence entre les composants de traitement.
L’exemple suivant montre comment créer une image mémoire de base de données dans un fichier personnalisé, puis la restaurer sur un autre serveur.
pg_dump -Fc --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks > db.dump
pg_restore -Fc --host=MyServerName --port=5432 --create --username=adminuser --dbname=AdventureWorks db.dump
pg_dumpall
Alors que pg_dump est utilisé pour créer une image mémoire d’une base de données unique, pg_dumpall est utilisé pour créer une image mémoire de toutes les bases de données dans un fichier de script unique que psql lit dans une nouvelle instance de PostgreSQL.
En outre, pg_dumpall peut être utilisé pour générer des fichiers de script pour les objets de niveau serveur globaux, comme les rôles dont les bases de données peuvent dépendre lors de la migration entre serveurs.