

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
<a name="PostgreSQL.Procedural.Importing.EC2"></a>

Si vous possédez des données dans 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 suivre ce processus. 

1. Créez un fichier contenant les données à charger à l'aide de pg\$1dump

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

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

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

Les sections suivantes fournissent plus de détails sur chacune des étapes indiquées ci-dessus.

## Étape 1 : Créer un fichier contenant les données à charger à l'aide de pg\$1dump
<a name="PostgreSQL.Procedural.Importing.EC2.Step1"></a>

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
<a name="PostgreSQL.Procedural.Importing.EC2.Step2"></a>

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
<a name="PostgreSQL.Procedural.Importing.EC2.Step3"></a>

Vous pouvez utiliser la même connexion que vous avez utilisée pour exécuter la commande pg\$1dump 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 Linux, macOS ou Unix :

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

Pour 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
<a name="PostgreSQL.Procedural.Importing.EC2.Step4"></a>

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 pour Amazon RDS](USER_CreateSnapshot.md).