Importazione di un SQL database Postgre da un'istanza Amazon EC2 - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Importazione di un SQL database Postgre da un'istanza Amazon EC2

Se disponi di dati in un SQL server Postgre su un'EC2istanza Amazon e desideri spostarli su un'istanza SQL DB Postgre, puoi seguire questa procedura per migrare i dati.

  1. Creare un file utilizzando pg_dump che contiene i dati da caricare

  2. Creare l'istanza database di destinazione

  3. Utilizzare psql per creare il database sull'istanza database e caricare i dati

  4. Creare uno snapshot DB dell'istanza database

Le seguenti sezioni forniscono maggiori dettagli su ogni passaggio sopra elencato.

Passo 1: creare un file utilizzando pg_dump che contiene i dati da caricare

L'pg_dumputilità utilizza il COPY comando per creare uno schema e un dump dei dati di un database SQL Postgre. Lo script del dump generato da pg_dump carica i dati in un database con lo stesso nome e ricrea le tabelle, gli indici e le chiavi esterne. Puoi utilizzare il comando pg_restore e il parametro -d per ripristinare i dati in un database con un nome diverso.

Prima di creare il dump dei dati, devi eseguire le query delle tabelle da sottoporre a dump per ottenere un conteggio delle righe e confermare il numero sull'istanza database di destinazione.

Il seguente commando crea un file dump denominato mydb2dump.sql per un database denominato mydb2.

prompt>pg_dump dbname=mydb2 -f mydb2dump.sql

Passo 2: creare l'istanza database di destinazione.

Crea l'istanza Postgree SQL DB di destinazione utilizzando la RDS console Amazon o. AWS CLI API Crea l'istanza con l'impostazione di retention dei backup impostata su 0 e disabilita l'opzione Multi-AZ. Ciò consente di velocizzare l'importazione dei dati. Devi creare un database sull'istanza prima di poter effettuare il dump dei dati. Il database può avere lo stesso nome del database che conteneva i dati del dump. In alternativa, puoi creare un database con un nome diverso. In questo caso, puoi utilizzare il comando pg_restore e il parametro -d per ripristinare i dati nel database con il nuovo nome.

Ad esempio, puoi utilizzare i seguenti comandi per il dump, il ripristino e la ridenominazione di un database.

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

Passo 3: utilizzare psql per creare il database sull'istanza database e caricare i dati

Puoi utilizzare la stessa connessione utilizzata per eseguire il comando pg_dump per connetterti all'istanza database di destinazione e ricreare il database. Servendoti di psql, puoi utilizzare il nome utente master e la password master per creare il database sull'istanza database.

L'esempio seguente utilizza psql e un file di dump denominato mydb2dump.sql per creare un database chiamato mydb2 su un'istanza DB Postgre chiamata mypginstance: SQL

In Linux, macOS, oppure Unix:

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

In Windows:

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

Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

Passo 4: creare uno snapshot DB dell'istanza database.

Dopo aver verificato che i dati siano stati caricati nell'istanza DB, ti consigliamo di creare uno snapshot DB dell'istanza database Postgre SQL di destinazione. Le snapshot DB sono backup completi della tua istanza database che puoi utilizzare per ripristinare la tua istanza database in uno stato noto. Una snapshot DB ottenuta immediatamente dopo il caricamento consente di non dover caricare nuovamente i dati in caso di problemi. Può essere utilizzata per inizializzare nuove istanze database. Per ulteriori informazioni sulla creazione di uno snapshot DB, consulta Creazione di uno snapshot DB per un'istanza DB Single-AZ per Amazon RDS.