Importazione di dati in PostgreSQL su Amazon RDS - 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 dati in PostgreSQL su Amazon RDS

Si supponga di avere una distribuzione PostgreSQL esistente da spostare in Amazon RDS. La complessità dell'attività dipende dalle dimensioni del database e dal tipo di oggetti di database da trasferire. Pensa, ad esempio, a un database con diversi gigabyte di set di dati, trigger e stored procedure. Trasferire un database di questo tipo è più complicato che trasferire un semplice database con pochi megabyte di dati di test e senza trigger o stored procedure.

Ti consigliamo di utilizzare gli strumenti di migrazione dei database PostgreSQL nativi nei seguenti casi:

  • Hai una migrazione omogenea, dove effettui la migrazione da un database con lo stesso motore del database del database di destinazione.

  • Desideri migrare un intero database.

  • Gli strumenti nativi ti consentono di migrare il tuo sistema con tempi di inattività ridotti.

Nella maggior parte degli altri casi, eseguire una migrazione del database utilizzando AWS Database Migration Service (AWSDMS) è l'approccio migliore. AWS DMS è in grado di migrare i database senza tempi di inattività e, per molti motori di database, procede con la replica continua fino a quando non è tutto pronto per passare al database di destinazione. Puoi effettuare la migrazione allo stesso motore del database o a un motore del database diverso tramite AWS DMS. Se si esegue la migrazione a un motore del database diverso rispetto al database di origine, si può utilizzare AWS Schema Conversion Tool (AWS SCT). AWS SCT può essere utilizzato per eseguire la migrazione degli oggetti dello schema di cui non viene eseguita la migrazione con AWS DMS. Per ulteriori informazioni su AWS DMS, consulta Che cos'è AWS Database Migration Service?

Modifica il gruppo di parametri database per includere le seguenti impostazioni solo per la tua importazione. Per individuare le impostazioni più efficienti per le dimensioni della tua istanza database devi testare le impostazioni dei parametri. Dovrai inoltre ripristinare i valori di produzione per questi parametri al termine dell'impostazione.

Modifica i parametri dell'istanza database come segue:

  • Disabilita i backup delle istanze database (imposta backup_retention su 0).

  • Disabilita Multi-AZ.

Modifica il gruppo di parametri del database in modo da includere le seguenti impostazioni. Utilizza queste impostazioni soltanto quando importi i dati. Per individuare le impostazioni più efficienti per le dimensioni della tua istanza database devi testare le impostazioni dei parametri. Dovrai inoltre ripristinare i valori di produzione per questi parametri al termine dell'impostazione.

Parametro Valori consigliati durante l'importazione Descrizione

maintenance_work_mem

524288, 1048576, 2097152 o 4194304 (in KB). Queste impostazioni sono paragonabili a 512 MB, 1 GB, 2 GB e 4 GB.

Il valore di questa impostazione dipende dalle dimensioni dell'host. Questo parametro viene utilizzato durante le istruzioni CREATE INDEX e ogni comando parallelo può utilizzare questa quantità di memoria. Calcola il valore ottimale, per evitare di impostare un valore troppo alto ed esaurire la memoria.

max_wal_size

256 (per la versione 9.6), 4096 (per le versioni 10 e successive)

Dimensione massima per far crescere il WAL durante i checkpoint automatici. Aumentando questo parametro puoi aumentare il tempo necessario per il ripristino di caso di arresto anomalo. Questo parametro sostituisce checkpoint_segments per PostgreSQL 9.6 e versioni successive.

Per PostgreSQL versione 9.6, questo valore è espresso in unità da 16 MB. Per le versioni successive, il valore è espresso in unità da 1 MB. Ad esempio, nella versione 9.6, 128 significa 128 blocchi ognuno con una dimensione di 16 MB. Nella versione 12.4, 2048 significa 2048 blocchi che hanno una dimensione di 1 MB.

checkpoint_timeout

1800

Il valore per questa impostazione consente una rotazione WAL meno frequente.

synchronous_commit

Disattivata

Disabilita questa impostazione per velocizzare la scrittura. La disattivazione del parametro può aumentare il rischio di perdita di dati in caso di arresto anomalo del server (non disattivare FSYNC)

wal_buffers

8192

Questo valore è impostato in unità di 8 KB. Anche questo aiuta a velocizzare la generazione dei WAL.

autovacuum

0

Disabilita il parametro di eliminazione automatica PostgreSQL durante il caricamento dei dati in modo che non utilizzi risorse.

Utilizza i comandi pg_dump -Fc (compresso) o pg_restore -j (parallelo) con queste impostazioni.

Nota

Il comando PostgreSQL pg_dumpall richiede autorizzazioni super_user che non vengono concesse quando crei un'istanza database, quindi non puoi utilizzarlo per importare i dati.