Uso delle repliche di lettura dell'istanza database - 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à.

Uso delle repliche di lettura dell'istanza database

Una replica di lettura è una copia di sola lettura di un'istanza database. È possibile ridurre il carico sull'istanza database primaria instradando le query dalle applicazioni alla replica di lettura. In questo modo, è possibile impiegare la scalabilità orizzontale in modo elastico oltre i vincoli di capacità di una singola istanza database per carichi di lavoro di database particolarmente gravosi in lettura.

Per creare una replica di lettura da un'istanza database di origine, Amazon RDS utilizza le funzionalità di replica integrata del motore database. Per informazioni sull'uso di repliche di lettura con un motore specifico, consulta le sezioni seguenti:

Dopo aver creato una replica di lettura da un'istanza database di origine, l'origine diventa l'istanza database primaria. Quando si aggiorna l'istanza database primaria, Amazon RDS copia l'aggiornamento in modo asincrono nella replica di lettura. Il diagramma seguente mostra un'istanza database di origine replicata su una replica di lettura in una zona di disponibilità (AZ) diversa. I client hanno accesso in lettura/scrittura all'istanza DB principale e accesso in sola lettura alla replica.

Configurazione della replica di lettura

Le repliche di lettura vengono fatturate come istanze DB standard alle stesse tariffe della classe di istanze DB utilizzata per la replica. Non ti viene addebitato alcun costo per il trasferimento dei dati necessario per la replica dei dati tra l'istanza DB di origine e una replica di lettura all'interno della stessa. Regione AWS Per ulteriori informazioni, consulta Costi della replica tra regioni e Fatturazione delle istanze DB per Amazon RDS DB Fatturazione delle istanze di Amazon.

Panoramica delle repliche di lettura di Amazon RDS

Le seguenti sezioni trattano le repliche di lettura delle istanze database. Per informazioni sull'aggiunta di repliche di lettura a un cluster Multi-AZ, consulta Utilizzo di repliche di lettura del cluster DB Multi-AZ per Amazon RDS.

Casi d'uso per le repliche di lettura

La distribuzione di una o più repliche di lettura per un'istanza database di origine specifica può essere una scelta logica in svariati scenari, inclusi i seguenti:

  • Dimensionamento oltre la capacità di calcolo o di I/O di una singola istanza database per carichi di lavoro di database gravosi in lettura. Puoi indirizzare questo traffico in lettura in eccesso a una o più repliche di lettura.

  • Assegnazione di traffico in lettura mentre l'istanza DB di origine non è disponibile. In alcuni casi, l'istanza database di origine potrebbe non riuscire a ricevere richieste di I/O, ad esempio a causa della sospensione delle operazioni di I/O in occasione dell'esecuzione di backup o della manutenzione pianificata. In questi casi puoi indirizzare il traffico in lettura verso le repliche di lettura. Per questo caso d'uso, tieni presente che i dati nella replica di lettura potrebbero restare non aggiornati, perché l'istanza database di origine non è disponibile.

  • Scenari di creazione di report o di data warehousing in cui potrebbe essere necessario eseguire query per la creazione di report aziendali su una replica di lettura invece che sull'istanza DB di produzione principale.

  • Implementazione del disaster recovery. Puoi promuovere una replica di lettura a un'istanza standalone come soluzione di disaster recovery in caso di errore dell'istanza database primaria.

Funzionamento delle repliche di lettura

Quando si crea una replica di lettura, si specifica un'istanza DB esistente come origine. Amazon RDS acquisisce quindi uno snapshot dell'istanza di origine e crea un'istanza di sola lettura dallo snapshot. Amazon RDS usa quindi il metodo di replica asincrona per il motore del database per aggiornare la replica di lettura ogni volta che viene apportata una modifica all'istanza database primaria.

La replica di lettura opera come istanza database che permette solo connessioni di sola lettura. Un'eccezione è il motore database RDS per Oracle, che supporta i database di replica in modalità montata. Una replica montata non accetta connessioni utente e quindi non può gestire un carico di lavoro di sola lettura. L'uso principale delle repliche montate in RDS for Oracle è il disaster recovery tra regioni. Per ulteriori informazioni, consulta Utilizzo di repliche di lettura per Amazon RDS per Oracle.

Le applicazioni si connettono a una replica di lettura allo stesso modo in cui si connettono a qualsiasi istanza database. Amazon RDS replica tutti i database dall'istanza database di origine.

È necessario creare manualmente le repliche di lettura. RDS non supporta la scalabilità automatica delle repliche di lettura, ovvero l'aggiunta o la rimozione automatica delle repliche di lettura al variare della domanda di lettura.

Repliche di lettura in una implementazione multi-AZ

È possibile configurare una replica di lettura per un'istanza database che dispone anche di una replica in standby configurata per l'elevata disponibilità in un'implementazione Multi-AZ. La replica con la replica in standby è sincrona. A differenza di una replica di lettura, una replica in standby non può gestire il traffico di lettura.

Nel seguente scenario, i client hanno accesso in lettura/scrittura a un'istanza database primaria in una zona di disponibilità (AZ). L'istanza primaria copia gli aggiornamenti in modo asincrono su una replica di lettura in una seconda zona di disponibilità e li copia anche in modo sincrono su una replica in standby in una terza zona di disponibilità. I client hanno accesso in lettura solo alla replica di lettura.

Configurazione della replica di lettura e della replica in standby

Per ulteriori informazioni sull’elevata disponibilità e sulle repliche in standby, consulta Configurazione e gestione di una distribuzione Multi-AZ per Amazon RDS.

Repliche di lettura tra regioni diverse

In alcuni casi, una replica di lettura risiede in un'istanza DB diversa da quella principale. Regione AWS In questi casi, Amazon RDS configura un canale di comunicazione sicuro tra l'istanza database primaria e la replica di lettura. Amazon RDS stabilisce tutte le configurazioni AWS di sicurezza necessarie per abilitare il canale sicuro, ad esempio l'aggiunta di voci ai gruppi di sicurezza. Per informazioni sulle repliche di lettura tra regioni, consulta Creazione di una replica di lettura in un altro Regione AWS.

Le informazioni contenute in questo capitolo si applicano alla creazione di repliche di lettura di Amazon RDS nella Regione AWS stessa istanza DB di origine o in un'altra istanza. Regione AWS Le seguenti informazioni non si applicano alla configurazione della replica con un'istanza in esecuzione su un' EC2 istanza Amazon o locale.

Differenze tra repliche di lettura per i motori DB

Poiché i motori DB di Amazon RDS implementano la replica in modo diverso, ci sono molte differenze significative delle quali dovresti essere consapevole, come mostrato nella tabella seguente.

Caratteristica o comportamento MySQL e MariaDB Oracle PostgreSQL SQL Server

Qual è il metodo di replica?

Replica logica.

Replica fisica.

Replica fisica.

Replica fisica.

Come vengono rimossi i log delle transazioni?

RDS for MySQL e RDS for MariaDB conservano tutti i log binari che non sono stati applicati.

Se un'istanza database di origine non dispone di repliche di lettura tra regioni, Amazon RDS for Oracle mantiene un minimo di due ore di log delle transazioni sull'istanza database di origine. I log vengono eliminati dall'istante database sorgente dopo due ore o dopo il periodo di tempo impostato con l'opzione, a seconda di quale risulta maggiore. I log vengono eliminati dalla replica di lettura dopo il periodo di tempo impostato con l'opzione solo se questi sono stati applicati correttamente al database.

In alcuni casi, un'istanza database primaria potrebbe avere una o più repliche di lettura tra regioni. In questa evenienza, Amazon RDS for Oracle mantiene i log delle transazioni sull'istanza database di origine finché non vengono trasmessi e applicati a tutte le repliche di lettura tra regioni.

Per informazioni sull'impostazione delle ore di conservazione dei log di archivio, consulta Conservazione dei log redo archiviati.

PostgreSQL include il parametro wal_keep_segments, che indica quanti file WAL (Write Ahead Log) vengono mantenuti per fornire dati alle repliche di lettura. Il valore del parametro specifica il numero di log da conservare.

Il file di log virtuale (VLF) del file di registro delle transazioni nella replica primaria può essere troncato quando non è più richiesto per le repliche secondarie.

Il VLF può essere contrassegnato come inattivo solo quando i record di log sono stati rafforzati nelle repliche. Indipendentemente dalla velocità dei sottosistemi di dischi nella replica principale, il registro delle transazioni rimarrà invariato VLFs fino a quando la replica più lenta non lo avrà rafforzato.

Una replica può essere resa scrivibile?

Sì. Puoi rendere scrivibile una replica di lettura MySQL o MariaDB.

No. Una replica di lettura di Oracle è una copia fisica e Oracle non consente di scrivere su una replica di lettura. Puoi promuovere la replica di lettura per renderla scrivibile. La replica di lettura promossa contiene i dati replicati fino al momento in cui è stata effettuata la richiesta di promozione.

No. Una replica di lettura di PostgreSQL è una copia fisica e PostgreSQL non permette di rendere scrivibile una replica di lettura.

No. Una replica di lettura di SQL Server è una copia fisica e inoltre non consente scritture. Puoi promuovere la replica di lettura per renderla scrivibile. La replica di lettura promossa contiene i dati replicati fino al momento in cui è stata effettuata la richiesta di promozione.

Possono essere eseguiti backup sulla replica?

Sì. I backup automatici e gli snapshot manuali sono supportati nelle repliche di lettura RDS per MySQL o RDS per MariaDB.

Sì. I backup automatici e gli snapshot manuali sono supportati nelle repliche di lettura RDS per Oracle.

Sì, è possibile creare uno snapshot manuale delle repliche di lettura RDS per PostgreSQL. I backup automatici per le repliche di lettura sono supportati solo per RDS per PostgreSQL 14.1 e versioni successive. Non è possibile attivare i backup automatici per le repliche di lettura PostgreSQL per le versioni precedenti alla 14.1 di RDS per PostgreSQL. Per RDS per PostgreSQL 13 e versioni precedenti, crea uno snapshot da una replica di lettura se si desidera creare un backup da tale snapshot.

No. I backup automatici e gli snapshot manuali non sono supportati nelle repliche di lettura RDS per SQL Server.

È possibile usare la replica parallela?

Sì. Tutte le versioni supportate di MariaDB e MySQL supportano i thread di replica parallela.

Sì. I dati dei log di Redo vengono sempre trasmessi in parallelo dal database primario a tutte le sue repliche di lettura.

No. PostgreSQL usa un unico processo per la gestione della replica.

Sì. I dati dei log di Redo vengono sempre trasmessi in parallelo dal database primario a tutte le sue repliche di lettura.

È possibile mantenere una replica in uno stato montato piuttosto che in uno stato di sola lettura?

No.

Sì. L'uso principale per le repliche montate è il disaster recovery tra regioni. Non è richiesta una licenza Active Data Guard per le repliche montate. Per ulteriori informazioni, consulta Utilizzo di repliche di lettura per Amazon RDS per Oracle.

No.

No.

Tipi di archiviazione della replica di lettura

Per impostazione predefinita, la replica di lettura viene creata con lo stesso tipo di storage dell'istanza database di origine. Tuttavia, puoi creare una replica di lettura con un tipo di storage diverso dall'istanza database di origine in base alle opzioni elencate nella tabella seguente.

Tipo di storage dell'istanza database di origine Storage allocato all'istanza database di origine Opzioni per il tipo di storage della replica di lettura
IOPS con provisioning 100 GiB–64 TiB Capacità di IOPS allocata, per uso generico, magnetico
Uso generico 100 GiB–64 TiB Capacità di IOPS allocata, per uso generico, magnetico
Uso generico <100 GiB Per uso generico, magnetico
Magnetico Da 100 GiB a 6 TiB Capacità di IOPS allocata, per uso generico, magnetico
Magnetico <100 GiB Per uso generico, magnetico
Nota

Quando si aumenta lo storage allocato di una replica di lettura, deve essere di almeno il 10%. Se si prova ad aumentarlo di un valore inferiore al 10%, verrà visualizzato un errore.

Restrizioni per la creazione di una replica da una replica

Amazon RDS non supporta la replica circolare. Non puoi configurare un'istanza database perché funga da origine della replica per un'istanza database esistente. Puoi creare una nuova replica di lettura solo a partire da un'istanza database esistente. Ad esempio, se MySourceDBInstance si replica su ReadReplica1, non puoi configurare ReadReplica1 affinché si replichi a sua volta su MySourceDBInstance.

Per RDS per MariaDB e RDS per MySQL e per alcune versioni di RDS per PostgreSQL, è possibile creare una replica di lettura a partire da una replica di lettura esistente. Ad esempio, puoi creare una nuova replica di lettura ReadReplica2 dalla replica esistente ReadReplica1. Nel caso di RDS per Oracle e RDS per SQL Server, non è possibile creare una replica di lettura a partire da una replica di lettura esistente.

Considerazioni su quando eliminare le repliche

RDS non supporta la scalabilità automatica delle repliche lette. Pertanto, RDS non aumenta il numero di repliche quando la domanda né aumenta o diminuisce il numero di repliche quando la domanda diminuisce. Se non hai più bisogno di repliche di lettura, eliminale manualmente utilizzando gli stessi meccanismi per l'eliminazione di un'istanza DB. Se elimini un'istanza DB di origine senza eliminarne le repliche di lettura nella stessa Regione AWS, ogni replica viene promossa a istanza DB autonoma.

Per informazioni sulla creazione di un'istanza database, consulta Eliminazione di un'istanza database. Per informazioni sulla promozione della replica in lettura, vedere Promozione di una replica di lettura a istanza database standalone. Per informazioni relative all'eliminazione dell'istanza DB di origine per una replica di lettura interregionale, consulta. Considerazioni relative alla replica tra regioni