

# Importación de una base de datos de PostgreSQL desde una instancia Amazon EC2
<a name="PostgreSQL.Procedural.Importing.EC2"></a>

Si tiene datos en un servidor de PostgreSQL en una instancia de Amazon EC2 y desea moverlos a una instancia de base de datos de PostgreSQL, puede seguir este proceso para migrar los datos. 

1. Use pg\$1dump para crear un archivo que contenga los datos que se van a cargar

1. Cree la instancia de base de datos de destino

1. Use *psql* para crear la base de datos en la instancia de base de datos y cargar los datos

1. Cree una instantánea de base de datos de la instancia de la base de datos

En las siguientes secciones. se proporciona más información sobre cada uno de los pasos mencionados anteriormente.

## Paso 1: cree un archivo utilizando pg\$1dump que contiene los datos que se van a cargar
<a name="PostgreSQL.Procedural.Importing.EC2.Step1"></a>

La utilidad `pg_dump` usa el comando COPY para crear un esquema y un volcado de datos de una base de datos de PostgreSQL. El script de volcado generado por `pg_dump` carga los datos en una base de datos con el mismo nombre y vuelve a crear las tablas, los índices y las claves externas. Puede usar el comando `pg_restore` y el parámetro `-d` para restaurar los datos en una base de datos con un nombre diferente.

Antes de crear el volcado de datos, debe consultar las tablas que se van a volcar para obtener un recuento de filas que le permita confirmar el recuento en la instancia de base de datos de destino.

 El siguiente comando crea un archivo de volcado llamado mydb2dump.sql para una base de datos llamada mydb2.

```
prompt>pg_dump dbname=mydb2 -f mydb2dump.sql 
```

## Paso 2: cree la instancia de base de datos de destino
<a name="PostgreSQL.Procedural.Importing.EC2.Step2"></a>

Cree la instancia de base de datos PostgreSQL de destino con la consola de Amazon RDS, la AWS CLI o la API. Cree la instancia con el ajuste de retención de backup definido en 0 y deshabilite el uso de Multi-AZ. Esto le permitirá acelerar la importación de los datos. Debe crear una instancia de base de datos en la instancia para poder volcar los datos. La base de datos puede tener el mismo nombre que la base de datos que contiene los datos volcados. Si lo prefiere, puede crear una base de datos con un nombre diferente. En este caso, puede usar el comando `pg_restore` y el parámetro `-d` para restaurar los datos en la base de datos que acaba de nombrar.

Por ejemplo, los siguientes comandos se pueden usar para volcar, restaurar y cambiar de nombre una base de datos.

```
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
```

## Paso 3: use psql para crear la base de datos en la instancia de base de datos y cargar los datos
<a name="PostgreSQL.Procedural.Importing.EC2.Step3"></a>

Puede usar la misma conexión que utilizó para ejecutar el comando pg\$1dump para conectar con la instancia de base de datos de destino y volver a crear la base de datos. Con *psql*, puede usar el nombre del usuario maestro y la contraseña maestra para crear la base de datos en la instancia de base de datos.

El ejemplo siguiente usa *psql* y un archivo de volcado llamado mydb2dump.sql para crear una base de datos llamada mydb2 en una instancia de base de datos PostgreSQL llamada mypginstance:

Para Linux, macOS o Unix:

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

Para Windows:

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

**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

## Paso 4: cree una instantánea de base de datos de la instancia de base de datos
<a name="PostgreSQL.Procedural.Importing.EC2.Step4"></a>

Una vez que haya comprobado que los datos se han cargado en su instancia de base de datos, es recomendable que cree una instantánea de base de datos de la instancia de base de datos PostgreSQL de destino. Las instantáneas de base de datos son copias de seguridad completos de una instancia de base de datos que se pueden usar para restaurarla a un estado conocido. Una instantánea de base de datos tomada inmediatamente después de la carga le evita tener que volver a cargar los datos en caso de error. También puede usar dicha instantánea para inicializar nuevas instancias de bases de datos. Para obtener más información acerca de la creación de una instantánea de base de datos, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md).