Hoppa till innehållet
Stackship-dokumentation English

SQL ServerAnvändareMaskinöversatt

Säkerhetskopiera och återställ

Schemalägg säkerhetskopior av en SQL Server-instans, ta en ögonblicksbild före en riskabel ändring och återställ en på plats — och vad en volymögonblicksbild ger dig och inte ger dig.

Kräver: sqlservercluster/write, sqlservercluster/createSnapshot, sqlservercluster/restoreSnapshot, sqlservercluster/deleteSnapshot

En säkerhetskopia av en SQL Server-instans är en ögonblicksbild av dess datavolym: varje databas på servern, så som den låg på disk i det ögonblicket. Den är kraschkonsistent — det en återställning ger tillbaka är det SQL Server skulle hitta efter ett plötsligt strömavbrott, och som den återhämtar sig från när den startar.

Det är inte en inbyggd SQL Server-säkerhetskopia. Det finns ingen säkerhetskopiering av transaktionsloggen och ingen återställning till en tidpunkt: en återställning går tillbaka till ögonblicket för en ögonblicksbild, aldrig till ett ögonblick däremellan.

Uppgift Kräver Inbyggda roller
Se ögonblicksbilder sqlservercluster/read varje roll som kan se instansen
Schemalägga säkerhetskopior sqlservercluster/write Owner, Contributor, Databases Operator
Ta en ögonblicksbild sqlservercluster/createSnapshot Owner, Contributor, Databases Operator
Återställa eller ta bort en ögonblicksbild sqlservercluster/restoreSnapshot, sqlservercluster/deleteSnapshot Owner, Databases Operator

Schemalägg säkerhetskopior

  1. På instansens flik Konfiguration, öppna Databas och slå på Säkerhetskopior.
  2. Ange Lagringspolicy — ett tal följt av d, w eller m, till exempel 30d — och Schema för säkerhetskopiering: Dagligen, eller Varje vecka en viss Veckodag, vid en Tid (UTC), eller ett Eget cron-uttryck med fem fält, i UTC.
  3. Spara.

Schemalagda säkerhetskopior visas på fliken Ögonblicksbilder precis som de du tar för hand, och löper ut när deras lagringstid är slut. Att slå av Säkerhetskopior stoppar schemat. Att ändra schemat eller lagringstiden startar inte om servern.

Med CLI:t:

bash
stsh sqlserver update my-sql -g my-resource-group \
  --set backupConfigured=true --set backupSchedule="30 1 * * *" --set backupRetentionPolicy=14d

Utan eget schema körs säkerhetskopieringen dagligen kl. 03.00 UTC och behålls i 30 dagar.

Ta en ögonblicksbild

  1. På fliken Ögonblicksbilder, välj Ta ögonblicksbild.
  2. Ge den en Beskrivning om du vill, och välj under Behåll i hur länge den ska finnas kvar: 7, 30, 90 eller 365 dagar. 30 dagar är standard.
  3. Välj Ta ögonblicksbild. Servern fortsätter köra; ögonblicksbilden blir klar i bakgrunden och visas i listan, där den löper ut av sig själv när tiden är slut.

En ny instans kan inte få en ögonblicksbild förrän den har skapat sin initiala databas; plattformen nekar till dess och säger att du ska vänta tills instansen rapporterar Running. En instans som skapats utan initial databas, vilket API:t och CLI:t tillåter, kommer aldrig förbi den kontrollen: ingen ögonblicksbild kan tas av den för hand, varken i portalen eller med CLI:t.

Med CLI:t (--ttl i dagar, 1 till 365):

bash
stsh sqlserver snapshot create my-sql -g my-resource-group --description "before the migration" --ttl 30
stsh sqlserver snapshot list my-sql -g my-resource-group

Återställ en ögonblicksbild

Bara en ögonblicksbild med statusen Klar kan återställas.

  1. På fliken Ögonblicksbilder, välj Återställ på ögonblicksbilden.
  2. Skriv instansens namn för att bekräfta, och välj Återställ.

Återställningen sker på plats och behåller instansens namn, anslutningssträngar och lösenord:

  • servern stoppas;
  • dess datavolym ersätts av den i ögonblicksbilden;
  • servern startas igen — om den inte var stoppad före återställningen, för då förblir den stoppad.

Den tidigare volymen behålls i sju dagar. Följ återställningen på instansens flik Operations. Allt som skrivits sedan ögonblicksbilden togs går förlorat.

Med CLI:t, som frågar innan den börjar:

bash
stsh sqlserver snapshot restore my-sql -g my-resource-group <snapshot-id>

Ta bort en ögonblicksbild

Välj Ta bort ögonblicksbild på ögonblicksbilden och bekräfta med Ta bort, eller:

bash
stsh sqlserver snapshot delete my-sql -g my-resource-group <snapshot-id>