aurora_replica_status - Amazon Aurora

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

aurora_replica_status

Visualizza lo stato di tutti i nodi del lettore Aurora PostgreSQL.

Sintassi

aurora_replica_status()

Argomenti

Nessuno

Tipo restituito

Record SETOF avente le seguenti colonne:

  • server_id: ID dell’istanza database (identificatore).

  • session_id: un identificatore univoco per la sessione corrente, restituito per l’istanza primaria e le istanze di lettura nel modo seguente:

    • Per l'istanza primaria, il session_id è sempre `MASTER_SESSION_ID’.

    • Per le istanze di lettura, il session_id è sempre l'UUID (universally unique identifier, identificatore univoco universale) dell'istanza di lettura.

  • durable_lsn: numero di sequenza di log (log sequence number, LSN) archiviato nello storage.

    • Per il volume primario, l'LSN (VDL) durevole del primario attualmente in uso.

    • Per tutti i volumi secondari, il VDL del primario a cui è stato applicato correttamente il secondario.

    Nota

    Il numero di sequenza di log (LSN) è un numero sequenziale univoco che identifica un record nel log delle transazioni del database. Gli LSN sono ordinati in modo tale che quelli più grandi rappresentino una transizione successiva.

  • highest_lsn_rcvd: l'LSN più alto (più recente) che l'istanza database ha ricevuto dall'istanza database di scrittura.

  • current_read_lsn: l'LSN della snapshot più recente applicato a tutte le operazioni di lettura.

  • cur_replay_latency_in_usec: tempo previsto in millisecondi per riprodurre il log sul secondario.

  • active_txns: numero di transazioni attualmente attive.

  • is_current: non utilizzato.

  • last_transport_error: codice di errore dell'ultima replica.

  • last_error_timestamp: timestamp dell'ultimo errore di replica.

  • last_update_timestamp: timestamp dell'ultimo aggiornamento allo stato della replica. Da Aurora PostgreSQL versione 13.9, il valore last_update_timestamp per l'istanza database a cui si è connessi è impostato su NULL.

  • feedback_xmin: feedback_xmin della replica in standby a caldo. L'ID della transazione attiva più basso (meno recente) utilizzato dall'istanza database.

  • feedback_epoch: l'epoca utilizzata dall'istanza database quando genera informazioni standby a caldo.

  • replica_lag_in_msec: ritardo dell'istanza di lettura rispetto a quella di scrittura misurato in millisecondi.

  • log_stream_speed_in_kib_per_second: la velocità effettiva del flusso di log in kilobyte al secondo.

  • log_buffer_sequence_number: il numero di sequenza del buffer di registro.

  • oldest_read_view_trx_id: non utilizzato.

  • oldest_read_view_lsn: l'LSN più vecchio utilizzato dall'istanza database per le operazioni di lettura dallo storage.

  • pending_read_ios: le letture di pagina in sospeso sulla replica.

  • read_ios: il numero totale di letture di pagina sulla replica.

  • iops: non utilizzato.

  • cpu: CPU utilizzata dal processo di replica. Si noti che questo valore è relativo all'utilizzo della CPU da parte del processo, non dell'istanza. Per informazioni sull'utilizzo della CPU da parte dell'istanza, consulta Parametri a livello di istanza per Amazon Aurora.

Note per l'utilizzo

La funzione aurora_replica_status restituisce i valori del gestore di stato della replica di un cluster database Aurora PostgreSQL. Utilizza questa funzione per ottenere informazioni sullo stato della replica sul cluster database Aurora PostgreSQL, inclusi i parametri per tutte le istanze database nel cluster database Aurora. Ad esempio, puoi eseguire le operazioni seguenti:

  • Ottenere informazioni sul tipo di istanza (di scrittura, di lettura) nel cluster database Aurora PostgreSQL. Per ottenere queste informazioni, controlla i valori contenuti nelle colonne seguenti:

    • server_id: contiene il nome dell'istanza specificato durante la sua creazione. In alcuni casi, ad esempio per l'istanza primaria (di scrittura), il nome viene generato automaticamente aggiungendo -instance-1 al nome creato per il cluster database Aurora PostgreSQL.

    • session_id: il campo session_id indica se l'istanza è di lettura o di scrittura. Per un'istanza di scrittura, session_id è sempre impostato su "MASTER_SESSION_ID". Per un'istanza di lettura, session_id è impostato sull'UUID del lettore specifico.

  • Diagnostica dei problemi comuni correlati alle repliche, come il ritardo di replica. Il ritardo di replica indica il ritardo in millisecondi della cache di pagina di un'istanza di lettura rispetto a quella dell'istanza di scrittura. Questo ritardo si verifica perché i cluster Aurora utilizzano la replica asincrona, come descritto in Replica con Amazon Aurora. Nella colonna replica_lag_in_msec sono mostrati i risultati restituiti da questa funzione. Il ritardo può verificarsi anche quando una query viene annullata a causa di conflitti con il ripristino su un server in standby. È possibile verificare se il ritardo di replica è causato o meno da questo conflitto controllando pg_stat_database_conflicts(). Per ulteriori informazioni, consulta Raccolta di statistiche nella Documentazione di PostgreSQL. Per ulteriori informazioni sulla disponibilità elevata e la replica, consulta Domande frequenti su Amazon Aurora.

    Amazon CloudWatch archivia i risultati di replica_lag_in_msec nel tempo, come parametro AuroraReplicaLag. Per ulteriori informazioni sull’utilizzo dei parametri CloudWatch per Aurora, consulta Monitoraggio dei parametri di Amazon Aurora con Amazon CloudWatch

Per ulteriori informazioni sulla risoluzione dei problemi relativi alla lettura e al riavvio di Aurora, consulta Perché la mia replica Amazon Aurora è in ritardo e si è riavviata? nel Centro AWS Support.

Esempi

L'esempio seguente mostra come ottenere lo stato di replica di tutte le istanze in un cluster database Aurora PostgreSQL:

=> SELECT * FROM aurora_replica_status();

L'esempio seguente mostra l'istanza di lettura nel cluster database docs-lab-apg-main Aurora PostgreSQL:

=> SELECT server_id, CASE WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer' ELSE 'reader' END AS instance_role FROM aurora_replica_status() WHERE session_id = 'MASTER_SESSION_ID'; server_id | instance_role ------------------------+--------------- db-119-001-instance-01 | writer

Nell'esempio seguente sono elencate tutte le istanze di lettura in un cluster:

=> SELECT server_id, CASE WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer' ELSE 'reader' END AS instance_role FROM aurora_replica_status() WHERE session_id <> 'MASTER_SESSION_ID'; server_id | instance_role ------------------------+--------------- db-119-001-instance-02 | reader db-119-001-instance-03 | reader db-119-001-instance-04 | reader db-119-001-instance-05 | reader (4 rows)

Nell'esempio seguente sono elencate tutte le istanze, il ritardo di ognuna di esse rispetto all'istanza di scrittura e quanto tempo è trascorso dall'ultimo aggiornamento:

=> SELECT server_id, CASE WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer' ELSE 'reader' END AS instance_role, replica_lag_in_msec AS replica_lag_ms, round(extract (epoch FROM (SELECT age(clock_timestamp(), last_update_timestamp))) * 1000) AS last_update_age_ms FROM aurora_replica_status() ORDER BY replica_lag_in_msec NULLS FIRST; server_id | instance_role | replica_lag_ms | last_update_age_ms ------------------------+---------------+----------------+-------------------- db-124-001-instance-03 | writer | [NULL] | 1756 db-124-001-instance-01 | reader | 13 | 1756 db-124-001-instance-02 | reader | 13 | 1756 (3 rows)