Aggiornamenti del motore RDS For SQL Postgree DB - 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à.

Aggiornamenti del motore RDS For SQL Postgree DB

Esistono due tipi di upgrade che puoi gestire per il tuo database Postgre: SQL

  • Aggiornamenti del sistema operativo: occasionalmente, Amazon RDS potrebbe dover aggiornare il sistema operativo sottostante del database per applicare correzioni di sicurezza o modifiche al sistema operativo. Puoi decidere quando Amazon RDS applicare gli aggiornamenti del sistema operativo utilizzando la RDS console, AWS Command Line Interface (AWS CLI) o RDSAPI. Per ulteriori informazioni sugli aggiornamenti del sistema operativo, consulta Applicazione di aggiornamenti a un'istanza database.

  • Aggiornamenti del motore di database: quando Amazon RDS supporta una nuova versione di un motore di database, puoi aggiornare i database alla nuova versione.

Un database in questo contesto è un'istanza SQL DB RDS per Postgre o un cluster DB Multi-AZ.

Esistono due tipi di aggiornamenti del motore per i SQL database Postgre: aggiornamenti delle versioni principali e aggiornamenti delle versioni secondarie.

Aggiornamenti di una versione principale

Gli aggiornamenti di versione principali possono contenere modifiche al database non compatibili con le versioni precedenti delle applicazioni esistenti. Ne risulta che è necessario eseguire manualmente gli aggiornamenti della versione principale per i propri database. Puoi avviare manualmente un aggiornamento della versione principale modificando l'istanza database o il cluster database multi-AZ. Prima di eseguire un aggiornamento della versione principale, ti consigliamo di seguire i passaggi descritti in. Scelta di una versione principale RDS per un aggiornamento a SQL Postgree

Se stai aggiornando un'istanza DB con repliche di lettura locali, RDS Amazon aggiorna le repliche insieme all'istanza DB principale.

Amazon RDS non aggiorna le repliche di lettura del cluster DB Multi-AZ. Se esegui un aggiornamento di versione principale di un cluster DB Multi-AZ, lo stato di replica delle relative repliche di lettura diventa terminato. Devi eliminare e ricreare manualmente le repliche di lettura al completamento dell'aggiornamento.

Suggerimento

È possibile ridurre al minimo i tempi di inattività necessari per l'aggiornamento di una versione principale utilizzando una distribuzione blu/verde. Per ulteriori informazioni, consulta Utilizzo di Amazon RDS Blue/Green Deployments per gli aggiornamenti del database.

Aggiornamenti della versione secondaria

Al contrario, gli aggiornamento secondari a una versione includono solo modifiche compatibili con le versioni precedenti delle applicazioni esistenti. Puoi avviare manualmente un aggiornamento della versione secondaria modificando il cluster di database. In alternativa, è possibile abilitare l'opzione di aggiornamento automatico della versione secondaria durante la creazione o la modifica di un database. Ciò significa che Amazon aggiorna RDS automaticamente il tuo database dopo aver testato e approvato la nuova versione. Se il tuo SQL database Postgre utilizza repliche di lettura, devi prima aggiornare tutte le repliche di lettura prima di aggiornare l'istanza o il cluster di origine.

Se il tuo database è una distribuzione di istanze DB Multi-AZ, Amazon aggiorna RDS contemporaneamente l'istanza primaria e tutte le istanze di standby. Pertanto, il database potrebbe non essere disponibile fino al completamento dell'aggiornamento. Se il tuo database è una distribuzione di cluster DB Multi-AZ, Amazon RDS aggiorna le istanze Reader DB una alla volta. Quindi, una delle istanze Reader DB diventa la nuova istanza DB Writer. Amazon aggiorna RDS quindi la vecchia istanza writer (che ora è un'istanza reader).

Nota

Il tempo di inattività per un aggiornamento di versione minore di un'implementazione di un'istanza DB Multi-AZ può durare diversi minuti. I cluster DB Multi-AZ in genere riducono i tempi di inattività degli aggiornamenti di versioni minori a circa 35 secondi. Se utilizzati con RDS Proxy, è possibile ridurre ulteriormente i tempi di inattività a un secondo o meno. Per ulteriori informazioni, consulta Utilizzo di Amazon RDS Proxy . In alternativa, è possibile utilizzare un proxy di database open source come Proxy o AWS JDBCDriver for My SQL PgBouncer, SQL

Per ulteriori informazioni, consulta Aggiornamenti automatici delle versioni secondarie RDS per Postgre SQL. Per ulteriori informazioni sull'esecuzione manuale di un aggiornamento alla versione secondaria, consulta Aggiornamento manuale della versione del motore.

Per ulteriori informazioni sulle versioni dei motori di database e sulla politica per la deprecazione delle versioni dei motori di database, consulta Versioni dei motori di database in Amazon. RDS FAQs

Considerazioni sugli aggiornamenti di Postgree SQL

Per aggiornare in sicurezza i tuoi database, Amazon RDS utilizza l'pg_upgradeutilità descritta nella documentazione di SQLPostgre

Se il periodo di conservazione dei backup è superiore a 0, Amazon RDS esegue due snapshot DB durante il processo di aggiornamento. Il primo snapshot database è relativo al database prima delle modifiche associate all'aggiornamento. Se l'aggiornamento dei database ha esito negativo, puoi ripristinare questo snapshot per creare un database che esegue la versione precedente. Il secondo snapshot DB viene acquisito al termine dell'aggiornamento.

Nota

Amazon RDS scatta istantanee DB durante il processo di aggiornamento solo se hai impostato il periodo di conservazione dei backup per il tuo database su un numero maggiore di 0. Per modificare il periodo di conservazione dei backup per un'istanza database, consulta Modifica di un'istanza Amazon RDS DB. Non è possibile configurare un periodo di conservazione dei backup personalizzato per un cluster database multi-AZ.

Quando aggiorni la versione principale di un'istanza database, tutte le repliche di lettura nella regione vengono aggiornate automaticamente. Dopo l'avvio del flusso di lavoro di aggiornamento, le istanze di repliche di lettura attendono che pg_upgrade venga completato correttamente sull'istanza database primaria. Quindi l'aggiornamento dell'istanza database primaria attende il completamento degli aggiornamenti di replicche di lettura. Finché l'aggiornamento non è completato, si verifica un'interruzione. Quando esegui l'aggiornamento della versione principale di un cluster database multi-AZ, lo stato delle relative repliche di lettura cambia in Terminato.

Al completamento di un aggiornamento, non è possibile ripristinare la versione precedente del motore di database. Se desideri ripristinare la versione precedente, ripristina lo snapshot database acquisito prima dell'aggiornamento per creare un nuovo database.

Individuazione di obiettivi di upgrade validi

Quando si utilizza AWS Management Console per aggiornare un database, mostra gli obiettivi di aggiornamento validi per il database. È inoltre possibile utilizzare il AWS CLI comando seguente per identificare gli obiettivi di aggiornamento validi per un database:

In Linux, macOS, oppure Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version version-number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

In Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Ad esempio, per identificare gli obiettivi di aggiornamento validi per un database Postgre SQL versione 12.13, esegui il comando seguente: AWS CLI

In Linux, macOS, oppure Unix:

aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 12.13 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

In Windows:

aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 12.13 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text