Importation d'une base de données PostgreSQL à partir d'une instance Amazon EC2 - 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.

Importation d'une base de données PostgreSQL à partir d'une instance Amazon EC2

Si vous possédez des données sur un serveur PostgreSQL sur une instance Amazon EC2 et que vous souhaitez les déplacer vers une instance de base de données PostgreSQL, vous pouvez utiliser le processus suivant. La liste suivante montre les étapes à suivre. Chaque étape est présentée plus en détail dans les sections suivantes.

  1. Créez un fichier contenant les données à charger à l'aide de pg_dump

  2. Créez l'instance de base de données cible

  3. Utilisez psql pour créer la base de données sur l'instance de base de données et pour charger les données

  4. Créez un instantané de base de données de l'instance de base de données

Étape 1 : Créer un fichier contenant les données à charger à l'aide de pg_dump

L'utilitaire pg_dump utilise la commande COPY pour créer un schéma et un vidage des données d'une base de données PostgreSQL. Le script de vidage généré par pg_dump charge les données dans une base de données dotée du même nom et recrée les tables, les index et les clés étrangères. Vous pouvez utiliser la commande pg_restore et le paramètre -d pour restaurer les données dans une base de données dotée d'un nom différent.

Avant de créer le vidage des données, vous devez interroger les tables à vider pour obtenir le nombre de lignes afin de pouvoir confirmer ce nombre sur l'instance de base de données cible.

La commande suivante crée un fichier de vidage mydb2dump.sql pour une base de données nommée mydb2.

prompt>pg_dump dbname=mydb2 -f mydb2dump.sql

Étape 2 : Créer l'instance de bases de données cible

Créez l'instance de base de données PostgreSQL cible à l'aide soit de la console Amazon RDS, de l'AWS CLI ou de l'API. Créez l'instance avec le paramètre de rétention des sauvegardes défini sur 0 et désactivez le mode multi-AZ. Cela vous permet d'effectuer une importation plus rapide des données. Vous devez créer une base de données sur l'instance avant de pouvoir vider les données. La base de données peut avoir le même nom que celle qui contenait les données vidées. Sinon, vous pouvez créer une base de données avec un autre nom. Dans ce cas, vous pouvez utiliser la commande pg_restore et le paramètre -d pour restaurer les données dans une base de données dotée d'un nouveau nom.

Par exemple, les commandes suivantes permettent de vider, de restaurer et de renommer une base de données.

pg_dump -Fc -v -h [endpoint of instance] -U [master username] [database] > [database].dump createdb [new database name] pg_restore -v -h [endpoint of instance] -U [master username] -d [new database name] [database].dump

Étape 3 : Utiliser psql pour créer la base de données sur l'instance de base de données et charger les données

Vous pouvez utiliser la même connexion que vous avez utilisée pour exécuter la commande pg_dump pour vous connecter à l'instance de base de données cible et recréer la base de données. Grâce à psql, vous pouvez utiliser l'identifiant principal et le mot de passe principal pour créer la base de données sur l'instance de base de données.

L'exemple suivant utilise psql et un fichier de vidage nommé mydb2dump.sql pour créer une base de données appelée mydb2 sur une instance de base de données PostgreSQL nommée mypginstance :

Pour LinuxmacOS, ou Unix :

psql \ -f mydb2dump.sql \ --host mypginstance.555555555555.aws-region.rds.amazonaws.com \ --port 8199 \ --username myawsuser \ --password password \ --dbname mydb2

Dans Windows :

psql ^ -f mydb2dump.sql ^ --host mypginstance.555555555555.aws-region.rds.amazonaws.com ^ --port 8199 ^ --username myawsuser ^ --password password ^ --dbname mydb2
Note

Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

Étape 4 : Créer un instantané de base de données de l'instance de bases de données

Une fois que vous avez vérifié que les données ont été chargées dans votre instance de base de données, nous vous conseillons de créer un instantané de base de données de l'instance de base de données PostgreSQL cible. Les snapshots DB sont des sauvegardes complètes de votre instance de base de données qui peuvent être utilisées pour restaurer l'instance de base de données à un état connu. Un instantané de base de données pris immédiatement après le chargement vous évite de devoir charger les données à nouveau en cas d'incident. Vous pouvez également l'utiliser pour créer de nouvelles instances de base de données. Pour plus d'informations sur la création d'un instantané de base de données, consultez Création d'un instantané de base de données pour une instance de base de données mono-AZ.