Hoppa till innehållet
Stackship-dokumentation English

PostgreSQLAnvändareMaskinöversatt

Säkerhetskopior och återställning till tidpunkt

Hur PostgreSQL-säkerhetskopior fungerar — det löpande arkivet, ögonblicksbilder, återställningsfönstret, lagringstiden — och vad en återställning gör med klustret.

Arkivet och ögonblicksbilderna

Med säkerhetskopiering påslagen har ett kluster ett arkiv i plattformens säkerhetskopieringslager, den objektlagring som plattformens driftansvariga har satt upp för säkerhetskopior. Två saker hamnar där:

  • transaktionsloggen (WAL), som skickas löpande medan databasen skriver den. Ett loggsegment arkiveras när det är fullt, och som standard senast efter fem minuter, så arkivet ligger som mest några minuter efter databasen;
  • baskopior — fullständiga kopior av databasen, tagna medan den kör. Det är klustrets ögonblicksbilder. En tas enligt schemat för säkerhetskopiering, och du kan ta en när som helst.

Ögonblicksbilderna listas på klustrets flik Ögonblicksbilder, märkta Databaskopia. En ögonblicksbild är konsistent — databasen som den var vid ett ögonblick — och inget i klustret behöver stoppas för den. Kopior av volymerna används inte för PostgreSQL.

Två sätt att återställa

  • Återställ en ögonblicksbild — databasen kommer tillbaka som den var när ögonblicksbilden togs.
  • Återställ till en tidpunkt — databasen kommer tillbaka som den var vid ett ögonblick du väljer: plattformen utgår från en ögonblicksbild som togs före det ögonblicket och spelar upp den arkiverade loggen fram till det.

Återställningsfönstret är den tidsperiod som en återställning till tidpunkt kan nå: från den tidigaste punkt arkivet kan återställa till, fram till nu. Fliken Ögonblicksbilder visar var det börjar — "Ögonblicksbilder plus ett kontinuerligt arkiv sedan …" — när arkivet innehåller en ögonblicksbild.

Vad en återställning gör

En återställning ersätter klustrets data på plats:

  1. alla instanser stängs ner;
  2. klustret tas bort och skapas igen med samma namn från arkivet, vid ögonblicksbilden eller det valda ögonblicket;
  3. instanserna startar och klustret är Running igen.

Anslutningssträngen, tjänstnamnen och lösenordet förblir desamma, så program behöver inte ändras; de behöver bara ansluta igen. Med extern åtkomst påslagen skapas lastbalanseraren på nytt, och dess adress — och därmed den externa anslutningssträngen — kan ändras. Räkna med några minuter utan databas, längre för en stor, och allt som skrevs efter det återställda ögonblicket är borta. Klustrets flik Operations följer återställningen.

Om återställningen från arkivet misslyckas, eller om återställningen inte är klar 45 minuter efter att den startade, återskapar plattformen klustret från den senaste ögonblicksbilden i det arkiv det skrev till före återställningen — inte vid det ögonblick återställningen startade, så det som skrevs efter den ögonblicksbilden saknas — och operationen rapporterar felet.

Se upp

Andra fel efter att det gamla klustret har tagits bort — till exempel en ögonblicksbild som inte längre går att hitta — avslutar återställningen helt utan kluster, och det gör också en reservåterställning som i sin tur misslyckas. Klustrets volymer är då borta; bara arkivet har datan, och plattformens driftansvariga måste återskapa den.

Efter en återställning skriver klustret till ett nytt arkiv, och återställningsfönstret börjar om med klustrets nästa ögonblicksbild. En återställning till en tidpunkt kan inte nå tillbaka in i arkivet som användes före.

Se upp

En återställning tar bort de schemalagda ögonblicksbilderna — de som beskrivs som Scheduled by … — tillsammans med det gamla klustret. Ögonblicksbilder som tagits för hand finns kvar i listan och kan fortfarande återställas som de är. Att återställa en schemalagd ögonblicksbild drabbas av samma borttagning och kan sluta utan kluster; ta en ögonblicksbild för hand och återställ den där det går.

Lagringstid

Viktigt

I dag behåller varje klusters arkiv det som behövs för att återställa till vilket ögonblick som helst de senaste 30 dagarna, och tar bort det som är äldre. Det ställs in på säkerhetskopieringslagret, inte per kluster: klustrets Bevarandepolicy för säkerhetskopior sparas på klustret men tillämpas inte, och det du väljer under Behåll i när du tar en ögonblicksbild har ingen effekt.

Tar du bort en ögonblicksbild försvinner den ur listan; dess data finns kvar i arkivet tills lagringstiden tar bort den. Lagringstiden tillämpas av det körande klustret på det arkiv det skriver till, så arkiv som inget kluster skriver till längre — det gamla arkivet efter en återställning eller efter att säkerhetskopiering slagits av och på igen, och arkivet för ett borttaget kluster — rensas inte och ligger kvar i säkerhetskopieringslagret.

När arkiveringen misslyckas

När det inte går att skriva till arkivet — säkerhetskopieringslagret är fullt eller går inte att nå, eller plattformen saknar mål för säkerhetskopiering — blir ingen ögonblicksbild klar, och när klustret rapporterar att arkiveringen misslyckas avvisas både nya ögonblicksbilder och återställningar. PostgreSQL behåller dessutom varje loggsegment som ännu inte arkiverats, så klustrets volymer fylls så länge arkiveringen misslyckas. Det är plattformens driftansvariga som får åtgärda säkerhetskopieringslagret.

Repliker är inga säkerhetskopior

Repliker skyddar mot en instans som går sönder, inte mot ett misstag: en tabell som tas bort på den primära tas bort på varje replik en kort stund senare. Bara arkivet kan ta tillbaka den.

Sidor