

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

# Acquisizione dei piani di esecuzione Aurora PostgreSQL nelle repliche
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas"></a>

QPM (Query Plan Management) consente di acquisire i piani di query generati dalle repliche di Aurora e di archiviarli sull'istanza database principale del cluster di database Aurora. È possibile raccogliere i piani di query da tutte le repliche Aurora e mantenere un insieme di piani ottimali in una tabella centrale persistente sull'istanza primaria. Potrai applicare tali piani su altre repliche secondo necessità. Ciò consente di mantenere la stabilità dei piani di esecuzione e di migliorare le prestazioni delle query tra i cluster database e le versioni del motore.

**Topics**
+ [Prerequisiti](#AuroraPostgreSQL.QPM.Plancapturereplicas.Prereq)
+ [Gestione dell'acquisizione del piano per le repliche di Aurora](#AuroraPostgreSQL.QPM.Plancapturereplicas.managing)
+ [Risoluzione dei problemi](#AuroraPostgreSQL.QPM.Plancapturereplicas.Troubleshooting)

## Prerequisiti
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.Prereq"></a>

**Attiva `capture_plan_baselines parameter` in una replica di Aurora**: imposta il parametro `capture_plan_baselines` su automatico o manuale per acquisire i piani nelle repliche di Aurora. Per ulteriori informazioni, consulta [apg\$1plan\$1mgmt.capture\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines).

**Installa l'estensione postgres\$1fdw**: è necessario installare l'estensione foreign data wrapper `postgres_fdw` per acquisire i piani nelle repliche di Aurora. Per installare l'estensione, esegui il comando seguente in ogni database. 

```
postgres=> CREATE EXTENSION IF NOT EXISTS postgres_fdw;
```

## Gestione dell'acquisizione del piano per le repliche di Aurora
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.managing"></a>

**Attiva l'acquisizione del piano per le repliche di Aurora**  
Per creare o rimuovere l'acquisizione del piano nelle repliche Aurora devi disporre dei privilegi di `rds_superuser`. Per ulteriori informazioni sui ruoli e le autorizzazioni degli utenti, consulta [Informazioni su ruoli e autorizzazioni di PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Roles.html).

Per acquisire i piani, chiama la funzione apg\$1plan\$1mgmt.create\$1replica\$1plan\$1capture nell'istanza database di scrittura, come illustrato di seguito:

```
postgres=> CALL apg_plan_mgmt.create_replica_plan_capture('endpoint', 'password');
```
+ endpoint: l’endpoint di scrittura del database globale Aurora o cluster\$1endpoint fornisce il supporto del failover per l’acquisizione del piano nelle repliche Aurora.

  Per ulteriori informazioni sull’endpoint di scrittura del database globale Aurora, consulta [Visualizzazione degli endpoint di un database globale Amazon Aurora](aurora-global-database-connecting.md#viewing-endpoints).

  Per ulteriori informazioni sugli endpoint del cluster, consulta [Endpoint del cluster per Amazon Aurora](Aurora.Endpoints.Cluster.md).
+ password: per migliorare la sicurezza, ti consigliamo di seguire queste linee guida durante la creazione della password:
  + Deve contenere almeno 8 caratteri.
  + Deve contenere almeno una lettera maiuscola, una lettera minuscola e un numero.
  + Deve contenere almeno un carattere speciale (`?`, `!`, `#`, `<`, `>`, `*`, eccetera).

**Nota**  
Se modifichi l’endpoint, la password o il numero di porta, è necessario eseguire nuovamente l’operazione `apg_plan_mgmt.create_replica_plan_capture()` con l’endpoint e la password per reinizializzare l’acquisizione del piano. In caso contrario, l'acquisizione dei piani dalle repliche Aurora genererà un errore.

**Disattiva l'acquisizione del piano per le repliche Aurora**  
È possibile disattivare il parametro `capture_plan_baselines` nelle repliche Aurora impostandone il valore su `off` nel gruppo Parametri.

**Rimuovi l'acquisizione del piano per le repliche Aurora**  
È possibile rimuovere completamente l'acquisizione dei piani per le repliche Aurora, ma prima di farlo ti consigliamo di rifletterci bene. Per rimuovere l'acquisizione dei piani, chiama `apg_plan_mgmt.remove_replica_plan_capture` come mostrato:

```
postgres=> CALL apg_plan_mgmt.remove_replica_plan_capture();
```

Per attivare l’acquisizione del piano nelle repliche Aurora con l’endpoint e la password, è necessario chiamare nuovamente apg\$1plan\$1mgmt.create\$1replica\$1plan\$1capture().

## Risoluzione dei problemi
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.Troubleshooting"></a>

Di seguito, è possibile trovare idee per la risoluzione dei problemi e soluzioni alternative se il piano non viene acquisito come previsto nelle repliche Aurora.
+ **Impostazioni dei parametri**: controlla se il parametro `capture_plan_baselines` è impostato sul valore corretto per attivare l'acquisizione del piano.
+ **L'estensione `postgres_fdw` è installata**: utilizza la seguente query per verificare se `postgres_fdw` è installata.

  ```
  postgres=> SELECT * FROM pg_extension WHERE extname = 'postgres_fdw'
  ```
+ **create\$1replica\$1plan\$1capture() è stata chiamata**: utilizza il seguente comando per verificare se la mappatura dell'utente è presente. Altrimenti, chiama `create_replica_plan_capture()` per inizializzare la funzionalità.

  ```
  postgres=> SELECT * FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  ```
+ **Endpoint e numero di porta**: controllare se l’endpoint e il numero di porta sono corretti. Quando questi valori sono errati, non viene visualizzato alcun messaggio di errore. 

  Utilizza il seguente comando per verificare se l'endpoint è utilizzato in create() e per controllare in quale database risiede:

  ```
  postgres=> SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  ```
+ **reload()**: è necessario chiamare apg\$1plan\$1mgmt.reload() dopo aver chiamato apg\$1plan\$1mgmt.delete\$1plan() nelle repliche Aurora per rendere effettiva la funzione di eliminazione. Ciò garantisce che la modifica sia stata implementata con successo.
+ **Password**: è necessario inserire la password in create\$1replica\$1plan\$1capture() seguendo le linee guida menzionate. In caso contrario, verrà restituito un errore. Per ulteriori informazioni, consulta [Gestione dell'acquisizione del piano per le repliche di Aurora](#AuroraPostgreSQL.QPM.Plancapturereplicas.managing). Utilizza un'altra password che soddisfi i requisiti.
+ **Connessione tra più regioni**: l'acquisizione dei piani nelle repliche di Aurora è supportata anche nel database globale Aurora, dove l'istanza di scrittura e le repliche Aurora possono trovarsi in regioni diverse. Assicurarsi di utilizzare l’endpoint di scrittura del database globale Aurora per mantenere la connettività dopo eventi di failover o switchover. Per ulteriori informazioni sugli endpoint del database globale Aurora, consulta [Visualizzazione degli endpoint di un database globale Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-connecting.html#viewing-endpoints). L'istanza di scrittura e la replica che si trovano in regioni diverse devono essere in grado di comunicare utilizzando il Peering VPC. Per ulteriori informazioni, consulta [Peering VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html). Se si verifica un failover che coinvolge più regioni, è necessario riconfigurare l'endpoint su un nuovo endpoint primario del cluster di database.
**Nota**  
Quando si utilizza un endpoint del cluster anziché un endpoint di scrittura del database globale Aurora, è necessario aggiornare l’endpoint del cluster dopo aver eseguito un’operazione di failover globale o di switchover.