Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Transportez des SQL bases de données Postgre entre deux instances Amazon RDS DB à l'aide de pg_transport
Créé par Raunak Rishabh (AWS) et Jitender Kumar () AWS
Récapitulatif
Ce modèle décrit les étapes de migration de bases de données extrêmement volumineuses entre deux instances de base de données Amazon Relational Database Service (RDSAmazon) pour SQL Postgre à l'aide de l'extension pg_transport. Cette extension offre un mécanisme physique de transport permettant de déplacer chaque base de données. En diffusant les fichiers de base de données avec un traitement minimal, il fournit une méthode extrêmement rapide pour migrer des bases de données volumineuses entre des instances de base de données avec un temps d'arrêt minimal. Cette extension utilise un modèle d'extraction dans lequel l'instance de base de données cible importe la base de données depuis l'instance de base de données source.
Conditions préalables et limitations
Prérequis
Les deux instances de base de données doivent exécuter la même version majeure de PostgreSQL.
La base de données ne doit pas exister sur la cible. Dans le cas contraire, le transport échoue.
Aucune extension autre que pg_transport ne doit être activée dans la base de données source.
Tous les objets de la base de données source doivent se trouver dans le tablespace pg_default par défaut.
Le groupe de sécurité de l'instance de base de données source doit autoriser le trafic provenant de l'instance de base de données cible.
Installez un SQL client Postgre tel que psql
ou PgAdmin pour travailler avec l'instance de base de données Amazon RDS PostgreSQL. Vous pouvez installer le client dans votre système local ou utiliser une instance Amazon Elastic Compute Cloud (AmazonEC2). Dans ce modèle, nous utilisons psql sur une EC2 instance.
Limites
Vous ne pouvez pas transporter de bases de données entre différentes versions majeures d'Amazon RDS pour PostgreSQL.
Les privilèges d'accès et la propriété de la base de données source ne sont pas transférés vers la base de données cible.
Vous ne pouvez pas transporter de bases de données sur des répliques en lecture ou sur des instances parentes de répliques en lecture.
Vous ne pouvez pas utiliser les types de données reg dans les tables de base de données que vous prévoyez de transporter avec cette méthode.
Vous pouvez exécuter jusqu'à 32 transports au total (y compris les importations et les exportations) en même temps sur une instance de base de données.
Vous ne pouvez pas renommer ou inclure/exclure des tables. Tout est migré tel quel.
Précaution
Effectuez des sauvegardes avant de supprimer l'extension, car la suppression de l'extension supprime également les objets dépendants et certaines données essentielles au fonctionnement de la base de données.
Tenez compte de la classe d'instance et des processus exécutés sur d'autres bases de données de l'instance source lorsque vous déterminez le nombre de travailleurs et les
work_mem
valeurs de pg_transport.Lorsque le transport démarre, toutes les connexions à la base de données source sont interrompues et la base de données passe en mode lecture seule.
Note
Lorsque le transport est exécuté sur une base de données, il n'affecte pas les autres bases de données du même serveur.
Versions du produit
Amazon RDS pour Postgre SQL 10.10 et versions ultérieures, et Amazon RDS pour Postgre SQL 11.5 et versions ultérieures. Pour obtenir les informations les plus récentes sur les versions, consultez Transporter des SQL bases de données Postgre entre des instances de base de données dans la RDS documentation Amazon.
Architecture
![Transport de SQL bases de données Postgre entre des instances Amazon RDS DB](images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)
Outils
pg_transport fournit un mécanisme de transport physique pour déplacer chaque base de données. En diffusant les fichiers de base de données avec un minimum de traitement, le transport physique déplace les données beaucoup plus rapidement que les processus traditionnels de vidage et de chargement et nécessite un minimum de temps d'arrêt. Les bases de données SQL transportables Postgre utilisent un modèle d'extraction dans lequel l'instance de base de données de destination importe la base de données depuis l'instance de base de données source. Vous installez cette extension sur vos instances de base de données lorsque vous préparez les environnements source et cible, comme expliqué dans ce modèle.
psql
vous permet de vous connecter à vos instances de SQL base de données Postgre et de les utiliser. Pour installer psql sur votre système, consultez la page des SQLtéléchargements de Postgre .
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez un groupe de paramètres pour le système cible. | Spécifiez un nom de groupe qui l'identifie en tant que groupe de paramètres cible ; par exemple, | DBA |
Modifiez les paramètres du groupe de paramètres. | Définissez les paramètres suivants :
Pour plus d'informations sur ces paramètres, consultez la RDSdocumentation Amazon. | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Créez un groupe de paramètres pour le système source. | Spécifiez un nom de groupe qui l'identifie en tant que groupe de paramètres source ; par exemple, | DBA |
Modifiez les paramètres du groupe de paramètres. | Définissez les paramètres suivants :
Pour plus d'informations sur ces paramètres, consultez la RDSdocumentation Amazon. | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Créez une nouvelle SQL instance de base de données Amazon RDS for Postgre vers laquelle transporter votre base de données source. | Déterminez la classe d'instance et la SQL version de Postgre en fonction des besoins de votre entreprise. | DBA, Administrateur système, Architecte de base de données |
Modifiez le groupe de sécurité de la cible pour autoriser les connexions sur le port de l'instance de base de données depuis l'EC2instance. | Par défaut, le port de l'SQLinstance Postgre est 5432. Si vous utilisez un autre port, les connexions à ce port doivent être ouvertes pour l'EC2instance. | DBA, Administrateur de systèmes |
Modifiez l'instance et assignez le nouveau groupe de paramètres cible. | Par exemple, | DBA |
Redémarrez l'RDSinstance de base de données Amazon cible. | Les paramètres | DBA, Administrateur de systèmes |
Connectez-vous à la base de données depuis l'EC2instance à l'aide de psql. | Utilisez la commande :
| DBA |
Créez l'extension pg_transport. | Exécutez la requête suivante en tant qu'utilisateur ayant le
| DBA |
Tâche | Description | Compétences requises |
---|---|---|
Modifiez le groupe de sécurité de la source pour autoriser les connexions sur le port de l'instance de base de données depuis l'EC2instance Amazon et l'instance de base de données cible | Par défaut, le port de l'SQLinstance Postgre est 5432. Si vous utilisez un autre port, les connexions à ce port doivent être ouvertes pour l'EC2instance. | DBA, Administrateur de systèmes |
Modifiez l'instance et assignez le nouveau groupe de paramètres source. | Par exemple, | DBA |
Redémarrez l'RDSinstance de base de données Amazon source. | Les paramètres | DBA |
Connectez-vous à la base de données depuis l'EC2instance à l'aide de psql. | Utilisez la commande :
| DBA |
Créez l'extension pg_transport et supprimez toutes les autres extensions des bases de données à transporter. | Le transport échouera si des extensions autres que pg_transport sont installées sur la base de données source. Cette commande doit être exécutée par un utilisateur doté du | DBA |
Tâche | Description | Compétences requises |
---|---|---|
Effectuez un essai à sec. | Utilisez la
Le dernier paramètre de cette fonction (défini sur Cette fonction affiche toutes les erreurs que vous pourriez rencontrer lors de l'exécution du transport principal. Résolvez les erreurs avant d'exécuter le transport principal. | DBA |
Si le dry run est réussi, lancez le transport de la base de données. | Exécutez la
Le dernier paramètre de cette fonction (défini sur | DBA |
Effectuez les étapes après le transport. | Une fois le transport de la base de données terminé :
| DBA |