Leggere le repliche nel database di Azure per PostgreSQL-server singoloRead replicas in Azure Database for PostgreSQL - Single Server

La funzionalità relativa alle repliche in lettura consente di replicare i dati dal server del Database di Azure per PostgreSQL ad un server di sola lettura.The read replica feature allows you to replicate data from an Azure Database for PostgreSQL server to a read-only server. È possibile creare fino a un massimo di cinque repliche da un server master.You can replicate from the master server to up to five replicas. Le repliche in lettura vengono aggiornate in modo asincrono tramite la tecnologia di replica nativa del motore PostgreSQL.Replicas are updated asynchronously with the PostgreSQL engine native replication technology.

Le repliche sono nuovi server da gestire in modo simile ai normali server del Database di Azure per PostgreSQL.Replicas are new servers that you manage similar to regular Azure Database for PostgreSQL servers. Per ogni replica in lettura, viene addebitato il costo delle risorse di calcolo e di archiviazione sottoposte a provisioning, espresse rispettivamente in vCore e GB/mese.For each read replica, you're billed for the provisioned compute in vCores and storage in GB/ month.

Informazioni su come creare e gestire le repliche.Learn how to create and manage replicas.

Quando usare una replica in letturaWhen to use a read replica

La funzionalità di replica in lettura aiuta a migliorare prestazioni e scalabilità dei carichi di lavoro con utilizzo elevato della lettura.The read replica feature helps to improve the performance and scale of read-intensive workloads. I carichi di lavoro di lettura possono essere isolati alle repliche, mentre i carichi di lavoro di scrittura possono essere indirizzati al master.Read workloads can be isolated to the replicas, while write workloads can be directed to the master.

Uno scenario comune consiste nel fare in modo che i carichi di lavoro BI e analitici usino le repliche in lettura come origine dati per la creazione di report.A common scenario is to have BI and analytical workloads use the read replica as the data source for reporting.

Poiché le repliche sono di sola lettura, non riducono direttamente gli oneri per la capacità di scrittura sul master.Because replicas are read-only, they don't directly reduce write-capacity burdens on the master. Questa funzionalità non è destinata a carichi di lavoro con utilizzo elevato di scrittura.This feature isn't targeted at write-intensive workloads.

Questa funzionalità di replica in lettura si avvale della replica asincrona di PostgreSQL.The read replica feature uses PostgreSQL asynchronous replication. La funzionalità non è concepita per scenari di replica sincrona.The feature isn't meant for synchronous replication scenarios. Esisterà un ritardo misurabile significativo tra il master e la replica.There will be a measurable delay between the master and the replica. I dati nella replica diventano alla fine coerenti con i dati nel master.The data on the replica eventually becomes consistent with the data on the master. Usare questa funzionalità per i carichi di lavoro in grado di sostenere questo ritardo.Use this feature for workloads that can accommodate this delay.

Replica tra areeCross-region replication

È possibile creare una replica di lettura in un'area diversa dal server master.You can create a read replica in a different region from your master server. La replica tra aree può essere utile per scenari come la pianificazione del ripristino di emergenza o per avvicinare i dati agli utenti.Cross-region replication can be helpful for scenarios like disaster recovery planning or bringing data closer to your users.

È possibile avere un server master in qualsiasi area di database di Azure per PostgreSQL.You can have a master server in any Azure Database for PostgreSQL region. Un server master può avere una replica nell'area abbinata o nelle aree di replica universale.A master server can have a replica in its paired region or the universal replica regions. L'immagine seguente mostra le aree di replica disponibili a seconda dell'area master.The picture below shows which replica regions are available depending on your master region.

leggere le aree di replica Read replica regions

Aree di replica universaleUniversal replica regions

È sempre possibile creare una replica di lettura in una delle aree seguenti, indipendentemente dalla posizione in cui si trova il server master.You can always create a read replica in any of the following regions, regardless of where your master server is located. Queste sono le aree di replica universale:These are the universal replica regions:

Australia orientale, Australia sudorientale, Stati Uniti centrali, Asia orientale, Stati Uniti orientali, Stati Uniti orientali 2, Giappone orientale, Giappone occidentale, Corea centrale, Corea meridionale, Stati Uniti centro-settentrionali, Europa settentrionale, Stati Uniti centro-meridionali, Asia sudorientale, Regno Unito meridionale, Regno Unito occidentale, Europa occidentale, Stati Uniti occidentali.Australia East, Australia Southeast, Central US, East Asia, East US, East US 2, Japan East, Japan West, Korea Central, Korea South, North Central US, North Europe, South Central US, Southeast Asia, UK South, UK West, West Europe, West US.

* Stati Uniti occidentali 2 è temporaneamente non disponibile come percorso di replica tra aree.*West US 2 is temporarily unavailable as a cross region replica location.

Aree abbinatePaired regions

Oltre alle aree di replica universale, è possibile creare una replica di lettura nell'area abbinata di Azure del server master.In addition to the universal replica regions, you can create a read replica in the Azure paired region of your master server. Se non si conosce la coppia dell'area, è possibile ottenere altre informazioni nell' articolo sulle aree abbinate di Azure.If you don't know your region's pair, you can learn more from the Azure Paired Regions article.

Se si usano repliche tra aree per la pianificazione del ripristino di emergenza, è consigliabile creare la replica nell'area abbinata anziché in una delle altre aree.If you are using cross-region replicas for disaster recovery planning, we recommend you create the replica in the paired region instead of one of the other regions. Le aree abbinate evitano gli aggiornamenti simultanei e assegnano priorità all'isolamento fisico e alla residenza dei dati.Paired regions avoid simultaneous updates and prioritize physical isolation and data residency.

Ci sono alcune limitazioni da considerare:There are limitations to consider:

  • Disponibilità a livello di area: database di Azure per PostgreSQL è disponibile negli Stati Uniti occidentali 2, Francia centrale, Emirati Arabi Uniti settentrionali e Germania centrale.Regional availability: Azure Database for PostgreSQL is available in West US 2, France Central, UAE North, and Germany Central. Tuttavia, le aree abbinate non sono disponibili.However, their paired regions are not available.

  • Coppie Uni-Directional: alcune aree di Azure sono abbinate solo in una direzione.Uni-directional pairs: Some Azure regions are paired in one direction only. Queste aree includono l'India occidentale, Brasile meridionale.These regions include West India, Brazil South. Ciò significa che un server master nell'India occidentale può creare una replica nell'India meridionale.This means that a master server in West India can create a replica in South India. Tuttavia, un server master nell'India meridionale non è in grado di creare una replica nell'India occidentale.However, a master server in South India cannot create a replica in West India. Questo è dovuto al fatto che l'area secondaria dell'India occidentale è India meridionale, ma l'area secondaria dell'India meridionale non è India occidentale.This is because West India's secondary region is South India, but South India's secondary region is not West India.

Creare una replicaCreate a replica

Quando si avvia il flusso di lavoro per la creazione della replica, viene creato un server di Database di Azure per PostgreSQL vuoto.When you start the create replica workflow, a blank Azure Database for PostgreSQL server is created. Il nuovo server viene riempito con i dati presenti nel server master.The new server is filled with the data that was on the master server. Il tempo necessario per la creazione dipende dalla quantità di dati nel master e dal tempo trascorso dall'ultimo backup completo settimanale.The creation time depends on the amount of data on the master and the time since the last weekly full backup. Il tempo può variare da pochi minuti a diverse ore.The time can range from a few minutes to several hours.

Ogni replica è abilitata per l' aumento automaticodell'archiviazione.Every replica is enabled for storage auto-grow. La funzionalità di aumento automatico consente alla replica di rimanere al passo con i dati replicati e impedire un'interruzioni della replica causata da errori di archiviazione indesiderati.The auto-grow feature allows the replica to keep up with the data replicated to it, and prevent a break in replication caused by out of storage errors.

La funzionalità di replica in lettura usa la replica fisica di PostgreSQL e non la replica logica.The read replica feature uses PostgreSQL physical replication, not logical replication. Lo streaming della replica usando gli slot di replica è la modalità operativa predefinita.Streaming replication by using replication slots is the default operation mode. Se necessario, viene usato il log shipping per mettersi in pari.When necessary, log shipping is used to catch up.

Informazioni su come creare una replica di lettura nel portale di Azure.Learn how to create a read replica in the Azure portal.

Connessione a una replicaConnect to a replica

Quando si crea una replica, questa non eredita le regole del firewall o l'endpoint del servizio rete virtuale del server master.When you create a replica, it doesn't inherit the firewall rules or VNet service endpoint of the master server. Queste regole devono essere configurate in modo indipendente per la replica.These rules must be set up independently for the replica.

La replica eredita l'account amministratore dal server master.The replica inherits the admin account from the master server. Tutti gli account utente nel server master vengono replicati nelle repliche in lettura.All user accounts on the master server are replicated to the read replicas. È possibile connettersi a una replica in lettura solo tramite gli account utente che sono disponibili nel server master.You can only connect to a read replica by using the user accounts that are available on the master server.

È possibile connettersi alla replica usando il relativo nome host e un account utente valido, come si farebbe per un normale server di Database di Azure per PostgreSQL.You can connect to the replica by using its hostname and a valid user account, as you would on a regular Azure Database for PostgreSQL server. Per un server denominato My replica con il nome utente amministratore amministratore, è possibile connettersi alla replica usando PSQL:For a server named my replica with the admin username myadmin, you can connect to the replica by using psql:

psql -h myreplica.postgres.database.azure.com -U myadmin@myreplica -d postgres

Quando richiesto, immettere la password per l'account dell'utente.At the prompt, enter the password for the user account.

Monitorare la replicaMonitor replication

Database di Azure per PostgreSQL offre due metriche per il monitoraggio della replica.Azure Database for PostgreSQL provides two metrics for monitoring replication. Le due metriche sono il ritardo massimo tra repliche e ritardo di replica.The two metrics are Max Lag Across Replicas and Replica Lag. Per informazioni su come visualizzare queste metriche, vedere la sezione monitorare una replica dell'articolo sulle procedure di lettura della replica.To learn how to view these metrics, see the Monitor a replica section of the read replica how-to article.

La metrica Max lag tra repliche indica il ritardo in byte tra il master e la replica più in ritardo.The Max Lag Across Replicas metric shows the lag in bytes between the master and the most-lagging replica. Questa metrica è disponibile solo nel server master.This metric is available on the master server only.

La metrica ritardo di replica indica il tempo trascorso dall'ultima transazione rieseguita.The Replica Lag metric shows the time since the last replayed transaction. Se non sono presenti transazioni sul server master, la metrica riflette questo intervallo di tempo.If there are no transactions occurring on your master server, the metric reflects this time lag. Questa metrica è disponibile solo per i server di replica.This metric is available for replica servers only. Il ritardo di replica viene calcolato dalla vista pg_stat_wal_receiver:Replica Lag is calculated from the pg_stat_wal_receiver view:

EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp());

Impostare un avviso per essere informati quando il ritardo di replica raggiunge un valore che non è accettabile per il carico di lavoro.Set an alert to inform you when the replica lag reaches a value that isn’t acceptable for your workload.

Per altre informazioni dettagliate, eseguire una query direttamente sul server master per ottenere il ritardo di replica in byte per tutte le repliche.For additional insight, query the master server directly to get the replication lag in bytes on all replicas.

In PostgreSQL versione 10:In PostgreSQL version 10:

select pg_wal_lsn_diff(pg_current_wal_lsn(), stat.replay_lsn) 
AS total_log_delay_in_bytes from pg_stat_replication;

In PostgreSQL versione 9.6 e precedenti:In PostgreSQL version 9.6 and earlier:

select pg_xlog_location_diff(pg_current_xlog_location(), stat.replay_location) 
AS total_log_delay_in_bytes from pg_stat_replication;

Nota

In caso di riavvio di un server master o di una replica in lettura, il tempo necessario per il riavvio e per mettersi in pari sarà indicato nella metrica Replica Lag (Ritardo della replica).If a master server or read replica restarts, the time it takes to restart and catch up is reflected in the Replica Lag metric.

Arrestare la replicaStop replication

È possibile scegliere di arrestare la replica tra un master e una replica.You can stop replication between a master and a replica. L'interruzione dell'operazione causa il riavvio della replica e la rimozione delle impostazioni di replica.The stop action causes the replica to restart and to remove its replication settings. Dopo l'arresto della replica tra un server master e una replica in lettura, la replica diventa un server autonomo.After replication is stopped between a master server and a read replica, the replica becomes a standalone server. I dati nel server autonomo sono i dati che erano disponibili nella replica al momento dell'esecuzione del comando di arresto della replica.The data in the standalone server is the data that was available on the replica at the time the stop replication command was started. Il server autonomo non è aggiornato con il server master.The standalone server doesn't catch up with the master server.

Importante

Il server autonomo non può essere di nuovo impostato come replica.The standalone server can't be made into a replica again. Prima di arrestare la replica in una replica in lettura, assicurarsi che la replica abbia tutti i dati necessari.Before you stop replication on a read replica, ensure the replica has all the data that you require.

Quando si arresta la replica, la replica perde tutti i collegamenti al master precedente e ad altre repliche.When you stop replication, the replica loses all links to its previous master and other replicas.

Informazioni su come arrestare la replica in una replica.Learn how to stop replication to a replica.

FailoverFailover

Non esiste un failover automatico tra i server master e di replica.There is no automated failover between master and replica servers.

Poiché la replica è asincrona, si verifica un ritardo tra il database master e la replica.Since replication is asynchronous, there is lag between the master and the replica. La quantità di ritardo può essere influenzata da una serie di fattori quali la quantità di carico di lavoro in esecuzione nel server master e la latenza tra i Data Center.The amount of lag can be influenced by a number of factors like how heavy the workload running on the master server is and the latency between data centers. Nella maggior parte dei casi, il ritardo di replica è compreso tra pochi secondi e un paio di minuti.In most cases, replica lag ranges between a few seconds to a couple minutes. È possibile tenere traccia dell'effettivo ritardo di replica usando l' intervallo di replicametrica, disponibile per ogni replica.You can track your actual replication lag using the metric Replica Lag, which is available for each replica. Questa metrica indica il tempo trascorso dall'ultima transazione riprodotta.This metric shows the time since the last replayed transaction. Si consiglia di identificare il ritardo medio osservando il ritardo della replica in un periodo di tempo.We recommend that you identify what your average lag is by observing your replica lag over a period of time. È possibile impostare un avviso per il ritardo di replica, in modo che se non rientra nell'intervallo previsto, è possibile intervenire.You can set an alert on replica lag, so that if it goes outside your expected range, you can take action.

Suggerimento

Se si esegue il failover alla replica, il ritardo nel momento in cui si scollega la replica dal database master indicherà la quantità di dati persi.If you failover to the replica, the lag at the time you delink the replica from the master will indicate how much data is lost.

Dopo aver deciso di voler eseguire il failover a una replica,Once you have decided you want to failover to a replica,

  1. Arrestare la replica nella replicaStop replication to the replica
    Questo passaggio è necessario per consentire al server di replica di accettare le Scritture.This step is necessary to make the replica server able to accept writes. Come parte di questo processo, il server di replica verrà riavviato e verrà decollegato dal master.As part of this process, the replica server will restart and be delinked from the master. Una volta avviata l'arresto della replica, il completamento del processo back-end richiede in genere circa 2 minuti.Once you initiate stop replication, the backend process typically takes about 2 minutes to complete. Per comprendere le implicazioni di questa azione, vedere la sezione arrestare la replica di questo articolo.See the stop replication section of this article to understand the implications of this action.

  2. Puntare l'applicazione alla replica (precedente)Point your application to the (former) replica
    Ogni server dispone di una stringa di connessione univoca.Each server has a unique connection string. Aggiornare l'applicazione in modo che punti alla replica (precedente) invece che al database master.Update your application to point to the (former) replica instead of the master.

Una volta che l'applicazione ha elaborato correttamente le operazioni di lettura e scrittura, il failover è stato completato.Once your application is successfully processing reads and writes, you have completed the failover. La quantità di tempo di inattività di cui l'applicazione dipenderà quando si rileva un problema e si completano i passaggi 1 e 2 precedenti.The amount of downtime your application experiences will depend on when you detect an issue and complete steps 1 and 2 above.

ConsiderazioniConsiderations

Questa sezione riepiloga le considerazioni sulla funzionalità di replica in lettura.This section summarizes considerations about the read replica feature.

PrerequisitiPrerequisites

Prima di creare una replica in lettura, il azure.replication_supportparametro deve essere impostato su REPLICA nel server master.Before you create a read replica, the azure.replication_support parameter must be set to REPLICA on the master server. Per rendere effettive eventuali modifiche di questo parametro è necessario riavviare il server.When this parameter is changed, a server restart is required for the change to take effect. Il parametro azure.replication_support si applica solo ai livelli Utilizzo generico e Con ottimizzazione per la memoria.The azure.replication_support parameter applies to the General Purpose and Memory Optimized tiers only.

Nuove replicheNew replicas

Una replica in lettura viene creata come nuovo server di Database di Azure per PostgreSQL.A read replica is created as a new Azure Database for PostgreSQL server. Un server esistente non può essere impostato come replica.An existing server can't be made into a replica. Non è possibile creare una replica di un'altra replica in lettura.You can't create a replica of another read replica.

Configurazione della replicaReplica configuration

Una replica viene creata usando le stesse impostazioni di calcolo e di archiviazione del database master.A replica is created by using the same compute and storage settings as the master. Dopo aver creato una replica, è possibile modificare diverse impostazioni in modo indipendente dal server master: la generazione di calcolo, i vCore, l'archiviazione e il periodo di conservazione dei backup.After a replica is created, several settings can be changed independently from the master server: compute generation, vCores, storage, and backup retention period. È anche possibile modificare in modo indipendente il piano tariffario, tranne da o verso il livello Basic.The pricing tier can also be changed independently, except to or from the Basic tier.

Importante

Prima che un'impostazione master venga aggiornata a un nuovo valore, aggiornare la configurazione della replica a un valore uguale o maggiore.Before a master setting is updated to a new value, update the replica configuration to an equal or greater value. Questa azione garantisce che le repliche siano sempre aggiornate con le modifiche apportate al master.This action ensures the replica can keep up with any changes made to the master.

PostgreSQL richiede che il valore del parametromax_connections sulla replica in lettura sia maggiore o uguale a quello del master; in caso contrario, la replica non si avvia.PostgreSQL requires the value of the max_connections parameter on the read replica to be greater than or equal to the master value; otherwise, the replica won't start. Nel Database di Azure per PostgreSQL, il valore del parametro max_connections è basato sullo SKU.In Azure Database for PostgreSQL, the max_connections parameter value is based on the SKU. Per altre informazioni, vedere Limiti in Database di Azure per PostgreSQL.For more information, see Limits in Azure Database for PostgreSQL.

Se si tenta di aggiornare i valori del server descritti sopra, ma non si rispettano i limiti, viene visualizzato un errore.If you try to update the server values described above, but don't adhere to the limits, you receive an error.

Le regole del firewall, le regole della rete virtuale e le impostazioni dei parametri non vengono ereditate dal server master alla replica quando la replica viene creata o successivamente.Firewall rules, virtual network rules, and parameter settings are not inherited from the master server to the replica when the replica is created or afterwards.

max_prepared_transactionsmax_prepared_transactions

PostgreSQL richiede che il valore del parametro max_prepared_transactions nella replica di lettura sia maggiore o uguale al valore master; in caso contrario, la replica non verrà avviata.PostgreSQL requires the value of the max_prepared_transactions parameter on the read replica to be greater than or equal to the master value; otherwise, the replica won't start. Se si desidera modificare max_prepared_transactions nel database master, modificarlo prima nelle repliche.If you want to change max_prepared_transactions on the master, first change it on the replicas.

Repliche arrestateStopped replicas

Se si arresta la replica tra un server master e una replica in lettura, la replica verrà riavviata per poter applicare tale modifica.If you stop replication between a master server and a read replica, the replica restarts to apply the change. La replica arrestata diventa un server autonomo che supporta sia la lettura che la scrittura.The stopped replica becomes a standalone server that accepts both reads and writes. Il server autonomo non può essere di nuovo impostato come replica.The standalone server can't be made into a replica again.

Master eliminato e server autonomiDeleted master and standalone servers

Quando viene eliminato un server master, tutte le relative repliche in lettura diventano server autonomi.When a master server is deleted, all of its read replicas become standalone servers. Le repliche vengono riavviate in modo da riflettere questa modifica.The replicas are restarted to reflect this change.

Passaggi successiviNext steps