Udostępnij za pośrednictwem


Planowanie i automatyzowanie kopii zapasowych baz danych programu SQL Server w programie SQL Server Express

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

Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 2019698

Podsumowanie

Wersje programu SQL Server Express nie oferują sposobu planowania zadań lub planów konserwacji, ponieważ składnik agenta programu SQL Server nie jest uwzględniony w tych wersjach. W związku z tym należy użyć innego podejścia do tworzenia kopii zapasowych baz danych podczas korzystania z tych wersji.

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

Użyj programu SQL Server Management Studio lub 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ń w celu automatyzowania kopii zapasowych baz danych SQL Server Express zgodnie z harmonogramem.

Uwaga 16.

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

Jak utworzyć zaplanowaną kopię zapasową w programie SQL Express

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

Krok 1. Tworzenie procedury składowanej w celu tworzenia kopii zapasowych baz danych

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

SQL_Express_Backups

Krok 2. Pobieranie narzędzia klienta SQLCMD

Narzędzie sqlcmd umożliwia wprowadzanie instrukcji Języka Transact-SQL, procedur systemowych i plików skryptów. W programie SQL Server 2014 i starszych wersjach narzędzie jest dostarczane jako część produktu. Począwszy od programu SQL Server 2016, sqlcmd narzędzie jest oferowane jako oddzielny plik do pobrania. Aby uzyskać więcej informacji, zapoznaj się z narzędziem sqlcmd.

Krok 3. 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żywane D:\SQLBackups jako posiadacz zastępczy. Skrypt należy dostosować do odpowiedniej lokalizacji dysku i folderu Kopii zapasowej w danym ś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 16.

Folder pliku wykonywalnego jest zazwyczaj w zmiennych path serwera po zainstalowaniu programu SQL Server lub po zainstalowaniu SQLCMD go jako narzędzia autonomicznego. Jeśli jednak zmienna Path nie wyświetli listy tego folderu, możesz dodać jego lokalizację do zmiennej Path lub określić pełną ścieżkę do narzędzia.

Przykład 1: Pełne kopie zapasowe wszystkich baz danych w lokalnym nazwanym wystąpieniu 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 nazwanym wystąpieniu SQLEXPRESS przy użyciu programu SQLLogin i jego hasła

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

Uwaga 16.

Element SQLLogin powinien mieć co najmniej rolę Operator kopii zapasowej w programie SQL Server.

Przykład 3. Tworzenie kopii zapasowych dzienników wszystkich baz danych w lokalnym nazwanym wystąpieniu 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 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 parametr "D" dla parametru @backupType i kopii zapasowej dziennika USERDB, wklejając wartość "L" dla parametru @backupType .

Krok 4. Planowanie zadania przy użyciu harmonogramu zadań systemu Windows w celu wykonania pliku wsadowego utworzonego w kroku 2

Wykonaj te kroki:

  1. Na komputerze z uruchomionym programem SQL Server Express wybierz pozycję Start i wpisz Harmonogram zadań w polu tekstowym.

    Zrzut ekranu przedstawiający opcję aplikacji klasycznej Harmonogramu zadań na pasku wyszukiwania menu Start.

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

  3. W harmonogramie zadań kliknij prawym przyciskiem myszy harmonogram zadań (lokalny) i wybierz polecenie Utwórz zadanie podstawowe.

  4. Wprowadź nazwę nowego zadania (na przykład SQLBackup) i wybierz przycisk Dalej.

  5. Wybierz pozycję Codziennie dla wyzwalacza zadania, a następnie wybierz pozycję Dalej.

  6. Ustaw cykl na jeden dzień i wybierz pozycję Dalej.

  7. Wybierz pozycję Uruchom program jako akcję, a następnie wybierz pozycję Dalej.

  8. Wybierz pozycję Przeglądaj, wybierz plik wsadowy utworzony w kroku 3, a następnie wybierz pozycję Otwórz.

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

  10. Na karcie Ogólne:

    • Przejrzyj opcje zabezpieczeń 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 Odczyt i Wykonywanie, aby uruchomić sqlcmd narzędzie. Dodatkowo,

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

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

    • Dostosuj inne ustawienia zgodnie z wymaganiami.

Wskazówka

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

Wymagania

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

  • Usługa Harmonogram zadań musi być uruchomiona w czasie, gdy zadanie jest zaplanowane do uruchomienia. Zalecamy ustawienie typu uruchamiania dla tej usługi jako Automatyczne. Dzięki temu usługa będzie działać nawet po ponownym uruchomieniu.

  • Musisz utworzyć wystarczającą ilość miejsca na dysku, na którym są zapisywane kopie zapasowe. Zalecamy regularne czyszczenie starych plików w folderze Kopia zapasowa , aby upewnić się, że nie zabraknie miejsca na dysku. Skrypt nie zawiera logiki czyszczenia starych plików.

Dodatkowa dokumentacja

Harmonogram zadań — omówienie