

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à.

# Trasporta i database PostgreSQL tra due istanze DB Amazon RDS utilizzando pg\$1transport
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport"></a>

*Raunak Rishabh e Jitender Kumar, Amazon Web Services*

## Riepilogo
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-summary"></a>

**Questo modello descrive i passaggi per la migrazione di database estremamente grandi tra due istanze DB di Amazon Relational Database Service (Amazon RDS) per PostgreSQL utilizzando l'estensione pg\$1transport.** Questa estensione fornisce un meccanismo di trasporto fisico per spostare i singoli database. Trasmettendo i file di database con un'elaborazione minima, fornisce un metodo estremamente veloce per migrare database di grandi dimensioni tra istanze DB con tempi di inattività minimi. Questa estensione utilizza un modello pull in cui l'istanza DB di destinazione importa il database dall'istanza DB di origine.

## Prerequisiti e limitazioni
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-prereqs"></a>

**Prerequisiti**
+ Entrambe le istanze DB devono eseguire la stessa versione principale di PostgreSQL.
+ Il database non deve esistere sulla destinazione. In caso contrario, il trasporto non riesce.
+ Nessuna estensione diversa da **pg\$1transport** deve essere abilitata nel database di origine.
+ **Tutti gli oggetti del database di origine devono trovarsi nel tablespace pg\$1default predefinito.**
+ Il gruppo di sicurezza dell'istanza DB di origine dovrebbe consentire il traffico proveniente dall'istanza DB di destinazione.
+ Installa un client PostgreSQL [come](https://www.postgresql.org/docs/11/app-psql.html) psql o utilizza l'istanza database Amazon [PgAdmin](https://www.pgadmin.org/)RDS PostgreSQL. Puoi installare il client nel tuo sistema locale o utilizzare un'istanza Amazon Elastic Compute Cloud (Amazon EC2). In questo modello, utilizziamo psql su un' EC2 istanza.

**Limitazioni**
+ Non puoi trasportare database tra diverse versioni principali di Amazon RDS for PostgreSQL.
+ I privilegi di accesso e la proprietà dal database di origine non vengono trasferiti al database di destinazione.
+ Non è possibile trasportare database su repliche di lettura o su istanze principali di repliche di lettura.
+ Non è possibile utilizzare i tipi di dati **reg** in nessuna tabella di database che si prevede di trasportare con questo metodo.
+ È possibile eseguire fino a 32 trasporti totali (incluse importazioni ed esportazioni) contemporaneamente su un'istanza DB.
+ Non è possibile rinominare le tabelle. include/exclude Tutto viene migrato così com'è.

**Attenzione**
+ Eseguite dei backup prima di rimuovere l'estensione, poiché rimuovendo l'estensione vengono rimossi anche gli oggetti dipendenti e alcuni dati fondamentali per il funzionamento del database.
+ Considera la classe di istanza e i processi in esecuzione su altri database sull'istanza di origine quando determini il numero di worker e `work_mem` i valori per **pg\$1transport**.
+ All'avvio del trasporto, tutte le connessioni sul database di origine vengono interrotte e il database viene messo in modalità di sola lettura.

**Nota**  
Quando il trasporto è in esecuzione su un database, non influisce sugli altri database sullo stesso server. ****

**Versioni del prodotto**
+ Amazon RDS per PostgreSQL 10.10 e versioni successive e Amazon RDS for PostgreSQL 11.5 e versioni successive. Per informazioni sulla versione più recente, consulta [Trasporto di database PostgreSQL tra istanze DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html) nella documentazione di Amazon RDS.

## Architecture
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-architecture"></a>

![\[Trasporto di database PostgreSQL tra istanze database Amazon RDS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)


## Tools (Strumenti)
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-tools"></a>
+ **pg\$1transport fornisce un meccanismo di trasporto fisico** per spostare ogni database. Tramite lo streaming dei file di database con un'elaborazione minima, il trasporto fisico sposta i dati molto più velocemente rispetto ai tradizionali processi di dump e load e richiede tempi di inattività minimi. Transportable Database di PostgreSQL utilizza un modello pull in cui l'istanza database di destinazione importa il database dall'istanza database di origine. Questa estensione viene installata sulle istanze DB quando si preparano gli ambienti di origine e di destinazione, come spiegato in questo schema.
+ [psql](https://www.postgresql.org/docs/11/app-psql.html) ti consente di connetterti e lavorare con le tue istanze DB PostgreSQL. Per installare **psql** sul tuo sistema, consulta la pagina dei download di [PostgreSQL](https://www.postgresql.org/download/).

## Epiche
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-epics"></a>

### Crea il gruppo di parametri di destinazione
<a name="create-the-target-parameter-group"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un gruppo di parametri per il sistema di destinazione. | Specificate un nome di gruppo che lo identifichi come gruppo di parametri di destinazione; ad esempio,`pgtarget-param-group`. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Modificate i parametri per il gruppo di parametri. | Imposta i seguenti parametri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Per ulteriori informazioni su questi parametri, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Crea il gruppo di parametri di origine
<a name="create-the-source-parameter-group"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un gruppo di parametri per il sistema di origine. | Specificate un nome di gruppo che lo identifichi come gruppo di parametri di origine; ad esempio,`pgsource-param-group`. Per istruzioni, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Modificate i parametri per il gruppo di parametri. | Imposta i seguenti parametri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Per ulteriori informazioni su questi parametri, consulta la [documentazione di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Prepara l'ambiente di destinazione
<a name="prepare-the-target-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una nuova istanza DB Amazon RDS for PostgreSQL in cui trasportare il database di origine. | Determina la classe dell'istanza e la versione di PostgreSQL in base ai tuoi requisiti aziendali. | DBA, amministratore di sistema, architetto del database | 
| Modifica il gruppo di sicurezza della destinazione per consentire le connessioni sulla porta dell'istanza DB dall' EC2 istanza. | Per impostazione predefinita, la porta per l'istanza PostgreSQL è 5432. Se stai usando un'altra porta, le connessioni a quella porta devono essere aperte per l'istanza. EC2  | DBA, amministratore di sistema | 
| Modifica l'istanza e assegna il nuovo gruppo di parametri di destinazione. | Ad esempio, `pgtarget-param-group`. | DBA | 
| Riavvia l'istanza database Amazon RDS di destinazione.  | I parametri `shared_preload_libraries` e `max_worker_processes` sono parametri statici e richiedono il riavvio dell'istanza. | DBA, amministratore di sistema | 
| Connect al database dall' EC2 istanza usando psql. | Utilizza il comando : <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Crea l'estensione pg\$1transport. | Esegui la seguente query come utente con il ruolo: `rds_superuser`<pre>create extension pg_transport;</pre> | DBA | 

### Preparare l'ambiente di origine
<a name="prepare-the-source-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Modifica il gruppo di sicurezza dell'origine per consentire le connessioni sulla porta dell'istanza DB dall'istanza Amazon e dall' EC2 istanza DB di destinazione | Per impostazione predefinita, la porta per l'istanza PostgreSQL è 5432. Se stai usando un'altra porta, le connessioni a quella porta devono essere aperte per l'istanza. EC2  | DBA, amministratore di sistema | 
| Modifica l'istanza e assegna il nuovo gruppo di parametri di origine. | Ad esempio, `pgsource-param-group`. | DBA | 
| Riavvia l'istanza database Amazon RDS di origine.  | I parametri `shared_preload_libraries` e `max_worker_processes` sono parametri statici e richiedono il riavvio dell'istanza. | DBA | 
| Connect al database dall' EC2 istanza usando psql. | Utilizza il comando : <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Crea l'estensione pg\$1transport e rimuovi tutte le altre estensioni dai database da trasportare. | Il trasporto avrà esito negativo se nel database di origine sono installate estensioni diverse da **pg\$1transport**. Questo comando deve essere eseguito da un utente con il ruolo. `rds_superuser` | DBA | 

### Esegui il trasporto
<a name="perform-the-transport"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui una corsa a secco. | Usa la `transport.import_from_server` funzione per eseguire prima una corsa a secco:<pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', 'true');</pre>L'ultimo parametro di questa funzione (impostato su`true`) definisce il funzionamento a secco. Questa funzione visualizza tutti gli errori che si possono verificare durante l'esecuzione del trasporto principale. Risolvete gli errori prima di eseguire il trasporto principale.  | DBA | 
| Se l'esecuzione a secco ha esito positivo, avvia il trasporto del database. | Esegui la `transport.import_from_server` funzione per eseguire il trasporto. Si collega alla fonte e importa i dati. <pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', false);</pre>L'ultimo parametro di questa funzione (impostato su`false`) indica che non si tratta di un funzionamento a secco. | DBA | 
| Eseguire le fasi successive al trasporto. | Una volta completato il trasporto del database:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html) | DBA | 

## Risorse correlate
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-resources"></a>
+ [Documentazione Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [documentazione pg\$1transport](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB.Setup)
+ [Migrazione di database utilizzando database trasportabili RDS PostgreSQL](https://aws.amazon.com/blogs/database/migrating-databases-using-rds-postgresql-transportable-databases/) (post sul blog)
+ [Download PostgreSQL](https://www.postgresql.org/download/linux/redhat/)
+ [utilità psql](https://www.postgresql.org/docs/11/app-psql.html)
+ [Creazione di un gruppo di parametri database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Creating)
+ [Modifica i parametri in un gruppo di parametri DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Modifying)
+ [Download PostgreSQL](https://www.postgresql.org/download/)