Identifier les options de l’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 tels que 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 à la cible.
Serveur flexible de base de données Azure 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 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 d’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 vidage et de restauration manuels sont la nature managée de la migration. Une fois configuré, il surveille 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 qui font partie d’un système plus grand, nous pouvons choisir de les migrer en tant que groupe plutôt qu’un à la fois. Ce regroupement de bases de données peut vraiment aider non seulement à accélérer les migrations, mais également à 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 à l’aide du 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. L’information fournit également toute preuve nécessaire pour modifier les processus de contrôle sur 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 les serveurs PostgreSQL. Il existe plusieurs avantages à l’utilisation de pgcopydb sur les outils natifs fournis lors de l’installation de PostgreSQL, notamment.
- Suppression du besoin de fichiers intermédiaires à l’aide de pg_backup et de pg_restore.
- Activez la création concurrente d’index pour paralléliser la création d’index sur des tables en utilisant la fonction synchronisée des séquences de balayage (seqscans) dans PostgreSQL.
- Copie multithreadée de tables pour partitionner les données et transférer en parallèle des tables plus volumineuses.
- Capture des modifications de données pour la synchronisation des données afin de réduire le besoin de périodes d'indisponibilité 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 la cible. Ces options sont clonage et copie.
clone pgcopydb
Le clone est l’option principale permettant de copier une base de données entière d’un serveur source vers une cible. Cette commande a plusieurs commutateurs disponibles qui nous permettent de configurer une opération de clonage de base, via 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 de la migration. Nous pouvons également spécifier les options permettant de paralléliser le transfert de données par table et les options de transfert parallèle pour les tables, les index et les objets volumineux.
pgcopydb copy
La copie est une option qui permet une plus grande granularité de contrôle lorsqu’il s’agit de migrer la base de données ou les parties de celle-ci. Nous pouvons utiliser cette option de commande pour choisir les schémas, tables, rôles, etc. à transférer d’une base de données de serveur source vers le serveur cible et la base de données. Cette commande est utile dans les scénarios où une base de données volumineuse est décomposée en 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’un autre.
Ces options sont 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 réduit 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 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 des stations de travail administratives. Cet outil permet d’inscrire et de se connecter à plusieurs serveurs PostgreSQL, ce qui en fait une partie clé de notre ensemble d’outils de migration.
pg_dump, pg_restore et psql
pg_dump est un outil en ligne de commande installé en même temps qu’une instance PostgreSQL et 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 à partir de PostgreSQL même en cas de charge de travail simultanée. Il fonctionne avec des bases de données individuelles et nous permet de sauvegarder une base de données entière ou des parties de celle-ci.
Si vous utilisez 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 de la source vers le système cible. Les commandes à utiliser pour exporter un schéma de base de données à partir d’une base de données et la créer dans une autre peuvent être vues 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 un vidage complet 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 la durée que prennent ces activités lors de l’exécution d’une sauvegarde et d’une restauration vers un fichier de vidage. Notamment la taille de la base de données, les performances du sous-système de stockage et la bande passante réseau et la latence entre les composants de traitement.
L’exemple suivant montre comment créer un vidage de base de données dans un fichier personnalisé, puis le 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 vider une base de données unique, pg_dumpall est utilisé pour vider 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 pouvez être utilisé pour générer des fichiers de script pour des objets de niveau serveur globaux, tels que les rôles dont les bases de données peuvent dépendre lors de la migration entre les serveurs.