Planowanie i automatyzowanie wykonywania kopii zapasowych baz danych serwera SQL w systemie SQL Server Express

W tym artykule przedstawiono sposób używania skryptu języka Transact-SQL i harmonogramu zadań systemu Windows do automatyzowania wykonywania kopii zapasowych baz danych systemu SQL Server Express zgodnie z harmonogramem.

Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 2019698

Podsumowanie

Wersje systemu SQL Server Express nie oferują możliwości planowania zadań lub planów konserwacji, ponieważ składnik agenta serwera SQL nie jest uwzględniony w tych wersjach. W związku z tym należy zastosować inne podejście do tworzenia kopii zapasowych baz danych podczas korzystania z tych wersji.

Obecnie użytkownicy systemu SQL Server Express mogą tworzyć kopie zapasowe swoich baz danych przy użyciu jednej z następujących metod:

Użyj programu SQL Server Management Studio lub narzędzia Azure Data Studio. Aby uzyskać więcej informacji na temat używania tych narzędzi do tworzenia kopii zapasowej bazy danych, zapoznaj się z następującymi linkami:

W tym artykule opisano sposób używania skryptu języka Transact-SQL wraz z harmonogramem zadań do automatyzowania kopii zapasowych baz danych systemu SQL Server Express zgodnie z harmonogramem.

Uwaga

Dotyczy to tylko wersji systemu SQL Server Express, a nie systemu SQL Server Express LocalDB.

Więcej informacji

Aby utworzyć kopię zapasową baz danych serwera SQL przy użyciu harmonogramu zadań systemu Windows, należy wykonać następujące cztery kroki:

Krok A: Tworzenie procedury składowanej w celu utworzenia kopii zapasowej baz danych.

Połącz się z wystąpieniem systemu SQL Express i utwórz procedurę składowaną sp_BackupDatabases w głównej bazie danych przy użyciu skryptu w następującej lokalizacji:

SQL_Express_Backups

Krok B: Pobierz narzędzie SQLCMD (jeśli dotyczy).

Narzędzie sqlcmd umożliwia wprowadzanie instrukcji języka Transact-SQL, procedur systemowych i plików skryptów. W programie SQL Server 2014 i niższych jego wersjach narzędzie to jest dostarczane jako część produktu. Począwszy od SQL Server 2016 r., sqlcmd narzędzie jest oferowane jako oddzielne pobieranie. Aby uzyskać więcej informacji, zapoznaj się z narzędziem sqlcmd.

Krok C: Tworzenie pliku wsadowego przy użyciu edytora tekstów.

W edytorze tekstów utwórz plik wsadowy o nazwie Sqlbackup.bat, a następnie skopiuj tekst z jednego z następujących przykładów do tego pliku, w zależności od scenariusza:

  • Wszystkie poniższe scenariusze są używają ścieżki D:\SQLBackups jako symbolu zastępczego. Skrypt ten musi zostać dostosowany do odpowiedniego dysku i lokalizacji folderu kopii zapasowej w środowisku.

  • Jeśli używasz uwierzytelniania SQL, upewnij się, że dostęp do folderu jest ograniczony do autoryzowanych użytkowników, ponieważ hasła są przechowywane w postaci zwykłego tekstu.

Uwaga

Folder pliku wykonywalnego SQLCMD zazwyczaj znajduje się w zmiennych ścieżki dla serwera po zainstalowaniu programu SQL Server lub po zainstalowaniu go jako narzędzia autonomicznego. Jeśli jednak zmienna Ścieżki nie zawiera tego folderu, możesz dodać jego lokalizację do zmiennej Ścieżki lub określić pełną ścieżkę do tego narzędzia.

Przykład 1.: Pełne kopie zapasowe wszystkich baz danych w lokalnym nazwanym wystąpieniu programu SQLEXPRESS przy użyciu uwierzytelniania systemu Windows.

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"

Przykład 2: Różnicowe kopie zapasowe wszystkich baz danych w lokalnym wystąpieniu o nazwie SQLEXPRESS przy użyciu uwierzytelnienia SQLLogin i jego hasła.

 // Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases  @backupLocation ='D:\SQLBackups', @BackupType='D'"

Uwaga

Program SQLLogin powinien mieć co najmniej rolę operatora kopii zapasowej w programie SQL Server.

Przykład 3.: Rejestrowanie kopii zapasowych wszystkich baz danych w lokalnym nazwanym wystąpieniu środowiska SQLEXPRESS przy użyciu uwierzytelniania systemu Windows

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"

Przykład 4.: Pełne kopie zapasowe bazy danych USERDB w lokalnym nazwanym wystąpieniu programu SQLEXPRESS przy użyciu uwierzytelniania systemu Windows

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"

Podobnie można utworzyć różnicową kopię zapasową bazy danych USERDB, wklejając wartość "D" dla parametru @backupType i kopię zapasową dziennika usługi USERDB, wklejając wartość "L" dla parametru @backupType .

Krok D.: Zaplanuj zadanie przy użyciu harmonogramu zadań systemu Windows, aby wykonać plik wsadowy utworzony w kroku B. Aby to zrobić, wykonaj następujące kroki:

  1. Na komputerze z uruchomioną SQL Server Express kliknij przycisk Start, a następnie w polu tekstowym wpisz zadanie Scheduler.

    Zrzut ekranu przedstawiający opcję aplikacji pulpitu harmonogramu zadań na pasku wyszukiwania w menu Start.

  2. W obszarze Najlepsze dopasowanie kliknij pozycję Harmonogram zadań , aby go uruchomić.

  3. W harmonogramie zadań kliknij prawym przyciskiem myszy bibliotekę harmonogramu zadań i kliknij pozycję Utwórz zadanie podstawowe....

  4. Wprowadź nazwę nowego zadania (na przykład SQLBackup), a następnie kliknij przycisk Dalej.

  5. Wybierz pozycję Codziennie dla wyzwalacza zadania i kliknij przycisk Dalej.

  6. Ustaw cykl na jeden dzień i kliknij przycisk Dalej.

  7. Wybierz pozycję Uruchom program jako akcję i kliknij przycisk Dalej.

  8. Kliknij przycisk Przeglądaj, kliknij plik wsadu utworzony w kroku C, a następnie kliknij przycisk Otwórz.

  9. Zaznacz pole wyboru Otwórz okno dialogowe Właściwości tego zadania po kliknięciu przycisku Zakończ.

  10. Wybierz kartę Ogólne.

    1. Przejrzyj opcje Zabezpieczenia i upewnij się, że dla konta użytkownika uruchamiającego zadanie (wymienione w obszarze Podczas uruchamiania zadania użytkownik ma następujące konto użytkownika:)

      Konto powinno mieć co najmniej uprawnienia odczytu i wykonywania do uruchamiania narzędzia sqlcmd. Dodatkowo:

      • Jeśli używasz uwierzytelniania systemu Windows w pliku wsadowym, upewnij się, że właściciel zadania ma uprawnienia do wykonywania kopii zapasowych bazy danych SQL.

      • Jeśli używasz uwierzytelniania SQL w pliku wsadowym, użytkownik programu SQL powinien mieć uprawnienia niezbędne do wykonywania kopii zapasowych bazy danych SQL.

    2. Dostosuj inne ustawienia zgodnie z wymaganiami.

Porada

W ramach testu uruchom plik wsadowy z kroku C w wierszu polecenia, który jest uruchamiany przy użyciu tego samego konta użytkownika, które jest właścicielem zadania.

Podczas korzystania z procedury opisanej w tym artykule należy pamiętać o następujących kwestiach:

  • Usługa Harmonogram zadań musi być uruchomiona w momencie, gdy zadanie ma zostać uruchomione. Zalecamy ustawienie typu uruchamiania dla tej usługi jako automatycznego. Dzięki temu usługa będzie działać nawet po ponownym uruchomieniu.

  • Na dysku, na którym są zapisywane kopie zapasowe, powinno być dużo miejsca. Zalecamy regularne czyszczenie starych plików w folderze Kopia zapasowa, aby upewnić się, że nie zabraknie miejsca na dysku. Skrypt ten nie zawiera logiki zajmującej się czyszczeniem starych plików.

Dodatkowe informacje

Omówienie harmonogramu zadań