Att återställa en databas är en enkel sak med Azure Data Studio. Det är en liknande process som att göra det med SQL Server Management Studio. Klicka bara på Återställ och följ anvisningarna.
Denna återställningsprocess låter dig navigera genom datorns filsystem för att hitta .bak-filen. Denna .bak-fil innehåller en säkerhetskopia av databasen du vill återställa. Så när SQL Server återställer databasen använder den .bak-filen för att göra det.
Men om du kör din SQL Server-instans i en Docker-behållare (vilket du naturligtvis skulle vara om du kör SQL Server på Mac eller Linux), är det något du måste vara medveten om om din säkerhetskopia finns utanför Docker-behållaren.
Om säkerhetskopian finns utanför Docker-behållaren som kör SQL Server, måste du kopiera den till Docker-behållaren innan du gör återställningen. När du har kopierat .bak-filen till Docker-behållaren kan du gå vidare och använda Azure Data Studio för att återställa databasen.
Nedan beskriver jag alla steg som är involverade.
Den här handledningen förutsätter att du har installerat SQL Server på din Mac med en Docker-behållare och att du har installerat Azure Data Studio.
Jag bör påpeka att även om exemplen på den här sidan gjordes på en Mac, bör alla steg fungera på både macOS och Linux.
Ladda ned en exempeldatabas
Om du redan har din egen databas .bak-fil behöver du inte göra det här steget.
För den här handledningen kommer jag att återställa WideWorldImporters-exempeldatabasen. Detta är en exempeldatabas som Microsoft har gjort tillgänglig för att visa upp de olika funktionerna i SQL Server. I synnerhet kommer jag att använda datalagerversionen av databasen.
För att ladda ner WideWorldImporters exempeldatabas .bak-fil, gå antingen till WideWorldImporters Github-sidan och hitta nedladdningslänken, eller så kan du ladda ner .bak-filen direkt här:
- WildWorldImportersDW-Full.bak [47,7mb]
Kopiera .bak-filen till Docker-behållaren
Du behöver bara göra det här steget om din .bak-fil finns utanför Docker-behållaren (vilket den kommer att vara om du precis laddade ner WideWorldImporters .bak-filen).
Låt oss först skapa en mapp inuti Docker-behållaren:
sudo docker exec -it sql_server_demo mkdir /var/opt/mssql/backup
Kopiera nu databasen .bak-fil till den mappen:
sudo docker cp WideWorldImportersDW-Full.bak sql_server_demo:/var/opt/mssql/backup
Det här kommandot förutsätter att du är i samma katalog som .bak-filen. Om inte, byt antingen till katalogen som du först använder. Till exempel:
cd Downloads
eller vilken mapp den ligger i.
Varför måste vi kopiera .bak-filen?
Docker-behållaren har sitt eget filsystem, och den lever ungefär oberoende av din Macs filsystem. Så när du försöker navigera till .bak-filen i Azure Data Studio (i nästa steg), kommer du att hitta dig själv "fast" i Docker-behållarens filsystem, utan någon möjlighet att komma åt .bak-filen på din Mac-fil systemet. Därför kopierar vi .bak-filen till containerns filsystem först, sedan kan vi komma åt den via Azure Data Studio.
Återställ databasen
OK, nu kan vi göra själva databasåterställningsprocessen.
Följande steg förutsätter att du redan har Azure Data Studio igång och att du redan har anslutit till SQL Server.
- Klicka på Återställ från Server Dashboard knapp
- Vid Återställ från rubrik, välj Säkerhetskopieringsfil från rullgardinsmenyn
- Vid Säkerhetskopieringsfilens sökväg rubrik klickar du på ellipserna (... )
- Navigera till mappen, välj .bak-filen och klicka på OK
- Klicka på Återställ
- Återställningen kan ta en minut eller två. Uppgiftshistorik kommer att indikera när den är klar
Databasen har nu återställts.
Kontrollera databasen
Du vill förmodligen kontrollera att databasen faktiskt har återställts. Ett sätt att göra detta är att navigera till databasen och köra en snabbfråga.
- Klicka på Server ikon (överst till vänster på skärmen)
- Databasen bör nu listas under Databaser på väg mot den aktuella servern. Om inte, högerklicka på Databaser och välj Uppdatera
- Använd Azure Data Studio-gränssnittet för att köra en fråga mot databasen. Högerklicka till exempel på Tabell nod (efter att ha utökat databasen) och klicka på Välj Top 1000 . Detta kör automatiskt en fråga mot den tabellen och väljer bara de 1000 bästa resultaten