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:
Użyj skryptu Języka Transact-SQL, który używa rodziny poleceń BACKUP DATABASE. Aby uzyskać więcej informacji, zobacz BACKUP (Transact-SQL).
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.
Więcej informacji
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 utworzenia kopii zapasowej baz danych.
Połącz się z wystąpieniem usługi SQL Express i utwórz procedurę składowaną sp_BackupDatabases w bazie danych master przy użyciu skryptu w następującej lokalizacji:
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 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 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ż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 zawiera 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 elementu 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 D: Planowanie zadania przy użyciu harmonogramu zadań systemu Windows w celu wykonania pliku wsadowego utworzonego w kroku B. Aby to zrobić, wykonaj następujące kroki:
Na komputerze z uruchomionym programem SQL Server Express kliknij przycisk Start, a następnie w polu tekstowym wpisz harmonogram zadań.
W obszarze Najlepsze dopasowanie kliknij pozycję Harmonogram zadań, aby go uruchomić.
W harmonogramie zadań kliknij prawym przyciskiem myszy bibliotekę harmonogramu zadań i kliknij polecenie Utwórz zadanie podstawowe....
Wprowadź nazwę nowego zadania (na przykład SQLBackup) i kliknij przycisk Dalej.
Wybierz pozycję Codziennie dla wyzwalacza zadania, a następnie kliknij przycisk Dalej.
Ustaw cykl na jeden dzień i kliknij przycisk Dalej.
Wybierz pozycję Uruchom program jako akcję, a następnie kliknij przycisk Dalej.
Kliknij przycisk Przeglądaj, kliknij plik wsadowy utworzony w kroku C, a następnie kliknij przycisk Otwórz.
Zaznacz pole wyboru Otwórz okno dialogowe Właściwości dla tego zadania po kliknięciu przycisku Zakończ.
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 do odczytu i wykonywania, aby uruchomić narzędzie sqlcmd. Dodatkowo,
Jeśli używasz uwierzytelniania systemu Windows w pliku wsadowym, upewnij się, że właściciel uprawnień zadania 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.
Napiwek
Jako test uruchom plik wsadowy z kroku C z wiersza 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 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.
Na dysku powinno być dużo miejsca, na którym są zapisywane kopie zapasowe. Zalecamy regularne czyszczenie starych plików w folderze Backup, aby upewnić się, że nie zabraknie miejsca na dysku. Skrypt nie zawiera logiki czyszczenia starych plików.