Techniki tworzenia kopii zapasowych i odzyskiwania baz danych SQL
Microsoft SQL Server to profesjonalny system zarządzania służący do przetwarzania danych oraz komunikacji z nimi w relacyjnych bazach danych. Dla wielu organizacji baza danych stanowi zazwyczaj kluczowy element infrastruktury informatycznej lub projektu biznesowego. Z tego powodu wykonywanie kopii zapasowych baz danych SQL ma zasadnicze znaczenie dla uniknięcia utraty danych i przestojów w działaniu kluczowych usług.
W tym wpisie na blogu wyjaśniono, jak wykonać kopię zapasową serwera Microsoft SQL Server przy użyciu różnych metod, w tym narzędzi natywnych, a następnie przywrócić dane z bazy danych.
Rodzaje kopii zapasowych w programie SQL Server
W programie Microsoft SQL Server kopie zapasowe mają kluczowe znaczenie dla ochrony danych i zapewnienia możliwości odtworzenia informacji w przypadku utraty danych, awarii sprzętu lub innych sytuacji awaryjnych. Program SQL Server obsługuje kilka rodzajów kopii zapasowych, z których każdy służy konkretnemu celowi. Główne rodzaje kopii zapasowych w MS SQL Server to:
- Kopia zapasowa pełna
- Kopia zapasowa różnicowa
- Kopia zapasowa dziennika transakcji
- Kopia zapasowa plików
- Kopia zapasowa typu „tylko kopia”
Kopia zapasowa pełna
Pełna kopia zapasowa SQL Server tworzy kopię całej bazy danych MS SQL. Jest to najprostszy i najbardziej bezpośredni rodzaj kopii zapasowej, ponieważ obejmuje wszystkie obiekty i dane dostępne w relacyjnej bazie danych. Inne rodzaje kopii zapasowych Microsoft SQL Server wykorzystują kopię pełną jako podstawę dla każdego innego rodzaju kopii zapasowej.
Pełna kopia zapasowa SQL stanowi kompletną kopię zawierającą wszystkie elementy bazy danych, takie jak tabele, procedury, funkcje, widoki, indeksy i inne. Ponadto obejmuje ona część dziennika transakcji. Ułatwia to przywrócenie bazy danych, gwarantując jej precyzyjne odtworzenie do stanu z momentu wykonania kopii zapasowej.
Takie podejście zapewnia najprostszą formę odzyskiwania bazy danych, ponieważ cała jej zawartość znajduje się w jednej kopii zapasowej.
Główne cechy pełnej kopii zapasowej serwera SQL Server to:
- Pełna kopia zapasowa obejmuje całą bazę danych, w tym wszystkie dane i obiekty.
- Jest to najbardziej kompleksowy rodzaj kopii zapasowej i stanowi podstawę dla innych rodzajów kopii zapasowych.
- Pełne kopie zapasowe są niezbędne do całkowitego przywrócenia bazy danych.
Kopia różnicowa
Kopia różnicowa w serwerze SQL Server wybiórczo rejestruje dane obszarów bazy danych, które uległy zmianie od ostatniej pełnej kopii zapasowej, wykorzystując pełną kopię zapasową jako punkt wyjścia. Ten rodzaj kopii zapasowej obejmuje zmiany w obiektach schematu, plikach dziennika i innych danych, optymalizując czas i wydajność pamięci masowej, jednocześnie zapewniając wykonanie kopii zapasowej wszystkich zmian na serwerze. Do oznaczenia zmienionych obszarów w kopii różnicowej używane są specjalne flagi.
Różnicowa kopia zapasowa bazy danych przedstawia skumulowane zmiany od ostatniej pełnej kopii zapasowej, co w zależności od ostatniego wolumenu transakcji może skutkować niewielkim lub znacznym rozmiarem pliku.
Ponieważ kopia różnicowa nie obejmuje wszystkich elementów, jej wykonanie jest zazwyczaj szybsze niż w przypadku pełnej kopii zapasowej. Kopia różnicowa bazy danych, rejestrująca stan zmienionych obiektów bazy danych w momencie jej utworzenia, zawiera inne dane w każdej kolejnej kopii podczas tworzenia serii kopii różnicowych dla często aktualizowanej bazy danych.
W miarę jak rozmiar tych kopii rośnie, przywrócenie kopii różnicowej może znacznie wydłużyć czas potrzebny na odzyskiwanie danych. W związku z tym zaleca się okresowe uruchamianie nowej pełnej kopii zapasowej w ustalonych odstępach czasu, aby stworzyć nową bazę różnicową dla danych.
Podsumowując, główne cechy kopii różnicowej SQL Servera to:
- Kopia różnicowa rejestruje jedynie zmiany wprowadzone w bazie danych od czasu ostatniej pełnej kopii zapasowej.
- Obejmuje ona wszystkie zmiany wprowadzone w bazie danych od czasu ostatniej pełnej kopii zapasowej, a nie tylko zmiany wprowadzone od czasu ostatniej kopii różnicowej.
- Kopie różnicowe mogą skrócić czas potrzebny do przywrócenia bazy danych w porównaniu z przywracaniem wyłącznie z kopii pełnych.
Dowiedz się więcej o typy kopii zapasowych: pełne, różnicowe i przyrostowe , aby lepiej zrozumieć różnice między nimi.
Kopia zapasowa dziennika transakcji
Kopia zapasowa dziennika transakcji w programie Microsoft SQL Server obejmuje wszystkie transakcje, które miały miejsce od ostatniej kopii zapasowej dziennika transakcji, ułatwiając przywrócenie bazy danych do określonego punktu w czasie. Jak sama nazwa wskazuje, kopia zapasowa dziennika koncentruje się na tworzeniu kopii zapasowych dzienników transakcji i ma zastosowanie wyłącznie w modelach pełnego odzyskiwania lub z rejestrowaniem zbiorczym. Pliki dziennika transakcji zawierają serię wpisów dokumentujących historię zmian danych w bazie danych. Wykonać kopię zapasową dziennika transakcji obejmuje wszystkie wpisy dziennika, które nie zostały uwzględnione w poprzedniej kopii zapasowej dziennika transakcji.
Zasadniczo kopia zapasowa dziennika transakcji obejmuje wszystkie zmiany wprowadzone w bazie danych i jest szczególnie niezbędna w przypadku stosowania modelu pełnego odzyskiwania lub masowego rejestrowania w celu skrócenia dziennika. Warto wiedzieć, że kolejne kopie zapasowe dziennika transakcji nie powodują duplikowania danych, a wydajność pozostaje niezmieniona podczas wykonywania kopii zapasowej dziennika transakcji. Dzięki temu operację tę można przeprowadzić nawet w okresach dużego obciążenia.
Główne funkcje kopii zapasowych dziennika transakcji w programie Microsoft SQL Server to:
-
Kopie zapasowe dziennika transakcji rejestrują zmiany w dzienniku transakcji, które miały miejsce od ostatniej kopii zapasowej dziennika. Umożliwiają one odzyskiwanie stanu z określonego momentu i mają kluczowe znaczenie dla zachowania spójności danych. Stosowane w połączeniu z kopiami pełnymi i różnicowymi w celu stworzenia kompleksowej strategii tworzenia kopii zapasowych. Kopia zapasowa plików i grup plików Kopia zapasowa plików pozwala na niezależne tworzenie kopii zapasowych poszczególnych plików, zamiast konieczności wykonywania kopii zapasowej całej bazy danych. Ma to zastosowanie w przypadku, gdy dla bazy danych utworzono wiele plików danych. Jednym ze scenariuszy uzasadniających ten typ kopii zapasowej jest sytuacja, w której mamy do czynienia z wyjątkowo dużymi plikami, wymagającymi szczególnej uwagi pod względem tworzenia kopii zapasowych. Główne funkcje kopiowania zapasowego plików w MS SQL to: Ten rodzaj kopiowania zapasowego pozwala na wykonywanie kopii zapasowej poszczególnych plików bazy danych lub grup plików. Przydatne, gdy trzeba selektywnie wykonać kopię zapasową określonych części bazy danych. Kopiowanie zapasowe plików/grup plików można również wykorzystać do przywracania danych w częściach. Kopiowanie zapasowe plików/grup plików można również wykorzystać do przywracania danych w częściach. Kopia zapasowa typu „tylko kopia” Kopia zapasowa typu „tylko kopia” dla serwera MS SQL Server działa niezależnie od standardowej sekwencji tworzenia kopii zapasowych, tworząc kopię zapasową bez wpływu na oryginalne kopie zapasowe, sekwencje tworzenia kopii zapasowych ani procesy przywracania. Kopia zapasowa typu „tylko kopia” jest przydatna do eksperymentowania ze zmianami w archiwizowanych informacjach bez wpływu na główny zestaw danych, umożliwiając tworzenie kopii zapasowej bez zakłócania ogólnych protokołów tworzenia kopii zapasowych i przywracania bazy danych. Należy pamiętać, że kopii zapasowej typu „tylko kopia” (dla kopii pełnych) nie można używać do tworzenia kopii różnicowych. Główną zaletą kopii zapasowej typu „tylko kopia” jest to, że nie zakłóca ona regularnej sekwencji tworzenia kopii zapasowych ani standardowych procesów przywracania. Zazwyczaj większość metod tworzenia kopii zapasowych w MS SQL Server ma wpływ na bazę danych i procedury przywracania. Korzystając z kopii zapasowych typu „tylko kopia”, zespoły IT mogą tworzyć kopie zapasowe, które pozostają niezależne od oryginalnych kopii zapasowych i procesów przywracania. Należy pamiętać, że kopie zapasowe typu „tylko kopia” nie pozwalają na centralne rejestrowanie historii kopii zapasowych. O ile nie zastosuje się kopii zapasowej typu „tylko kopia” dla kopii pełnej, może to mieć wpływ na kolejną kopię różnicową. Kluczowa różnica między kopią pełną a kopią pełną typu „tylko kopia” polega na tym, że ta druga nie przerywa łańcucha kopii różnicowych.
Co ważne, żadna z tych metod nie zakłóca łańcucha dzienników, ponieważ żadna z nich nie skraca pliku dziennika.
Jeśli chodzi o kopie zapasowe dzienników, mające zastosowanie w modelach pełnego odzyskiwania i z wykorzystaniem dzienników zbiorczych, celem kopii zapasowej dziennika typu „tylko kopia” jest uchwycenie istniejącego punktu odzyskiwania dziennika. Chociaż kopia zapasowa dziennika typu „tylko kopia” jest rzadko stosowana, w niektórych sytuacjach może okazać się pomocna przy przywracaniu danych w trybie online.
Główne funkcje kopii zapasowej typu „tylko kopia” w MS SQL to:
- Kopia zapasowa typu „tylko kopia” nie wpływa na normalną sekwencję wykonywania kopii zapasowych. Jest to dodatkowa kopia zapasowa wykonywana niezależnie od regularnego łańcucha kopii zapasowych.
- Przydatna do wykonywania kopii zapasowych do konkretnych celów bez zakłócania ustalonej strategii wykonywania kopii zapasowych.
Wszystkie te typy kopii zapasowych serwera Microsoft SQL Server można łączyć, aby stworzyć kompleksową strategię wykonywania kopii zapasowych, która spełnia konkretne wymagania środowiska serwera SQL Server. Regularne testowanie i weryfikacja procedury tworzenia kopii zapasowych i przywracania danych są również istotnymi elementami solidnej strategia ochrony danych.
Jak wykonać kopię zapasową baz danych SQL
Istnieje kilka metod tworzenia kopii zapasowej bazy danych MS SQL przy użyciu natywnych narzędzi firmy Microsoft:
MS SQL Server Management Studio (SSMS)to bezpłatne narzędzie natywne z przyjaznym dla użytkownika interfejsem graficznym. Program SSMS należy zainstalować ręcznie na tym samym serwerze lub komputerze zdalnym, na którym zainstalowany jest SQL Server.Transaction SQL (T-SQL)Polecenia służą do zarządzania serwerem MS SQL Server, w tym do operacji tworzenia kopii zapasowych i przywracania baz danych.sqlcmdTo narzędzie w wierszu poleceń systemu Windows (cmd), które pozwala na uruchamianie poleceń T-SQL w SQL Serverze.- PowerShell to zaawansowane środowisko wiersza poleceń w systemie Windows, które obsługuje zarządzanie SQL Serverem po zainstalowaniu
SqlServermodułu PowerShell.
Tworzenie kopii zapasowej w MS SQL Server Management Studio
Aby wykonać kopię zapasową bazy danych SQL Servera, wykonaj następujące czynności:
- Otwórz MS SQL Server Management Studio (SSMS) i zaloguj się do SSMS przy użyciu konta administratora.
- W
Object Explorer, znajdującym się po prawej stronie okna SSMS, przejdź doDatabasesi kliknij prawym przyciskiem myszy nazwę bazy danych, której kopię zapasową chcesz wykonać. W tym przykładzie jako bazę danych używamyAdventureWorks2022. - W menu kontekstowym kliknij
Tasks > Backup.
- Ustaw parametry w oknie
Back Up Database.- Źródło:
- Baza danych:
AdventureWorks2022 - Typ kopii zapasowej: Wybierz
FulllubDifferential(najpierw musisz wykonać pełną kopię zapasową). - Komponent kopii zapasowej:
Database
- Baza danych:
-
- Miejsce docelowe: Kopia zapasowa na: lub adres URL (wybierz dysk) Odznacz pole wyboru „Kopia zapasowa”, jeśli nie chcesz tworzyć kopii zapasowej przeznaczonej wyłącznie do kopiowania. UWAGA : Możesz edytować ustawienia, jeśli chcesz wykonać kopię zapasową innego typu. Domyślnie wybierana jest ścieżka ustawiona w ogólnych właściwościach serwera bazy danych MS SQL. Możesz zmienić domyślną ścieżkę w ustawieniach globalnych – kliknij prawym przyciskiem myszy nazwę serwera MS SQL w Eksploratorze obiektów, kliknij , wybierz stronę i wyświetl/edytuj . Kliknij , aby wybrać niestandardową lokalizację docelową dla bieżącego zadania wykonania kopii zapasowej MS SQL, a następnie wybierz , aby odpowiednio usunąć niepotrzebną lokalizację. UWAGA : Aby wykonać kopię zapasową, należy użyć dysku innego niż ten, na którym znajduje się oryginalna baza danych. Zaleca się przestrzeganie wytycznych w celu zapewnienia solidnej strategii ochrony danych. Można również odpowiednio skonfigurować zachowanie nadpisywania i kompresję w opcjach nośników oraz opcjach tworzenia kopii zapasowych. Przycisk „Skrypt” tworzy skrypt T-SQL na podstawie wybranych ustawień. Nie zapomnij podać nazwy pliku kopii zapasowej. Należy pamiętać, że kopie różnicowe mogą mieć rozszerzenie pliku . Aby kontynuować, w każdym oknie należy kliknąć przycisk . Jeśli wszystko jest poprawne, powinien pojawić się komunikat: Harmonogram tworzenia kopii zapasowych Microsoft SQL w SSMS Można zautomatyzować tworzenie kopii zapasowych baz danych MS SQL i zaplanować zadania tworzenia kopii zapasowych. Aby zaplanować tworzenie kopii zapasowych baz danych, wykonaj następujące kroki w programie Microsoft SQL Server Management Studio. W przejdź do , kliknij prawym przyciskiem myszy i wybierz opcję . Wprowadź nazwę nowego planu konserwacji, na przykład . Kliknij . Kliknij ikonę (Harmonogram podplanu), aby skonfigurować harmonogram tworzenia kopii zapasowej MS SQL. Wybierz potrzebne opcje harmonogramu tworzenia kopii zapasowej MS SQL: Typ harmonogramu: cykliczny (domyślnie) Częstotliwość Codziennie Czas trwania Kliknij , aby zapisać ustawienia. Kliknij w lewym górnym rogu interfejsu SSMS.
Disk
- Miejsce docelowe: Kopia zapasowa na: lub adres URL (wybierz dysk) Odznacz pole wyboru „Kopia zapasowa”, jeśli nie chcesz tworzyć kopii zapasowej przeznaczonej wyłącznie do kopiowania. UWAGA : Możesz edytować ustawienia, jeśli chcesz wykonać kopię zapasową innego typu. Domyślnie wybierana jest ścieżka ustawiona w ogólnych właściwościach serwera bazy danych MS SQL. Możesz zmienić domyślną ścieżkę w ustawieniach globalnych – kliknij prawym przyciskiem myszy nazwę serwera MS SQL w Eksploratorze obiektów, kliknij , wybierz stronę i wyświetl/edytuj . Kliknij , aby wybrać niestandardową lokalizację docelową dla bieżącego zadania wykonania kopii zapasowej MS SQL, a następnie wybierz , aby odpowiednio usunąć niepotrzebną lokalizację. UWAGA : Aby wykonać kopię zapasową, należy użyć dysku innego niż ten, na którym znajduje się oryginalna baza danych. Zaleca się przestrzeganie wytycznych w celu zapewnienia solidnej strategii ochrony danych. Można również odpowiednio skonfigurować zachowanie nadpisywania i kompresję w opcjach nośników oraz opcjach tworzenia kopii zapasowych. Przycisk „Skrypt” tworzy skrypt T-SQL na podstawie wybranych ustawień. Nie zapomnij podać nazwy pliku kopii zapasowej. Należy pamiętać, że kopie różnicowe mogą mieć rozszerzenie pliku . Aby kontynuować, w każdym oknie należy kliknąć przycisk . Jeśli wszystko jest poprawne, powinien pojawić się komunikat: Harmonogram tworzenia kopii zapasowych Microsoft SQL w SSMS Można zautomatyzować tworzenie kopii zapasowych baz danych MS SQL i zaplanować zadania tworzenia kopii zapasowych. Aby zaplanować tworzenie kopii zapasowych baz danych, wykonaj następujące kroki w programie Microsoft SQL Server Management Studio. W przejdź do , kliknij prawym przyciskiem myszy i wybierz opcję . Wprowadź nazwę nowego planu konserwacji, na przykład . Kliknij . Kliknij ikonę (Harmonogram podplanu), aby skonfigurować harmonogram tworzenia kopii zapasowej MS SQL. Wybierz potrzebne opcje harmonogramu tworzenia kopii zapasowej MS SQL: Typ harmonogramu: cykliczny (domyślnie) Częstotliwość Codziennie Czas trwania Kliknij , aby zapisać ustawienia. Kliknij w lewym górnym rogu interfejsu SSMS.
-
Copy-only
PropertiesDatabase SettingsDatabase default locations - Źródło:
-
AddDelete"D:MS SQL Backup DBAdventureWorks"Zasada tworzenia kopii zapasowej 3-2-1

-
.dif
-
OK
The backup of database "AdventureWorks2022" completed successfully.
-
Object ExplorerManagementMaintenance PlansNew Maintenance Plan -
MS SQL Backup PlanOK
-
Calendar
-
OK
-
ToolBox
- Przeciągnij
Back Up Database TaskzToolboxdo pustego obszaru zakładkiMS SQL Backup Plan [Design]. - Kliknij dwukrotnie
Back Up Database Task, który właśnie przeciągnąłeś i upuściłeś w zakładceMS SQL Backup Plan [Design].
- Otworzy się okno opcji
Back Up Database Task. Wybierz typ połączenia, np.Local server connection. - Skonfiguruj niezbędne ustawienia w zakładkach
General, Destination, Options:- Typ kopii zapasowej:
FulllubDifferential - Bazy danych:
Specific databases, all databases, system databaseslubAll user databases. - Kopia zapasowa do:
Disk

Opcje w zakładkach
DestinationiOptionssą pokazane na poniższym zrzucie ekranu.Kliknij
OK, aby zapisać ustawienia zaplanowanego zadania wykonywania kopii zapasowej bazy danych MS SQL.
- Typ kopii zapasowej:
- Możesz kliknąć
View T-SQL, aby wyświetlić polecenia, których można użyć w języku T-SQL do uruchomienia zadania utworzonego w graficznym interfejsie użytkownika programu SSMS.
- Naciśnij
Ctrl+S, aby zapisać zmiany w programie SSMS. - Naciśnij
F5, aby odświeżyć wyświetlane elementy w programie SSMS. - Przejdź do
SQL Server Agent > Jobsw Eksploratorze obiektów. Możesz otworzyćJob Activity Monitori wyświetlićMS SQL Backup Plan.Sublanna liście zadań.
- Odśwież stronę, klikając prawym przyciskiem myszy
Jobslub inny obiekt, a następnie wybierając opcjęRefresh. W Eksploratorze obiektów przejdź doSQL Server Agent > Jobs, wybierzMS SQL Backup Plan.Subplan, kliknij ten obiekt prawym przyciskiem myszy i wybierz opcjęStart Job at Step, aby natychmiast uruchomić zaplanowane zadanie wykonania kopii zapasowej.
Alternatywnie możesz utworzyć zaplanowane zadanie wykonania kopii zapasowej MS SQL, przechodząc do
Object Explorer > Management > New Maintenance Plan. Dostępne są te same opcje, ale musisz przejść przez wszystkie kroki.
Kopia zapasowa MS SQL w języku T-SQL
Użyj następujących głównych poleceń, aby wykonać kopię zapasową bazy danych MS SQL w języku T-SQL dla każdego typu kopii zapasowej:
- Kopia zapasowa pełna:
BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Full.bak';Zastąp
YourDatabaseNamenazwą swojej bazy danych i określ żądaną ścieżkę do pliku kopii zapasowej (użyj innego dysku, a nie dysku systemowego (C:) ani dysku, na którym znajduje się oryginalna baza danych). - Kopia różnicowa:
BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Diff.bak' WITH DIFFERENTIAL;Przed utworzeniem kopii różnicowej upewnij się, że utworzono wcześniej kopię pełną.
- Kopia dziennika transakcji:
BACKUP LOG YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Log.bak';Kopie dziennika transakcji mają kluczowe znaczenie dla odtworzenia stanu z określonego momentu oraz zachowania spójności danych.
- Kopia pliku:
BACKUP DATABASE YourDatabaseName FILE = 'LogicalFileName' TO DISK = 'C:BackupYourDatabaseName_File.bak';Zastąp
LogicalFileNamelogiczną nazwą pliku lub grupy plików, których kopię chcesz wykonać. - Kopia tylko do kopiowania:
BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_CopyOnly.bak' WITH COPY_ONLY;Kopie zapasowe typu „tylko kopiowanie” nie zakłócają normalnego przebiegu tworzenia kopii zapasowych.
W powyższych przykładach wyjaśniliśmy podstawowe polecenia. Aby dostosować zaawansowane ustawienia tworzenia kopii zapasowych w poleceniach T-SQL, można skorzystać z dodatkowe parametry . Poniżej znajduje się kilka przykładów skryptów T-SQL służących do wykonywania kopii zapasowych w programie Microsoft SQL Server z wykorzystaniem zaawansowanych opcji, w tym kompresji:
- Pełna kopia zapasowa z kompresją:
-- Full Backup with CompressionBACKUP DATABASE YourDatabaseNameTO DISK = 'C:BackupYourDatabaseName_Full.bak'WITH COMPRESSION, INIT;Gdzie:
YourDatabaseNamenależy zastąpić nazwą własnej bazy danych.C:BackupYourDatabaseName_Full.bakto ścieżka i nazwa pliku kopii zapasowej, które należy dostosować do własnych potrzeb.WITH COMPRESSIONto opcja umożliwiająca kompresję w celu zmniejszenia rozmiaru kopii zapasowej.INITto opcja inicjująca nowy zestaw nośników.--określa początek komentarza - Pełna kopia zapasowa z różnymi opcjami:
-- Full Backup with various optionsBACKUP DATABASE YourDatabaseNameTO DISK = 'C:BackupYourDatabaseName_Full.bak'WITHFORMAT,– Nadpisuje istniejący zestaw nośnikówNAME = 'FullBackup',– Określa nazwę zestawu kopii zapasowejSTATS = 10,– Wyświetla komunikat co 10 procent postępuCHECKSUM,– Sprawdza integralność kopii zapasowejCOMPRESSION,– Włącza kompresjęINIT;– Inicjuje nowy zestaw nośników - Kopia zapasowa dziennika transakcji:
-- Transaction Log BackupBACKUP LOG YourDatabaseNameTO DISK = 'C:BackupYourDatabaseName_LogBackup.trn'WITHFORMAT,– Nadpisuje istniejący zestaw nośnikówNAME = 'LogBackup',– Określa nazwę zestawu kopii zapasowejSTATS = 10,– Wyświetla komunikat co 10 procent postępuINIT;– Inicjuje nowy zestaw nośników - Kopia zapasowa do wielu plików:
-- Full Backup to Multiple FilesBACKUP DATABASE YourDatabaseNameTODISK = 'C:BackupYourDatabaseName_Full1.bak',DISK = 'C:BackupYourDatabaseName_Full2.bak'WITH INIT;
Przykłady te pokazują różne zaawansowane opcje, takie jak formatowanie zestawu nośników, określanie nazw zestawów kopii zapasowych, wyświetlanie statystyk postępu oraz weryfikacja sumy kontrolnej. Możesz dostosować te przykładowe skrypty do swoich konkretnych wymagań i preferencji.
Kopia zapasowa tabeli MS SQL
Aby wykonać kopię zapasową konkretnej tabeli w programie Microsoft SQL Server, można skorzystać z funkcji Generate Scripts w programie MS SQL Server Management Studio (SSMS) w celu utworzenia skryptu kopii zapasowej schematu i danych tabeli lub użyć narzędzia bcp (Bulk Copy Program). W przypadku obu metod należy wykonać poniższe kroki.
Metoda 1: Generowanie skryptów w programie SSMS
Aby wygenerować skrypt T-SQL i wykonać kopię zapasową określonej tabeli bazy danych MS SQL, wykonaj następujące czynności:
- Uruchom program MS SQL Server Management Studio i połącz się z instancją serwera MS SQL Server.
- Przejdź do bazy danych w sekcji
Object Exploreri kliknij prawym przyciskiem myszy nazwę bazy danych. W menu kontekstowym kliknij opcjęTasks > Generate Scripts.
- Zapoznaj się z poradami w kroku
IntroductionkreatoraGenerate Scripts. Możesz zaznaczyć pole wyboruDo not show this page again. Na każdym kroku kreatora klikaj przyciskNext, aby kontynuować. - W kroku
Choose Objectskliknij opcjęSelect specific database objects. Wybierz tabele, których kopię zapasową chcesz utworzyć. W tym przykładzie wybieramy tabelęPerson.Addressz bazy danych do utworzenia kopii zapasowej.
- W kroku
Set Scripting Optionsokreśl sposób zapisywania skryptów. Wybierz opcjęSave as script filei wybierzSingle script file. Wprowadź nazwę pliku kopii zapasowej w odpowiednim folderze. Kliknij przycisk…, aby wybrać folder i wprowadź nazwę kopii zapasowej tabeli MS SQL.
- Kliknij przycisk
Advancedi w otwartym oknieAdvanced Scripting Optionsustaw opcjęTypes of data to script = Schema and data. Kliknij przyciskOK, aby zapisać ustawienia i zamknąć okno. Następnie przejdź do kolejnego kroku kreatora.
- Sprawdź podsumowanie konfiguracji i przejdź do ostatniego kroku tworzenia kopii zapasowej tabeli bazy danych.

- Na etapie
Save Scriptsmożesz obserwować postęp tworzenia kopii zapasowej. Poczekaj, aż proces tworzenia kopii zapasowej bazy danych MS SQL się zakończy.
- Otwórz Eksploratora Windows i znajdź utworzony plik kopii zapasowej tabeli MS SQL w wybranym katalogu docelowym. W tym przykładzie mamy plik
MS_SQL_Table_Backup.sql.
- Kliknij dwukrotnie plik
MS_SQL_Table_Backup.sqli otwórz ten plik skryptu SQL w programie SSMS. Zmień nazwę bazy danych w pierwszym wierszu, aby dostosować ją do wymagań swojego środowiska.
- Kliknij
Execute, aby uruchomić skrypt tworzenia kopii zapasowej tabeli MS SQL.
Metoda 2: Użyj programu bcp (Bulk Copy Program)
Skorzystaj z poniższego schematu działania, aby wykonać kopię zapasową tabeli MS SQL za pomocą bcp:
- Otwórz wiersz poleceń (naciśnij
Win+R, wpiszcmdi naciśnijEnter) w systemie Windows z uprawnieniami administratora. - Przejdź do pliku wykonywalnego narzędzia
bcpw katalogu instalacyjnym MS SQL Server (dla MS SQL Server 2022 używany jest plik 160). Na przykład:cd C:Program FilesMicrosoft SQL Server160ToolsBinn - Uruchom polecenie
bcp, aby wyeksportować dane tabeli do pliku. Zastąp<DatabaseName>, <SchemaName>, <TableName>i<OutputFilePath>rzeczywistymi nazwami bazy danych, schematu, tabeli oraz żądaną ścieżką do pliku wyjściowego.bcp. . out -c -S -T Gdzie:
-c– określa dane znakowe (niebędące danymi Unicode), które mają zostać skopiowane.-S– określa nazwę serwera. -T– wykorzystuje zaufane połączenie (uwierzytelnianie systemu Windows). - Sprawdź podany plik wyjściowy pod kątem wyeksportowanych danych.
Jak przywrócić bazę danych SQL Server
Podczas korzystania z natywnych narzędzi firmy Microsoft do tworzenia kopii zapasowych baz danych MS SQL, kopie te są zazwyczaj zapisywane jako .bak pliki. Aby otworzyć plik .bak , należy zazwyczaj użyć programu MS SQL Server Management Studio (SSMS), narzędzia dostarczanego przez firmę Microsoft do zarządzania bazami danych MS SQL Server. Przywróć dane z tej kopii zapasowej do normalnego stanu. Dopiero wtedy będzie można otworzyć dane.
UWAGA : Jeśli chcesz wyświetlić dane z kopii zapasowej, ale nie masz obecnie zainstalowanego programu MS SQL Server, możesz skopiować plik backupname.bak , zmienić nazwę skopiowanego pliku backupname.bak na backupname.xls i otworzyć plik .xls w programie Microsoft Excel. Skopiowanie pliku zapobiega uszkodzeniu głównego pliku kopii zapasowej, gdyby coś poszło nie tak.
Przywracanie bazy danych MS SQL w SSMS
Należy pamiętać, że do przywrócenia bazy danych potrzebne są odpowiednie uprawnienia, a instancja serwera MS SQL Server powinna mieć dostęp do pliku .bak .
Aby przywrócić bazę danych serwera MS SQL Server w programie MS SQL Server Management Studio z pliku kopii zapasowej, wykonaj następujące czynności:
- Zaloguj się do serwera MS SQL Server w programie SSMS, korzystając z konta administratora.
- Kliknij prawym przyciskiem myszy
DatabaseswObject Exploreri wybierzRestore Databasez menu kontekstowego.
- W oknie
Restore DatabasewybierzDevice, aby przywrócić bazę danych MS SQL z pliku.bak, a następnie kliknij przycisk…, aby wybrać plik.bak.
- Wybierz
Filejako typ nośnika kopii zapasowej i kliknijAdd.
- Znajdź plik kopii zapasowej. Domyślnie w oknie wyświetlany jest domyślny katalog kopii zapasowych. Przejdź do odpowiedniego katalogu i wybierz plik kopii zapasowej. W tym przykładzie wybrano plik
AdventureWorks2022.bak.
- Kliknij dwukrotnie przycisk
OK, aby zapisać ustawienia i powrócić do oknaRestore Database. Program SSMS wyświetli postęp operacji przywracania. Proces ten można monitorować w oknieRestore Progress.
Jeśli wszystko przebiegło poprawnie, po przywróceniu bazy danych powinien pojawić się następujący komunikat:
Database 'AdventureWorks2022' restored successfully.
Przywracanie bazy danych MS SQL w języku T-SQL
Za pomocą poleceń T-SQL można przywrócić bazę danych z pliku .bak za pomocą instrukcji RESTORE DATABASE . Może to być przydatne w skryptach lub sytuacjach, w których program SSMS nie jest dostępny. Rozważ poniższe polecenia służące do przywracania bazy danych MS SQL w języku T-SQL.
- Pełne przywracanie bazy danych:
RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Full.bak' WITH REPLACE;Zastąp
YourDatabaseNamenazwą swojej bazy danych i podaj ścieżkę do pliku pełnej kopii zapasowej. OpcjaWITH REPLACEjest wymagana, jeśli nadpisujesz istniejącą bazę danych. - Przywracanie bazy danych przy użyciu kopii różnicowej:
RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Diff.bak' WITH NORECOVERY;Po przywróceniu kopii różnicowej może być konieczne przywrócenie dodatkowych kopii zapasowych dzienników transakcji, aby przywrócić bazę danych do najnowszego punktu w czasie.
- Aby przywrócić kopię dziennika transakcji, użyj następującego polecenia T-SQL:
RESTORE LOG YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Log.bak' WITH NORECOVERY; - Powtórz to polecenie kolejno dla każdej kopii dziennika transakcji. Na koniec wykonaj następujące polecenie, aby przełączyć bazę danych w tryb online:
RESTORE DATABASE YourDatabaseName WITH RECOVERY; - Upewnij się, że kopie zapasowe dziennika transakcji są stosowane we właściwej kolejności.
- Aby przywrócić kopię dziennika transakcji, użyj następującego polecenia T-SQL:
- Przywracanie pliku lub grupy plików:
RESTORE DATABASE YourDatabaseName FILE = 'LogicalFileName' FROM DISK = 'C:BackupYourDatabaseName_File.bak' WITH REPLACE;Zastąp
LogicalFileNamelogiczną nazwą pliku lub grupy plików. - Przywracanie wyłącznie poprzez kopiowanie:
RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_CopyOnly.bak' WITH REPLACE, COPY_ONLY;Opcja
COPY_ONLYjest wymagana w przypadku przywracania wyłącznie poprzez kopiowanie.
Kopia zapasowa i odzyskiwanie Microsoft SQL z NAKIVO
NAKIVO Backup & Replication to uniwersalne rozwiązanie do ochrony danych, które obsługuje tworzenie kopii zapasowej maszyn hostujących bazy danych MS SQL. Kopia zapasowa Microsoft SQL jest tworzona podczas wykonywania kopii zapasowej komputera z systemem Windows wdrożonego jako maszyna fizyczna lub maszyna wirtualna. W ten sposób można zabezpieczyć cały serwer wraz z bazami danych Microsoft SQL działającymi na tym serwerze. Rozwiązanie NAKIVO pozwala na odzyskanie całej maszyny fizycznej lub maszyny wirtualnej, konkretnej bazy danych Microsoft SQL lub obiektów bazy danych. Takie podejście przyspiesza proces odzyskiwania i zapewnia większą elastyczność podczas odzyskiwania.
Zaletą tworzenia kopii zapasowej serwera Microsoft SQL Server za pomocą rozwiązania NAKIVO jest możliwość stosowania podejścia przyrostowego. Kopie przyrostowe przyspieszają proces tworzenia kopii zapasowych i oszczędzają miejsce na dysku. Techniki kompresji, szyfrowania oraz obcinania dziennika SQL pozwalają racjonalniej wykorzystywać przestrzeń dyskową, a także sprawiają, że proces tworzenia kopii zapasowych jest szybki i bezpieczny. Zadania tworzenia kopii zapasowych są planowane i zautomatyzowane.
Tworzenie kopii zapasowej serwera z bazami danych SQL:
- maszyny fizyczne
oraz inne pozycje do spisu inwentarzaSettings > Inventory
-
Jobs > +Physical machine backup job
-
Krok po kroku z NAKIVONext
Aby wykonać kopię zapasową komputera z systemem Windows i bazą danych MS SQL w formacie NAKIVO Backup & Replication, wykonaj następujące czynności:
Otwórz interfejs internetowy NAKIVO Backup & Replication w przeglądarce internetowej.
Upewnij się, że wymagany fizyczny serwer Windows lub maszyna wirtualna z serwerem Microsoft SQL Server została dodana do wykazu zasobów NAKIVO.
- .

- W pierwszym kroku kreatora nowego zadania wykonania kopii zapasowej wybierz komputer, na którym zainstalowany jest serwer MS SQL Server. Wybieramy nasz serwer Windows Server 2022 z zainstalowanym serwerem MS SQL Server 2022. W ramach jednego zadania można wybrać wiele komputerów. Na każdym kroku kreatora kliknij harmonogram i podejście do przechowywania danych
, aby kontynuować.
-
Active full
{177} Wybierz repozytorium kopii zapasowych, w którym chcesz przechowywać kopię zapasową. Można wybrać lokalne repozytorium kopii zapasowych lub repozytorium w chmurze. Zaleca się najpierw skorzystać z repozytorium lokalnego, a następnie utworzyć kopię zapasową w chmurze lub innym repozytorium, aby spełnić zasadę tworzenia kopii zapasowych 3-2-1.
Finish
Finish & RunWybierz opcje harmonogramu. Najnowsze wersje rozwiązania NAKIVO wykorzystują połączony . Można skonfigurować elastyczne reguły przechowywania dla zadań tworzenia kopii zapasowych, w tym zadań tworzenia kopii zapasowych baz danych MS SQL. Ustal nazwę dla każdego harmonogramu.
- Skonfiguruj opcje zadania tworzenia kopii zapasowych. Wprowadź nazwę zadania, na przykład „Zadanie tworzenia kopii zapasowej serwera MS SQL 2022”. Skonfiguruj ustawienia pełnej kopii zapasowej. Domyślnie stosowane są kopie przyrostowe wraz z okresowymi kopiami pełnymi.
W tym przykładzie wykonujemy kopię zapasową komputera fizycznego i wybieramy
Alternatywnie można skorzystać z funkcji odzyskiwania szczegółowego i przywrócić tylko obiekty bazy danych (całą bazę danych, tabele itp.).
Aby odzyskać bazę danych MS SQL lub określone obiekty bazy danych w NAKIVO Backup & Replication, należy wykonać następujące czynności:
- W interfejsie internetowym rozwiązania NAKIVO przejdź do
Jobs > Recover > Microsoft SQL Server objects.
- W pierwszym kroku
Object Recovery Wizard for Microsoft SQL Serverwybierz kopię zapasową komputera zawierającą bazę danych MS SQL Server oraz wybierz punkt odzyskiwania. Upewnij się, że pole wyboruAutomatically locate application databasesjest zaznaczone. W każdym kroku kreatora odzyskiwania kliknij przycisk „Next”, aby kontynuować.
- Wybierz serwer odzyskiwania. Serwerem odzyskiwania może być oryginalny serwer użyty jako źródło do utworzenia kopii zapasowej lub nowy komputer bez przywracanej bazy danych. Wybieramy oryginalny serwer w celu odzyskania bazy danych.
- Wprowadź poświadczenia serwera odzyskiwania i kliknij przycisk „
Test Connection”. - Po nawiązaniu połączenia wybierz instancję SQL na tym serwerze.

- W kroku
Objectskreatora odzyskiwania wybierz bazę danych, którą chcesz odzyskać (plik.mdf).
Jeśli nie musisz przywracać całej bazy danych, kliknij ikonę
>w lewym panelu obok nazwy bazy danych, aby rozwinąć obiekt bazy danych i wybrać konkretne obiekty bazy danych do odzyskania.
- Wprowadź poświadczenia serwera odzyskiwania i kliknij przycisk „
- Zdefiniuj opcje zadań odzyskiwania danych z opcji wymienionych poniżej:
Zakres odzyskiwania :
- Odzyskaj schemat i dane
- Odzyskaj tylko schemat
Typ odzyskiwania :
- Odzyskaj do pierwotnej lokalizacji
- Odzyskaj do lokalizacji niestandardowej
- Eksportuj
Zachowanie podczas nadpisywania :
- Zmień nazwę odzyskanego elementu, jeśli taki element istnieje (domyślnie)
- Pomiń odzyskany element, jeśli taki element istnieje
- Nadpisz oryginalny element, jeśli taki element istnieje

Kliknij
Recoveri poczekaj, aż wybrana baza danych lub obiekty bazy danych zostaną odzyskane.