Techniki wykonywania kopii zapasowych i odzyskiwania baz danych SQL

Microsoft SQL Server to profesjonalny system zarządzania służący do przetwarzania danych oraz komunikacji z relacyjnymi bazami danych. Dla wielu organizacji baza danych stanowi zazwyczaj kluczowy element infrastruktury informatycznej lub projektu biznesowego. Z tego powodu tworzenie 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 odzyskania 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 tylko do kopiowania

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ę zapasową pełną jako podstawę dla każdego innego rodzaju kopii zapasowej.

Pełna kopia zapasowa SQL stanowi pełną 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 odzyskiwanie bazy danych, zapewniając jej dokładne 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 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 SQL Server selektywnie przechwytuje dane obszarów bazy danych zmienionych od ostatniej pełnej kopii zapasowej, wykorzystując pełną kopię zapasową jako punkt wyjścia. Ten typ 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 może skutkować niewielkim lub znacznym rozmiarem w zależności od ostatniego wolumenu transakcji.

Ponieważ kopia różnicowa nie obejmuje wszystkich elementów, jej wykonanie jest zazwyczaj szybsze niż w przypadku pełnej kopii zapasowej. Replika różnicowa bazy danych, rejestrująca stan zmienionych obiektów bazy danych w momencie utworzenia, zawiera inne dane w każdej kolejnej replice, gdy tworzy się serię replik różnicowych dla często aktualizowanej bazy danych.

Ponieważ rozmiar tych kopii zapasowych rośnie, przywrócenie kopii zapasowej 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ę dla danych w replikach różnicowych.

Podsumowując, główne cechy kopii różnicowej SQL Server to:

  • Kopia różnicowa rejestruje tylko zmiany wprowadzone w bazie danych od ostatniej pełnej kopii zapasowej.
  • Obejmuje ona wszystkie zmiany wprowadzone w bazie danych od ostatniej pełnej kopii zapasowej, a nie tylko zmiany wprowadzone od 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 kopie zapasowe pełne, różnicowe i przyrostowe , aby lepiej zrozumieć różnice między nimi.

Kopia zapasowa dziennika transakcji

Kopia zapasowa dziennika transakcji w 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 wykonywaniu kopii zapasowych dzienników transakcji i ma zastosowanie wyłącznie do modeli pełnego odzyskiwania lub z rejestrowaniem zbiorczym. Pliki dziennika transakcji zawierają serię wpisów dokumentujących historię modyfikacji danych w bazie danych. Kopia zapasowa dziennika transakcji obejmuje wszystkie rekordy 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, co jest szczególnie istotne w przypadku stosowania modelu pełnego odzyskiwania lub z rejestrowaniem zbiorczym 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 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 odtworzenie stanu z określonego momentu i mają kluczowe znaczenie dla zachowania spójności danych.
  • Stosowane w połączeniu z kopią pełną i różnicową w celu stworzenia kompleksowej strategii tworzenia kopii zapasowych.

Kopia zapasowa plików i grup plików

Kopia zapasowa plików pozwala na niezależne wykonywanie kopii zapasowej każdego pliku, zamiast wymagać wykonywania kopii zapasowej całej bazy danych. Ma to zastosowanie, 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, które wymagają szczególnej uwagi pod względem wykonywania kopii zapasowej. Wykonanie kopii zapasowej plików można przeprowadzić za pomocą T-SQL lub SSMS. Jeśli jednak baza danych składa się głównie z jednego pliku danych, ta opcja może nie być odpowiednia.

Główne funkcje kopii zapasowej plików MS SQL to:

  • Ten typ kopii zapasowej pozwala na wykonywanie kopii poszczególnych plików bazy danych lub grup plików.
  • Przydatne, gdy trzeba selektywnie wykonać kopię zapasową określonych części bazy danych.
  • Można również używać kopii zapasowych plików/grup plików do przywracania fragmentów danych.

Kopia zapasowa typu „tylko kopia”

Kopia zapasowa typu „tylko kopia” dla serwera MS SQL działa niezależnie od konwencjonalnej sekwencji tworzenia kopii zapasowych, tworząc kopię zapasową bez wpływu na oryginalne kopie zapasowe, sekwencje tworzenia kopii zapasowych lub 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 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 używa się kopii typu „tylko kopia” do pełnej kopii zapasowej, może to wpłynąć na kolejną kopię różnicową. Kluczowa różnica między kopią pełną a kopią typu „tylko kopia” polega na tym, że ta druga nie przerywa łańcucha różnicowego. Co ważne, żadna z tych metod nie zakłóca ciągłości dziennika, ponieważ żadna z nich nie powoduje obcinania pliku dziennika.

Jeśli chodzi o kopie zapasowe dzienników, mające zastosowanie w modelach pełnego i zbiorczego odzyskiwania, celem kopii zapasowej dziennika typu „copy-only” jest uchwycenie istniejącego punktu odzyskiwania dziennika. Chociaż kopia zapasowa dziennika typu „copy-only” jest rzadko stosowana, w niektórych sytuacjach może okazać się pomocna przy przywracaniu danych w trybie online.

Główne funkcje kopii zapasowej MS SQL typu „copy-only” to:

  • Kopia zapasowa typu „copy-only” 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 Microsoft SQL Server można łączyć, aby stworzyć kompleksową strategię wykonywania kopii zapasowych, która spełnia konkretne wymagania środowiska SQL Server. Regularne testowanie i walidacja procedury wykonywania kopii zapasowych i przywracania danych są również istotnymi elementami solidnego strategia ochrony danych.

Jak wykonać kopię zapasową bazy danych SQL

Istnieje kilka metod wykonywania kopii zapasowej bazy danych MS SQL przy użyciu natywnych narzędzi Microsoft:

  • MS SQL Server Management Studio (SSMS) to bezpłatne narzędzie natywne z przyjaznym dla użytkownika interfejsem graficznym. SSMS należy zainstalować ręcznie na tym samym serwerze lub komputerze zdalnym, na którym zainstalowano SQL Server.
  • Transaction SQL (T-SQL) polecenia służą do zarządzania serwerem MS SQL Server, w tym do operacji wykonywania kopii zapasowych i przywracania baz danych.
  • sqlcmd jest narzędziem w wierszu poleceń systemu Windows (cmd), które pozwala na uruchamianie poleceń T-SQL na serwerze SQL Server.
  • PowerShell jest zaawansowanym środowiskiem wiersza poleceń w systemie Windows, które obsługuje zarządzanie serwerem SQL Server po zainstalowaniu modułu PowerShell SqlServer .

Tworzenie kopii zapasowej w programie MS SQL Server Management Studio

Aby wykonać kopię zapasową bazy danych serwera SQL Server, wykonaj następujące czynności:

  1. Otwórz program 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: Disk lub adres URL (wybierz dysk)
    • Odznacz pole wyboru Copy-only „Kopia zapasowa”, jeśli nie chcesz wykonać 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 Properties, wybierz stronę Database Settings i wyświetl/edytuj Database default locations.

  5. Kliknij Add , aby wybrać niestandardową lokalizację docelową dla bieżącego zadania wykonywania kopii zapasowej MS SQL, a następnie wybierz Delete , aby odpowiednio usunąć niepotrzebną lokalizację. W tym przykładzie wybieramy "D:MS SQL Backup DBAdventureWorks" .

    UWAGA : Aby wykonać kopię zapasową, użyj dysku innego niż ten, na którym znajduje się oryginalna baza danych. Zaleca się przestrzeganie Zasada tworzenia kopii zapasowej 3-2-1 w celu zapewnienia solidnej strategii ochrony danych. Można również odpowiednio skonfigurować zachowanie nadpisywania i kompresję w opcjach nośników i opcjach tworzenia kopii zapasowych. Przycisk Skrypt tworzy skrypt T-SQL na podstawie wybranych ustawień.

    Configuring MS SQL database backup in SSMS

  6. Nie zapomnij wprowadzić nazwy pliku kopii zapasowej. Należy pamiętać, że kopie różnicowe mogą mieć rozszerzenie pliku .dif .

    Selecting the destination location for a database backup

  7. Aby kontynuować, należy kliknąć OK w każdym oknie.

Jeśli wszystko jest poprawne, powinien pojawić się komunikat: The backup of database "AdventureWorks2022" completed successfully.

Harmonogram tworzenia kopii zapasowych Microsoft SQL w SSMS

Można zautomatyzować tworzenie kopii zapasowych bazy danych MS SQL i zaplanować zadania tworzenia kopii zapasowych. Aby zaplanować tworzenie kopii zapasowych bazy danych, należy wykonać następujące kroki w programie Microsoft SQL Server Management Studio.

  1. W Object Explorerprzejdź do Management, kliknij prawym przyciskiem myszy Maintenance Plansi kliknij New Maintenance Plan.
  2. Wprowadź nazwę nowego planu konserwacji, na przykład MS SQL Backup Plan. Kliknij OK.

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

  3. Kliknij ikonę Calendar (Harmonogram podplanu), aby skonfigurować harmonogram tworzenia kopii zapasowej MS SQL.

    Opening a calendar to schedule a backup task in SSMS

  4. Wybierz potrzebne opcje harmonogramu tworzenia kopii zapasowej MS SQL:
    • Typ harmonogramu: Powtarzający się (domyślnie)
    • Częstotliwość
    • Codziennie Częstotliwość
    • Czas trwania

    Kliknij OK , aby zapisać ustawienia.

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

  5. Kliknij ToolBox w lewym górnym rogu interfejsu SSMS.

    Opening the Toolbox in MS SQL Server Management Studio

  6. Przeciągnij Back Up Database Task z Toolbox do pustego obszaru zakładki MS SQL Backup Plan [Design] .
  7. 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

  8. Otworzy się okno opcji Back Up Database Task . Wybierz typ połączenia, np. Local server connection.
  9. 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ą przedstawione na poniższym zrzucie ekranu.

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

    The Destination and Options tabs

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

  11. Naciśnij Ctrl+S , aby zapisać zmiany w programie SSMS.
  12. Naciśnij F5 , aby odświeżyć wyświetlane elementy w programie SSMS.
  13. 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

  14. Odśwież stronę, klikając prawym przyciskiem myszy Jobs lub inny obiekt i wybierając 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 Start Job at Step , aby uruchomić zaplanowane zadanie tworzenia kopii zapasowej w tej chwili.

    Starting an MS SQL backup job immediately

    Alternatywnie możesz utworzyć zaplanowane zadanie tworzenia 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 T-SQL

Użyj następujących głównych poleceń, aby wykonać kopię zapasową bazy danych MS SQL w 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, nie dysku systemowego (C:) ani dysku z oryginalną bazą danych).

  • Kopia różnicowa:

    BACKUP DATABASE YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Diff.bak' WITH DIFFERENTIAL;

    Przed wykonaniem kopii różnicowej upewnij się, że wykonano wcześniej kopię pełną.

  • Kopia dziennika transakcji:

    BACKUP LOG YourDatabaseName TO DISK = 'C:BackupYourDatabaseName_Log.bak';

    Kopie dziennika transakcji mają kluczowe znaczenie dla odzyskiwania danych 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 wykonywania kopii zapasowej.

W powyższych przykładach wyjaśniliśmy podstawowe polecenia. Możesz skorzystać z dodatkowe parametry w celu dostosowania zaawansowanych ustawień wykonywania kopii zapasowej w poleceniach T-SQL. Poniżej znajduje się kilka przykładów skryptów T-SQL do wykonywania kopii zapasowej w Microsoft SQL Server z zaawansowanymi opcjami, w tym kompresją:

  • 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 zmienić w danym przypadku.

    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;

Te przykłady pokazują różne zaawansowane opcje, takie jak formatowanie zestawu nośników, określanie nazw zestawów kopii zapasowych, wyświetlanie statystyk postępu i 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ą określonej tabeli w programie Microsoft SQL Server, można użyć funkcji Generate Scripts w programie MS SQL Server Management Studio (SSMS) w celu utworzenia skryptu kopii zapasowej schematu i danych tabeli lub skorzystać z narzędzia bcp (Bulk Copy Program). W przypadku obu metod należy wykonać poniższe czynności.

Metoda 1: Generowanie skryptów w 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 Object Explorer i kliknij prawym przyciskiem myszy nazwę bazy danych. W menu kontekstowym wybierz 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 przycisk Select specific database objects. Wybierz tabele, których kopię zapasową chcesz wykonać. W tym przykładzie wybieramy tabelę Person.Address z bazy danych, aby wykonać kopię zapasową.

    Selecting an MS SQL table to back up

  5. W kroku Set Scripting Options określ, w jaki sposób skrypty mają być zapisane. Wybierz Save as script file i wybierz Single script file. Wprowadź nazwę pliku kopii zapasowej w odpowiednim folderze. Kliknij , aby wybrać folder i wprowadź nazwę kopii zapasowej tabeli MS SQL.

    Setting the scripting options

  6. Kliknij Advanced i w otwartym oknie Advanced Scripting Options ustaw Types of data to script = Schema and data. Kliknij 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. W kroku Save Scripts możesz śledzić postęp tworzenia kopii zapasowej. Poczekaj, aż proces wykonania 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 SSMS. Zmień nazwę bazy danych w pierwszym wierszu, aby spełnić wymagania swojego środowiska.

    A table backup script

  11. Kliknij Execute , aby uruchomić skrypt tworzenia kopii zapasowej tabeli MS SQL.

Metoda 2: Użyj bcp (Bulk Copy Program)

Użyj poniższego schematu postępowania, 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 (160 jest używane dla MS SQL Server 2022). 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> rzeczywistą nazwą bazy danych, schematem, tabelą oraz żądaną ścieżką 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 połączenie zaufane (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 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ć MS SQL Server Management Studio (SSMS), narzędzia dostarczanego przez Microsoft do zarządzania bazami danych MS SQL Server. Przywróć dane z wykonanej kopii zapasowej do normalnego stanu. Dopiero wtedy można otworzyć dane.

UWAGA : Możesz skopiować plik backupname.bak , zmienić nazwę skopiowanego pliku backupname.bak na backupname.xls i otworzyć plik .xls w programie Microsoft Excel, jeśli chcesz wyświetlić dane z kopii zapasowej, ale nie masz w danej chwili zainstalowanego programu MS SQL Server. Skopiowanie pliku zapobiega uszkodzeniu głównego pliku kopii zapasowej, jeśli coś pójdzie nie tak.

Przywracanie bazy danych MS SQL w SSMS

Pamiętaj, że do przywrócenia bazy danych potrzebne są odpowiednie uprawnienia, a instancja MS SQL Server powinna mieć dostęp do pliku .bak .

Aby przywrócić bazę danych MS SQL Server w MS SQL Server Management Studio z pliku kopii zapasowej, wykonaj następujące czynności:

  1. Zaloguj się do MS SQL Server w SSMS przy użyciu konta administratora.
  2. Kliknij prawym przyciskiem myszy Databases w Object Explorer i kliknij Restore Database w menu kontekstowym.

    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 i 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 OK , aby zapisać ustawienia i powrócić do okna Restore Database . 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 przy użyciu instrukcji RESTORE DATABASE . Może to być przydatne w skryptach lub sytuacjach, w których narzędzie SSMS nie jest dostępne. 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 różnicowej:

    RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_Diff.bak' WITH NORECOVERY;

    Po przywróceniu kopii zapasowej różnicowej może być konieczne przywrócenie dodatkowych kopii zapasowych dziennika transakcji, aby odzyskać bazę danych do najnowszego punktu w czasie.

    • Aby przywrócić kopię zapasową 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 zapasowej dziennika transakcji. Na koniec wykonaj następujące polecenie, aby przywrócić bazę danych do trybu 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 tylko z kopiowania:

    RESTORE DATABASE YourDatabaseName FROM DISK = 'C:BackupYourDatabaseName_CopyOnly.bak' WITH REPLACE, COPY_ONLY;

    Opcja COPY_ONLY jest wymagana w przypadku przywracania tylko z kopiowania.

Kopia zapasowa Microsoft SQL & Odzyskiwanie za pomocą NAKIVO

NAKIVO Backup & Replication to uniwersalne rozwiązanie do ochrony danych, które obsługuje tworzenie kopii zapasowych maszyn hostujących bazy danych MS SQL. Kopia zapasowa Microsoft SQL jest wykonywana podczas wykonywania kopii zapasowej komputera z systemem Windows wdrażanego 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 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ą wykonywania kopii zapasowej Microsoft SQL Server przy użyciu rozwiązania NAKIVO jest możliwość stosowania podejścia przyrostowego. Kopie przyrostowe przyspieszają proces wykonywania kopii zapasowej i oszczędzają miejsce na dysku. Techniki kompresji, szyfrowania i obcinania dziennika SQL sprawiają, że wykorzystanie miejsca na dysku jest bardziej racjonalne, a proces wykonywania kopii zapasowej szybki i bezpieczny. Zadania wykonywania kopii zapasowych są planowane i zautomatyzowane.

Wykonywanie kopii zapasowych serwera hostującego SQL: Krok po kroku z NAKIVO

Aby wykonać kopię zapasową komputera z systemem Windows i bazą danych MS SQL w formacie NAKIVO Backup & Replication, wykonaj następujące czynności:

  1. Otwórz interfejs internetowy NAKIVO Backup & Replication w przeglądarce internetowej.
  2. Upewnij się, że wymagany fizyczny serwer Windows lub maszyna wirtualna z serwerem Microsoft SQL Server została dodana do zasobów NAKIVO. Możesz dodać urządzenia fizyczne, serwery VMware vCenter, hosty ESXi oraz inne pozycje do spisu przechodząc do Settings > Inventory.

    Upewnij się, że w repozytorium kopii zapasowych jest wystarczająco dużo wolnego miejsca na przechowywanie kopii zapasowych.

    A machine with MS SQL Server is added to the inventory

  3. Utwórz nowe zadanie tworzenia kopii zapasowej dla komputera, na którym zainstalowany jest MS SQL Server. Dzięki NAKIVO możesz wykonać kopię zapasową komputera z MS SQL Server w stanie pracy. Kliknij Jobs > + (Utwórz nowe zadanie) i wybierz wymagany typ zadania. W tym przykładzie wykonujemy kopię zapasową komputera fizycznego i wybieramy Physical machine backup job.

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

  4. W pierwszym kroku kreatora nowego zadania tworzenia kopii zapasowej wybierz komputer, na którym zainstalowany jest MS SQL Server. Wybieramy nasz Windows Server 2022 z zainstalowanym MS SQL Server 2022. W jednym zadaniu można wybrać wiele komputerów. Kliknij Next na każdym kroku kreatora, aby kontynuować.

    Selecting a machine running MS SQL Server to back up

  5. 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 użyć repozytorium lokalnego, a następnie utworzyć kopię zapasową w chmurze lub innym repozytorium, aby spełnić zasadę tworzenia kopii zapasowych 3-2-1.

    Selecting a backup repository to store backups

  6. Wybierz opcje harmonogramu. Najnowsze wersje rozwiązania NAKIVO wykorzystują połączony harmonogram i podejście do przechowywania danych. Można skonfigurować elastyczne reguły przechowywania dla zadań tworzenia kopii zapasowych, w tym zadań tworzenia kopii zapasowych baz danych MS SQL. Ustaw nazwę dla każdego harmonogramu.

    Configuring a backup schedule for MS SQL Server

  7. Skonfiguruj opcje zadania tworzenia kopii zapasowej. Wprowadź nazwę zadania, na przykład Zadanie tworzenia kopii zapasowej MS SQL Server 2022. Skonfiguruj ustawienia pełnej kopii zapasowej. Domyślnie stosowane są kopie przyrostowe wraz z okresowymi kopiami pełnymi. Pełne kopie zapasowe mogą być Active full i {177}. Kliknij Finish lub Finish & Run , aby natychmiast uruchomić zadanie.

    Configuring backup job options

  8. Poczekaj, aż zadanie wykonania kopii zapasowej zostanie zakończone.

Należy pamiętać, że NAKIVO Backup & Replication obsługuje obcinanie dziennika dla Microsoft SQL Server, Exchange Server i Oracle Database w celu zaoszczędzenia miejsca na serwerze źródłowym po wykonaniu kopii zapasowej.

Przywracanie bazy danych SQL za pomocą NAKIVO

Proces przywracania bazy danych MS SQL w NAKIVO Backup & Replication jest prosty. Można przywrócić całą maszynę fizyczną lub wirtualną wraz z bazą danych. Alternatywnie można skorzystać z funkcji odzyskiwania selektywnego i odzyskać tylko wybrane obiekty bazy danych (całą bazę danych, tabele itp.).

Aby odzyskać bazę danych MS SQL lub konkretne obiekty bazy danych w NAKIVO Backup & Replication, wykonaj 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. Kliknij Next na każdym etapie kreatora odzyskiwania, 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 wykonania kopii zapasowej lub nowy komputer bez przywracanej bazy danych. Wybieramy oryginalny serwer w celu odzyskania bazy danych.
    • Wprowadź poświadczenia serwera odzyskiwania i kliknij 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 przy nazwie 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 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 poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read