Transport de bases de données Postgre entre de bases de données - Amazon Relational Database Service

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.

Transport de bases de données Postgre entre de bases de données

En utilisant les bases de données SQL transportables Postgre pour AmazonRDS, vous pouvez déplacer une base de données Postgre entre deux instances SQL de base de données. Il s'agit d'un moyen très rapide de migrer de grandes bases de données entre différentes instances de base de données. Pour utiliser cette approche, vos instances de base de données doivent toutes deux exécuter la même version majeure de PostgreSQL.

Cette fonctionnalité nécessite que vous installiez l'extension pg_transport sur les instances de base de données source et de destination. L'extension pg_transport fournit un mécanisme de transport physique qui déplace les fichiers de base de données avec un traitement minimal. Ce mécanisme déplace les données beaucoup plus rapidement que les processus traditionnels de vidage et de chargement, avec moins de temps d'arrêt.

Note

Les bases de données SQL transportables Postgre sont disponibles RDS pour Postgre SQL 11.5 et versions ultérieures, et RDS pour Postgre SQL version 10.10 et supérieures.

Pour transporter une instance de SQL base de données Postgre d'une RDS instance de SQL base de données Postgre à une autre, vous devez d'abord configurer les instances source et de destination comme indiqué dans. Configuration d'instances de base de données pour leur transport Vous pouvez ensuite transporter la base de données à l'aide de la fonction décrite dans Transporter une base de données Postgre SQL.

Que se passe-t-il durant le transport d'une base de données ?

La fonctionnalité de bases de données SQL transportables Postgre utilise un modèle d'extraction pour importer la base de données de l'instance de base de données source vers la destination. La fonction transport.import_from_server crée la base de données en transit sur l'instance de base de données de destination. La base de données en transit est inaccessible sur l'instance de base de données de destination pendant toute la durée du transport.

Lorsque le transport commence, toutes les sessions en cours sur la base de données source cessent. Les bases de données autres que la base de données source sur l'instance de base de données source ne sont pas affectées par le transport.

La base de données source est placée dans un mode lecture seule spécial. Lorsqu'elle est dans ce mode, vous pouvez vous connecter à la base de données source et exécuter des requêtes de lecture seule. Par contre, les requêtes d'écriture et certains autres types de commandes sont bloqués. Seule la base de données source qui fait l'objet du transport est affectée par ces restrictions.

Durant le transport, vous ne pouvez pas restaurer l'instance de base de données de destination à un instant dans le passé. Cela est dû au fait que le transport n'est pas transactionnel et n'utilise pas le journal d'SQLécriture anticipée de Postgre pour enregistrer les modifications. Si les sauvegardes automatiques sont activées pour l'instance de base de données de destination, une sauvegarde est automatiquement effectuée une fois le transport terminé. Point-in-timeles restaurations sont disponibles pendant un certain temps après la fin de la sauvegarde.

En cas d'échec du transport, l'extension pg_transport tente d'annuler toutes les modifications apportées aux instances de base de données source et de destination. Cela inclut la suppression de la base de données partiellement transportée sur la destination. Selon le type de défaillance, la base de données source peut continuer à rejeter les requêtes d'écriture. Si tel est le cas, utilisez la commande suivante pour autoriser les requêtes d'écriture.

ALTER DATABASE db-name SET default_transaction_read_only = false;

Limitations liées à l'utilisation des bases de données SQL transportables Postgre

Les bases de données transportables présentent les limites suivantes :

  • Réplicas en lecture – Vous ne pouvez pas utiliser des bases de données transportables sur des réplicas en lecture ou des instances parentes de réplicas en lecture.

  • Types de colonne non pris en charge – Vous ne pouvez pas utiliser les types de données reg dans des tables de bases de données que vous souhaitez transporter avec cette méthode. Ces types dépendent de l'objet du catalogue système IDs (OIDs), qui change souvent pendant le transport.

  • Espaces de tables – Tous les objets de base de données sources doivent se trouver dans l'espace de table pg_default par défaut .

  • Compatibilité — Les instances de base de données source et de destination doivent exécuter la même version majeure de PostgreSQL.

  • Extensions : l'instance de base de données source ne peut avoir que pg_transport installé.

  • Rôles et ACLs — Les privilèges d'accès et les informations de propriété de la base de données source ne sont pas transférés vers la base de données de destination. Tous les objets de base de données sont créés par l'utilisateur de destination locale du transport et sont sa propriété.

  • Transports simultanés : une seule instance de base de données peut prendre en charge jusqu'à 32 transports simultanés, y compris les importations et les exportations, si les processus de travail ont été correctement configurés.

  • RDSpour les SQL instances de base de données Postgre uniquement — Les bases de données SQL transportables Postgre ne sont prises en charge que RDS pour les instances de base de données PostgreSQL. Vous ne pouvez pas l'utiliser avec des bases de données sur site ou des bases de données exécutées sur AmazonEC2.