Risolvere i problemi di accesso di sola lettura ad Azure Cosmos DB for PostgreSQL
SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata sull'estensione di database Citus per PostgreSQL)
PostgreSQL non può essere eseguito in un computer senza spazio su disco libero. Per mantenere l'accesso ai server PostgreSQL, è necessario impedire l'esaurimento dello spazio su disco.
In Azure Cosmos DB for PostgreSQL, i nodi vengono impostati su uno stato di sola lettura (RO) quando il disco è quasi pieno. Impedisce alle attività di scrittura di continuare a riempire il disco e mantiene il nodo disponibile per le operazioni di lettura. Durante lo stato di sola lettura, è possibile adottare misure per liberare più spazio su disco.
Importante
Anche nello stato di sola lettura, le transazioni in movimento possono continuare a scrivere nel database riducendo così ulteriore spazio di archiviazione disponibile. Se le dimensioni di archiviazione disponibili continuano a diminuire dopo che il nodo è stato impostato su sola lettura, tutte le sessioni esistenti verranno disconnesse e le transazioni di cui non è stato eseguito il commit verranno sottoposte a rollback.
Modi per ripristinare l'accesso in scrittura
Se uno stato di un nodo è stato impostato sulla sola lettura, è necessario liberare spazio su disco per sbloccare le operazioni di scrittura nel nodo. L'accesso in scrittura viene riabilitato quando il nodo ha più di 16 GiB di spazio di archiviazione disponibile sui nodi con 256 GiB o più del 7% dello spazio di archiviazione disponibile nei nodi con 128 GiB o spazio di archiviazione più piccolo.
Sul nodo coordinatore
- Aumentare le dimensioni di archiviazione sul nodo coordinatore e/o
- Distribuire tabelle locali sui nodi di lavoro o eliminare i dati. È necessario eseguire
SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE
dopo aver eseguito la connessione al database e prima di eseguire altri comandi.
Su un nodo di lavoro
- Aumentare le dimensioni di archiviazione sui nodi di lavoro e/o
- Ribilanciare i dati su altri nodi o eliminare alcuni dati.
- È necessario impostare temporaneamente il nodo di lavoro come lettura/scrittura. È possibile connettersi direttamente ai nodi di lavoro e usare
SET SESSION CHARACTERISTICS
come descritto in precedenza per il nodo coordinatore.
- È necessario impostare temporaneamente il nodo di lavoro come lettura/scrittura. È possibile connettersi direttamente ai nodi di lavoro e usare
Prevenzione
È possibile configurare un avviso per ricevere una notifica quando l'archiviazione del server sta per raggiungere la soglia. In questo modo, è possibile agire in anticipo per evitare di entrare nello stato di sola lettura. Per altre informazioni, vedere la documentazione sugli avvisi consigliati.
Passaggi successivi
- Configurare gli avvisi di Azure per ricevere una notifica anticipata in modo da poter intervenire prima di raggiungere lo stato di sola lettura.
- Informazioni sulla documentazione per l'utilizzo del disco in PostgreSQL.
- Informazioni sulla documentazione per le caratteristiche di sessione in PostgreSQL.