Podobnie jak w przypadku kopii zapasowych baz danych, w SQL Server 2016 można przywrócić bazę danych za pomocą Transact-SQL, PowerShell lub interfejsu graficznego SQL Server Management Studio.
Tutaj zademonstruję, jak przywrócić bazę danych za pomocą graficznego interfejsu użytkownika systemu zarządzania serwerem SQL, a następnie za pomocą języka Transact-SQL.
Przywróć bazę danych za pomocą GUI
W tym przykładzie przywrócimy kopię zapasową zupełnie nowej bazy danych o nazwie WideWorldImporters .
WideWorldImporterzy baza danych to przykładowa baza danych udostępniona przez zespół SQL Server firmy Microsoft w celu zademonstrowania, w jaki sposób funkcje SQL Server można wykorzystać w rzeczywistym scenariuszu.
Ten proces utworzy nową bazę danych o nazwie WideWorldImporters . Baza danych będzie zawierać różne obiekty (takie jak tabele, widoki, procedury składowane itp.). Zawiera również przykładowe dane, więc nie ma potrzeby dodawania własnych.
Pobierz plik kopii zapasowej bazy danych
Zanim zaczniesz, pobierz bazę danych (z GitHub).
- Pobierz WideWorldImporters-Full.bak pliku, jeśli używasz wersji Evaluation, Developer lub Enterprise Edition programu SQL Server.
- Lub pobierz plik WideWorldImporters-Standard.bak plik, jeśli używasz SQL Server Standard Edition.
-
Uruchom Przywróć bazę danych Okno dialogowe
W Eksploratorze obiektów kliknij prawym przyciskiem myszy Bazy danych i wybierz Przywróć bazę danych... z menu kontekstowego.
-
Wybierz plik kopii zapasowej
Pod Źródłem nagłówek, wybierz Urządzenie i kliknij przycisk wielokropka ( ... ), aby uruchomić Wybierz urządzenia do tworzenia kopii zapasowych okno dialogowe.
-
Wybierz plik kopii zapasowej
Zapewnienie, że Plik jest zaznaczone, kliknij Dodaj aby przejść do pliku bazy danych .bak i dodać go.
Po dodaniu pliku kopii zapasowej i wyświetleniu go w sekcji Nośnik kopii zapasowej: , kliknij OK aby wyjść z tego okna dialogowego.
-
Sprawdź ustawienia
Różne pola w Przywróć bazę danych okno dialogowe zostanie wypełnione na podstawie wybranego pliku kopii zapasowej.
Kliknij OK aby przywrócić bazę danych.
Możesz (opcjonalnie) kliknąć Zweryfikuj nośnik kopii zapasowej aby sprawdzić, czy nie ma problemów z plikiem kopii zapasowej przed uruchomieniem procesu przywracania.
-
Wiadomość o powodzeniu
Otrzymasz wiadomość informującą, że baza danych została pomyślnie przywrócona.
Kliknij OK do końca.
-
Sprawdź bazę danych
Przejdź do WideWorldImporters bazy danych i rozwiń jej węzły, aby przejrzeć różne obiekty, takie jak tabele, widoki, procedury składowane itp.
Możesz od razu rozpocząć pracę z tą bazą danych. Na przykład uruchomienie
SELECT * FROM Website.Suppliers;
zwróci listę dostawców za pomocą Website.Suppliers widok.
Przywracanie bazy danych przy użyciu języka Transact-SQL
-
Możesz wykonać to samo przywracanie bazy danych, jak powyżej, używając SQL.
Aby to zrobić, otwórz nowe okno zapytania i wykonaj
RESTORE
oświadczenie.RESTORE
Instrukcja akceptuje różne opcje (podobnie jak opcja GUI), ale możesz również uruchomić proste przywracanie z minimalną ilością kodu.Przykładowy kod
Poniżej znajduje się przykład prostego skryptu przywracania, który określa plik bazy danych do przywrócenia oraz docelową bazę danych.
Określa również, gdzie będą znajdować się pliki danych i dzienników.
Po uruchomieniu tego kodu WideWorldImporters baza danych zostanie utworzona.
Najpierw usuń istniejącą bazę danych, uruchamiając następujący kod:
USE master; DROP DATABASE WideWorldImporters;
Możesz także usunąć bazę danych za pomocą Eksploratora obiektów, klikając prawym przyciskiem myszy nazwę bazy danych i wybierając Usuń z menu kontekstowego.
Teraz sprawdź, czy baza danych nie jest już wyświetlana w Eksploratorze obiektów. Być może będziesz musiał kliknąć prawym przyciskiem myszy Bazy danych i kliknij Odśwież zanim zniknie.
Po upewnieniu się, że baza danych już nie istnieje na Twoim serwerze, uruchom następujący skrypt, aby ją przywrócić:
USE master; RESTORE DATABASE WideWorldImporters FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\WideWorldImporters-Full.bak' WITH MOVE N'WWI_Primary' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.mdf', MOVE N'WWI_UserData' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_UserData.ndf', MOVE N'WWI_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.ldf', MOVE N'WWI_InMemory_Data_1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_InMemory_Data_1';
Wyświetl komunikat o postępie
Możesz użyć
STATS
opcja otrzymywania aktualizacji o postępie procesu przywracania.Na przykład
STATS=10
spowoduje przetworzenie 10 procent , 20 procent przetworzonych , itp. podczas przywracania bazy danych.Możesz zobaczyć pełną składnię
RESTORE
oświadczenie na stronie Microsoft.
Możesz teraz korzystać z tej bazy danych, aby wypróbować różne rzeczy. Zapraszam do eksperymentowania z tym. Przeszukuj dane, usuwaj dane, upuszczaj obiekty, cokolwiek. W końcu, jeśli całkowicie to zepsujesz, zawsze możesz przywrócić bazę danych z pliku kopii zapasowej.