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.

Kopia zapasowa dla Microsoft 365

Kopia zapasowa dla Microsoft 365

Skorzystaj z rozwiązania NAKIVO do wykonywania kopii zapasowych danych Microsoft 365 w usługach Exchange Online, Teams, OneDrive i SharePoint Online, aby zapewnić nieprzerwany przebieg procesów i całkowity brak przestojów.

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.
  • sqlcmd To 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 SqlServer moduł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:

  1. Otwórz MS SQL Server Management Studio (SSMS) i zaloguj się do SSMS przy użyciu konta administratora.
  2. W Object Explorer, znajdującym się po prawej stronie okna SSMS, przejdź do Databases i kliknij prawym przyciskiem myszy nazwę bazy danych, której kopię zapasową chcesz wykonać. W tym przykładzie jako bazę danych używamy AdventureWorks2022 .
  3. W menu kontekstowym kliknij Tasks > Backup.

    MS SQL database backup in SSMS

  4. Ustaw parametry w oknie Back Up Database .
    • Źródło:
      • Baza danych: AdventureWorks2022
      • Typ kopii zapasowej: Wybierz Full lub Differential (najpierw musisz wykonać pełną kopię zapasową).
      • Komponent kopii zapasowej: Database
      • 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

    • Copy-only



    Properties
    Database Settings Database default locations


  5. Add
    Delete "D:MS SQL Backup DBAdventureWorks"

    Zasada tworzenia kopii zapasowej 3-2-1

    Configuring MS SQL database backup in SSMS

  6. .dif

    Selecting the destination location for a database backup

  7. OK

The backup of database "AdventureWorks2022" completed successfully.

  1. Object Explorer Management Maintenance Plans New Maintenance Plan
  2. MS SQL Backup Plan OK

    Creating a maintenance plan to configure the MS SQL database backup schedule

  3. Calendar

    Opening a calendar to schedule a backup task in SSMS

    OK

    Creating a new database backup job schedule in MS SQL Management Studio

  4. ToolBox

    Opening the Toolbox in MS SQL Server Management Studio

  5. Przeciągnij Back Up Database Task z Toolbox do pustego obszaru zakładki MS SQL Backup Plan [Design] .
  6. Kliknij dwukrotnie Back Up Database Task , który właśnie przeciągnąłeś i upuściłeś w zakładce MS SQL Backup Plan [Design] .

    Drag and drop the Back Up Database Task from the Toolbox

  7. Otworzy się okno opcji Back Up Database Task . Wybierz typ połączenia, np. Local server connection.
  8. Skonfiguruj niezbędne ustawienia w zakładkach General, Destination, Options :
    • Typ kopii zapasowej: Full lub Differential
    • Bazy danych: Specific databases, all databases, system databaseslub All user databases.
    • Kopia zapasowa do: Disk

    Configure a scheduled MS SQL database backup task

    Opcje w zakładkach Destination i Options są pokazane na poniższym zrzucie ekranu.

    Kliknij OK , aby zapisać ustawienia zaplanowanego zadania wykonywania kopii zapasowej bazy danych MS SQL.

    The Destination and Options tabs

  9. 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.

    Viewing a T-SQL database backup script generated with a scheduled task

  10. Naciśnij Ctrl+S , aby zapisać zmiany w programie SSMS.
  11. Naciśnij F5 , aby odświeżyć wyświetlane elementy w programie SSMS.
  12. Przejdź do SQL Server Agent > Jobs w Eksploratorze obiektów. Możesz otworzyć Job Activity Monitor i wyświetlić MS SQL Backup Plan.Sublan na liście zadań.

    Viewing an MS SQL database backup status in the Job activity monitor

  13. Odśwież stronę, klikając prawym przyciskiem myszy Jobs lub inny obiekt, a następnie wybierając opcję Refresh. W Eksploratorze obiektów przejdź do SQL Server Agent > Jobs, wybierz MS 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.

    Starting an MS SQL backup job immediately

    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 YourDatabaseName nazwą 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 LogicalFileName logiczną 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 Compression

    BACKUP DATABASE YourDatabaseName

    TO DISK = 'C:BackupYourDatabaseName_Full.bak'

    WITH COMPRESSION, INIT;

    Gdzie:

    YourDatabaseName należy zastąpić nazwą własnej bazy danych.

    C:BackupYourDatabaseName_Full.bak to ścieżka i nazwa pliku kopii zapasowej, które należy dostosować do własnych potrzeb.

    WITH COMPRESSION to opcja umożliwiająca kompresję w celu zmniejszenia rozmiaru kopii zapasowej.

    INIT to 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 options

    BACKUP DATABASE YourDatabaseName

    TO DISK = 'C:BackupYourDatabaseName_Full.bak'

    WITH

     FORMAT, – Nadpisuje istniejący zestaw nośników

     NAME = 'FullBackup', – Określa nazwę zestawu kopii zapasowej

     STATS = 10, – Wyświetla komunikat co 10 procent postępu

     CHECKSUM, – Sprawdza integralność kopii zapasowej

     COMPRESSION, – Włącza kompresję

     INIT; – Inicjuje nowy zestaw nośników

  • Kopia zapasowa dziennika transakcji:

    -- Transaction Log Backup

    BACKUP LOG YourDatabaseName

    TO DISK = 'C:BackupYourDatabaseName_LogBackup.trn'

    WITH

     FORMAT, – Nadpisuje istniejący zestaw nośników

     NAME = 'LogBackup', – Określa nazwę zestawu kopii zapasowej

     STATS = 10, – Wyświetla komunikat co 10 procent postępu

     INIT; – Inicjuje nowy zestaw nośników

  • Kopia zapasowa do wielu plików:

    -- Full Backup to Multiple Files

    BACKUP DATABASE YourDatabaseName

    TO

    DISK = '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:

  1. Uruchom program MS SQL Server Management Studio i połącz się z instancją serwera MS SQL Server.
  2. Przejdź do bazy danych w sekcji Object Explorer i kliknij prawym przyciskiem myszy nazwę bazy danych. W menu kontekstowym kliknij opcję Tasks > Generate Scripts .

    Generating a T-SQL script

  3. Zapoznaj się z poradami w kroku Introduction kreatora Generate Scripts . Możesz zaznaczyć pole wyboru Do not show this page again . Na każdym kroku kreatora klikaj przycisk Next , aby kontynuować.
  4. W kroku Choose Objects kliknij opcję Select specific database objects. Wybierz tabele, których kopię zapasową chcesz utworzyć. W tym przykładzie wybieramy tabelę Person.Address z bazy danych do utworzenia kopii zapasowej.

    Selecting an MS SQL table to back up

  5. W kroku Set Scripting Options określ sposób zapisywania skryptów. Wybierz opcję Save as script file i wybierz Single script file. Wprowadź nazwę pliku kopii zapasowej w odpowiednim folderze. Kliknij przycisk … , aby wybrać folder i wprowadź nazwę kopii zapasowej tabeli MS SQL.

    Setting the scripting options

  6. Kliknij przycisk Advanced i w otwartym oknie Advanced Scripting Options ustaw opcję Types of data to script = Schema and data. Kliknij przycisk OK , aby zapisać ustawienia i zamknąć okno. Następnie przejdź do kolejnego kroku kreatora.

    Configuring advanced scripting options

  7. Sprawdź podsumowanie konfiguracji i przejdź do ostatniego kroku tworzenia kopii zapasowej tabeli bazy danych.

    The configuration summary to generate a table backup script

  8. Na etapie Save Scripts możesz obserwować postęp tworzenia kopii zapasowej. Poczekaj, aż proces tworzenia kopii zapasowej bazy danych MS SQL się zakończy.

    Saving a script for a table backup

  9. 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 .

    A script for MS SQL table backup is saved as an sql file

  10. Kliknij dwukrotnie plik MS_SQL_Table_Backup.sql i otwórz ten plik skryptu SQL w programie SSMS. Zmień nazwę bazy danych w pierwszym wierszu, aby dostosować ją do wymagań swojego środowiska.

    A table backup script

  11. 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:

  1. Otwórz wiersz poleceń (naciśnij Win+R, wpisz cmd i naciśnij Enter) w systemie Windows z uprawnieniami administratora.
  2. Przejdź do pliku wykonywalnego narzędzia bcp w katalogu instalacyjnym MS SQL Server (dla MS SQL Server 2022 używany jest plik 160). Na przykład:

    cd C:Program FilesMicrosoft SQL Server160ToolsBinn

  3. 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).

  4. 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:

  1. Zaloguj się do serwera MS SQL Server w programie SSMS, korzystając z konta administratora.
  2. Kliknij prawym przyciskiem myszy Databases w Object Explorer i wybierz Restore Database z menu kontekstowego.

    How to restore an MS SQL database from a backup in MS SQL Management Studio

  3. W oknie Restore Database wybierz Device , aby przywrócić bazę danych MS SQL z pliku .bak , a następnie kliknij przycisk … , aby wybrać plik .bak .

    How to open a .bak file to restore an MS SQL database in SSMS

  4. Wybierz File jako typ nośnika kopii zapasowej i kliknij Add.

    Adding a backup file from which a database must be restored

  5. 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 .

    Selecting an MS SQL database backup file with the bak extension

  6. Kliknij dwukrotnie przycisk OK , aby zapisać ustawienia i powrócić do okna Restore Database . Program SSMS wyświetli postęp operacji przywracania. Proces ten można monitorować w oknie Restore Progress .

    Ready to restore a database in SSMS

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 YourDatabaseName nazwą swojej bazy danych i podaj ścieżkę do pliku pełnej kopii zapasowej. Opcja WITH REPLACE jest 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.
  • Przywracanie pliku lub grupy plików:

    RESTORE DATABASE YourDatabaseName FILE = 'LogicalFileName' FROM DISK = 'C:BackupYourDatabaseName_File.bak' WITH REPLACE;

    Zastąp LogicalFileName logiczną 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_ONLY jest 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:

  1. maszyny fizyczne
    oraz inne pozycje do spisu inwentarzaSettings > Inventory

    repozytorium kopii zapasowych

    A machine with MS SQL Server is added to the inventory

  2. Jobs > +Physical machine backup job

    Creating a new backup job for MS SQL Server backup in the NAKIVO solution


  3. Krok po kroku z NAKIVO Next
    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.Selecting a machine running MS SQL Server to back up

    Upewnij się, że wymagany fizyczny serwer Windows lub maszyna wirtualna z serwerem Microsoft SQL Server została dodana do wykazu zasobów NAKIVO.

  4. W tym przykładzie wykonujemy kopię zapasową komputera fizycznego i wybieramy

  5. .

    Selecting a backup repository to store backups

  6. 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

    Configuring a backup schedule for MS SQL Server , aby kontynuować.

  7. 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 & Run Wybierz 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.

    Configuring backup job options

  8. 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.

skracanie dzienników

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:

  1. W interfejsie internetowym rozwiązania NAKIVO przejdź do Jobs > Recover > Microsoft SQL Server objects.

    Starting to recover Microsoft SQL Server objects from a backup

  2. 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 wyboru Automatically locate application databases jest zaznaczone. W każdym kroku kreatora odzyskiwania kliknij przycisk „ Next ”, aby kontynuować.

    Selecting a recovery point to recover MS SQL database objects

  3. 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.

      Selecting a recovery server for an MS SQL database

    • W kroku Objects kreatora odzyskiwania wybierz bazę danych, którą chcesz odzyskać (plik .mdf ).

      Selecting a database file from a backup

      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.

      Selecting individual database objects to recover

  4. 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

    Configuring MS SQL database recovery options in NAKIVO Backup & Replication

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

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

People also read