Hoppa till innehållet
Stackship-dokumentation English

PostgreSQLAnvändareMaskinöversatt

Hantera ett kluster

Starta, stoppa och starta om ett PostgreSQL-kluster, ändra dess beräkningsplan, instanser och lagring, ställ in poolning och PostgreSQL-parametrar, uppgradera huvudversionen och ta bort det.

Kräver: postgrescluster/write

Allt på den här sidan kräver postgrescluster/write på klustret — rollerna Owner, Contributor och Databases Operator har den — utom där ett avsnitt säger något annat. Varje ändring, utom stsh pg scale, startar en operation som klustrets flik Operations följer steg för steg; se Operationer.

Starta, stoppa och starta om

Knapparna finns i klustrets sidhuvud:

  • Stoppa och Starta om — medan klustret är Running.
  • Starta — medan det är Stopped.

Stoppa stänger ner alla instanser och behåller volymerna och konfigurationen; inget kan ansluta förrän du startar det igen. Ändrar du konfigurationen för ett stoppat kluster förblir det stoppat. Starta tar tillbaka instanserna; med flera instanser kan det ta några minuter.

Starta om startar om instanserna en i taget, replikerna först och den primära sist, så ett kluster med fler än en instans fortsätter att svara; anslutningar till den primära bryts en gång. En ensam instans är kortvarigt otillgänglig. En instans som inte kan bli klar som den är — som har fastnat på en avbild den inte kan hämta eller i en kraschloop — skapas om i stället för att väntas in.

bash
stsh pg stop orders-db
stsh pg start orders-db
stsh pg restart orders-db

Byt beräkningsplan

  1. Välj en annan Beräkningsplan på fliken Konfiguration, avsnittet Körmiljö. Planer som boundaryn inte tillåter, eller som ingen nod kan köra, visas men kan inte väljas.
  2. Välj Spara. Byta beräkningsplan? visar planen du lämnar och den du byter till, och vad det kostar: med en ensam instans "Att tillämpa detta startar om databasen. Instansen blir kortvarigt otillgänglig."; med fler startas instanserna om i tur och ordning och anslutningar till den primära bryts en gång.
  3. Välj Byt plan.

Ett planbyte sätter varje instans CPU och minne och antalet instanser. Det rör inte datavolymen — låt den växa för sig, se Utöka lagringen — och lägger bara till en WAL-volym när klustret saknar en och den nya planen har en. Anslutningspoolning och PostgreSQL-parametrarna förblir som de är; se Härledda parametrar.

bash
stsh pg update orders-db --set computePlan=large

Svaret på en uppdatering anger vad den kostar i restartImpact — none, restart eller rolling — och listar i warnings de delar av ändringen som plattformen inte kunde genomföra, och meddelandet om en uppgradering av huvudversionen.

Justera resurser individuellt

På fliken Konfiguration, avsnittet Databas, har Avancerade resursinställningar fälten CPU-begäran, CPU-gräns, Minnesbegäran och Minnesgräns för varje instans. En gräns måste vara minst lika stor som sin begäran. Portalen tar minne i hela GB; genom API:et kan det vara så lågt som 256Mi. PostgreSQL dimensionerar sitt minne efter gränsen, så håll minnesbegäran lika med gränsen: under den kan instansen avhysas just när den använder det minne den konfigurerats för, och avsnittet säger det.

Värden som inte motsvarar någon plan gör att klustret hamnar på Custom, som visas som Custom — … under Beräkningsplan. På Custom kan Instanser i Körmiljö redigeras. Väljer du en plan igen ersätts de individuella värdena med planens.

Ändra antalet instanser

Medan klustret följer en plan bestäms Instanser av planen: byt plan, eller justera resurserna individuellt först. Med CLI:t, som kräver postgrescluster/scale i stället för postgrescluster/write:

bash
stsh pg scale orders-db --replicas 3
stsh pg scale orders-db                 # visar nuvarande antal

Ett antal mellan 1 och 10 tas emot, och ett som skiljer sig från planens gör att klustret hamnar på Custom. Fler instanser avvisas när lagringsleverantören inte har plats för deras volymer. För att ta ner klustret till inga instanser stoppar du det.

Utöka lagringen

Höj Lagringsstorlek på fliken Konfiguration, avsnittet Databas, och välj Spara. Volymerna växer på plats; databasen fortsätter att köra. Lagring kan bara ökas: portalen avvisar en mindre storlek, och CLI:t och API:et behåller den nuvarande storleken och säger det i warnings.

Kan lagringsleverantören inte utöka volymerna behåller plattformen den nuvarande storleken, genomför resten av ändringen och säger varför. Så länge en tidigare utökning inte är klar tillämpas ingen ny storlek, och klustret tillämpar inte heller någon annan ändring förrän volymerna har vuxit — se Vad skälen betyder. Lagringsklassen kan inte ändras.

bash
stsh pg update orders-db --set storageSize=50Gi

Anslutningspoolning

På fliken Konfiguration, avsnittet Databas, finns Aktivera PgBouncer, PgBouncer-instanser och Poolningsläge under Anslutningspoolning (PgBouncer). Medan klustret följer en beräkningsplan är reglaget skrivskyddat, och dess beskrivning lyder "Aktiverad av beräkningsplanen <plan>" oavsett läge; på Custom kan det ändras.

Med CLI:t eller API:t kan poolningen ändras när som helst:

bash
stsh pg update orders-db --set pgBouncerEnabled=true --set pgBouncerPoolMode=transaction --set pgBouncerInstances=2
stsh pg update orders-db --set pgBouncerEnabled=false

Stänger du av poolningen tas poolern bort. Om poolern inte kan sättas upp eller tas bort genomförs resten av ändringen ändå, och en varning säger det. Hur program når poolern beskrivs i Via poolern.

Ange PostgreSQL-parametrar

Portalen redigerar inte PostgreSQL:s parametrar; det gör CLI:t och API:t, via postgresqlParameters:

bash
stsh pg update orders-db --set postgresqlParameters='{"work_mem":"16MB","log_min_duration_statement":"500ms"}'

Dina värden läggs ovanpå dem som planen härlett, parameter för parameter; sätt en parameter till null för att ta bort ditt värde. Plattformen avvisar ett värde som PostgreSQL skulle vägra vid start, och en ändring av en parameter som bara får effekt vid omstart — till exempel max_connections eller shared_buffers — startar om instanserna. Reglerna finns i Parametrar du kan ange.

Övervakning och säkerhetskopiering

Övervakning & säkerhetskopiering på fliken Konfiguration, avsnittet Databas, innehåller Aktivera övervakning och inställningarna för säkerhetskopiering. Hur du slår på och av säkerhetskopiering beskrivs i Slå på säkerhetskopiering.

Uppgradera huvudversionen

Portalen visar PostgreSQL-version som låst. CLI:t och API:t tar emot en högre huvudversion, upp till 17:

bash
stsh pg update orders-db --set postgresVersion=17

Varning

En versionsuppgradering stoppar alla instanser, den primära inräknad, medan den pågår, och den går bara åt ett håll: klustret kan inte flyttas tillbaka till den gamla versionen. Ta en ögonblicksbild först — se Ta och återställ ögonblicksbilder.

Revisioner

Att se historiken kräver bara postgrescluster/read. Fliken Revisioner listar varje ändring av klustrets konfiguration, vem som gjorde den och — med Visa ändringar — vad som ändrades. PostgreSQL-kluster erbjuder ingen återställning därifrån; gör ändringen igen i stället.

Ta bort ett kluster

För att ta bort behöver du postgrescluster/delete, som ingår i postgrescluster/write: rollerna Owner, Contributor och Databases Operator har den. Välj Ta bort på fliken Riskzon, skriv klustrets namn och välj Ta bort permanent. Med CLI:t, som frågar först:

bash
stsh pg delete orders-db

Instanserna, deras volymer, poolern och schemat för säkerhetskopiering försvinner med klustret, och datan likaså. Säkerhetskopior som redan finns i säkerhetskopieringslagret tas inte bort, men inget i portalen eller CLI:t kan återställa dem när klustret är borta.