Importar um banco de dados PostgreSQL de uma instância do Amazon EC2
Se houver dados em um servidor do PostgreSQL em uma instância do Amazon EC2 e você quiser movê-los para uma instância de banco de dados do PostgreSQL, você poderá seguir este processo para migrar os dados.
-
Crie um arquivo usando o pg_dump que contenha os dados a serem carregados
-
Crie a instância de banco de dados de destino
-
Use o psql para criar o banco de dados na instância de banco de dados e carregá-los
-
Crie um snapshot de banco de dados da instância de banco de dados
As seções a seguir apresentam mais detalhes sobre cada etapa listada acima.
Etapa 1: Criar um arquivo usando o pg_dump que contenha os dados a serem carregados
O utilitário pg_dump
usa o comando COPY para criar um esquema e uma despejo de dados de um banco de dados PostgreSQL. O script de despejo gerado pelo pg_dump
carrega os dados em um banco de dados com o mesmo nome e recreia as tabelas, os índices e as chaves externas. Você pode usar o comando pg_restore
e o parâmetro -d
para recuperar os dados em um banco de dados com um nome diferente.
Antes de criar o despejo de dados, você deve consultar as tabelas a serem despejadas para obter uma contagem de linhas, assim você pode confirmar a contagem na instância de banco de dados de destino.
O comando a seguir cria um arquivo de despejo denominado mydb2dump.sql para um banco de dados denominado mydb2.
prompt>pg_dump dbname=mydb2 -f mydb2dump.sql
Etapa 2: crie a instância de banco de dados de destino
Crie a instância de banco de dados PostgreSQL de destino usando o console, a AWS CLI ou a API do Amazon RDS. Crie a instância com a configuração de retenção de backup definida como 0 e desative o multi-AZ. Isso permite uma importação de dados mais rápida. Você deve criar um banco de dados na instância antes de poder despejar os dados. O banco de dados pode ter o mesmo nome que o banco de dados que contém os dados de despejo. Se preferir, você pode criar um banco de dados com um nome diferente. Nesse caso, use o comando pg_restore
e o parâmetro -d
para restaurar os dados para o banco de dados recém-nomeado.
Por exemplo, os seguintes comandos podem ser usados para despejar, restaurar e renomear um banco de dados.
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
Etapa 3: Usar o psql para criar o banco de dados na instância de banco de dados e carregá-los
É possível usar a mesma conexão que você usou para executar o comando pg_dump para se conectar à instância de banco de dados de destino e recriar o banco de dados. Com o psql, use o nome de usuário mestre e a senha mestre para criar o banco de dados na instância de banco de dados
O exemplo a seguir usa o psql e um arquivo de despejo denominado mydb2dump.sql para criar um banco de dados denominado mydb2 em uma instância de banco de dados PostgreSQL chamada mypginstance:
Para Linux, macOS ou Unix:
psql \ -f
mydb2dump.sql
\ --hostmypginstance.555555555555
.aws-region
.rds.amazonaws.com \ --port8199
\ --usernamemyawsuser
\ --passwordpassword
\ --dbnamemydb2
Para Windows:
psql ^ -f
mydb2dump.sql
^ --hostmypginstance.555555555555
.aws-region
.rds.amazonaws.com ^ --port8199
^ --usernamemyawsuser
^ --passwordpassword
^ --dbnamemydb2
nota
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.
Etapa 4: crie um DB snapshot da instância de banco de dados
Após confirmar que os dados foram carregados na instância de banco de dados, recomendamos que você crie um snapshot de banco de dados da instância de banco de dados PostgreSQL de destino. Os snapshot de banco de dadoss são backups completos de sua instância de banco de dados que podem ser usados para restaurá-la em um estado conhecido. Um snapshot de banco de dados feito imediatamente após a carga evita que você tenha que carregar os dados novamente caso ocorra um problema. Você também pode usar esse snapshot para propagar as novas instâncias de banco de dados. Para obter informações sobre como criar um snapshot de banco de dados, consulte Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS.