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 di Aurora SQL Postgre nelle repliche
QPM(Query Plan Management) consente di acquisire i piani di query generati da Aurora Replicas e di archiviarli sull'istanza DB principale del cluster Aurora DB. È 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.
Argomenti
Prerequisiti
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_plan_mgmt.capture_plan_baselines.
Installa l'estensione postgres_fdw: è 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
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 Comprendere i ruoli e le autorizzazioni di SQL Postgre.
Per acquisire i piani, chiama la funzione apg_plan_mgmt.create_replica_plan_capture nell'istanza database di scrittura, come illustrato di seguito:
postgres=>
CALL apg_plan_mgmt.create_replica_plan_capture('cluster_endpoint'
,'password'
);
cluster_endpoint: cluster_endpoint (endpoint di scrittura) fornisce il supporto di failover per l'acquisizione del piano nelle repliche Aurora.
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 del cluster, devi eseguire nuovamente l'operazione apg_plan_mgmt.create_replica_plan_capture()
con l'endpoint del cluster 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 del cluster, è necessario chiamare nuovamente apg_plan_mgmt.create_replica_plan_capture().
Risoluzione dei problemi
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 sepostgres_fdw
è installata.postgres=>
SELECT * FROM pg_extension WHERE extname = 'postgres_fdw'create_replica_plan_capture() è 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 del cluster: controlla se l'endpoint e il numero di porta del cluster 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_plan_mgmt.reload() dopo aver chiamato apg_plan_mgmt.delete_plan() 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_replica_plan_capture() 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. 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. L'istanza writer e Cross-region Replica devono essere in grado di comunicare tramite Peering. VPC Per ulteriori informazioni, vedere Peering. VPC Se si verifica un failover che coinvolge più regioni, è necessario riconfigurare l'endpoint su un nuovo endpoint primario del cluster di database.