Importazione di un database PostgreSQL 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 database PostgreSQL da un'istanza Amazon EC2

Se i tuoi dati si trovano in un server PostgreSQL su un'istanza Amazon EC2 e desideri trasferirli in un'istanza database PostgreSQL, puoi utilizzare la seguente procedura. Nell'elenco seguente è indicata la procedura da eseguire. Ciascun passaggio della procedura è descritto in modo dettagliato nelle sezioni seguenti.

  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

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

L'utilità pg_dump utilizza il comando COPY per creare uno schema e il dump dei dati di un database PostgreSQL. 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 database PostgreSQL di destinazione usando la console Amazon RDS, AWS CLI o l'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.

Il seguente esempio utilizza psql e un file dump denominato mydb2dump.sql per creare un database denominato mydb2 su un'istanza database PostgreSQL denominata mypginstance:

Per LinuxmacOS, oUnix:

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

Per 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 nella tua istanza database, ti consigliamo di creare uno snapshot DB dell'istanza database PostgreSQL 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.