Back-ups van SQL Server databases in SQL Server Express plannen en automatiseren

In dit artikel wordt beschreven hoe u een Transact-SQL-script en Windows Task Scheduler gebruikt om back-ups van SQL Server Express databases op een geplande basis te automatiseren.

Originele productversie: SQL Server
Origineel KB-nummer: 2019698

Samenvatting

SQL Server Express-edities bieden geen manier om taken of onderhoudsplannen in te plannen, omdat het SQL Server Agent-onderdeel niet is opgenomen in deze edities. Daarom moet u een andere benadering gebruiken om een back-up van uw databases te maken wanneer u deze edities gebruikt.

Momenteel kunnen SQL Server Express-gebruikers een back-up maken van hun databases met behulp van een van de volgende methoden:

Gebruik SQL Server Management Studio of Azure Data Studio. Raadpleeg de volgende koppelingen voor meer informatie over het gebruik van deze hulpprogramma's voor het maken van een back-up van een database:

In dit artikel wordt beschreven hoe u een Transact-SQL-script samen met Task Scheduler gebruikt om back-ups van SQL Server Express-databases gepland te automatiseren.

Opmerking

Dit geldt alleen voor SQL Server Express-edities en niet voor SQL Server Express LocalDB.

Meer informatie

U moet deze vier stappen volgen om een back-up van uw SQL Server-databases te maken met behulp van Windows Task Scheduler:

Stap A: een opgeslagen procedure maken om een back-up van uw databases te maken.

Maak verbinding met uw SQL Express-exemplaar en maak sp_BackupDatabases opgeslagen procedure in uw hoofddatabase met behulp van het script op de volgende locatie:

SQL_Express_Backups

Stap B: het hulpprogramma SQLCMD downloaden (indien van toepassing).

Met sqlcmd het hulpprogramma kunt u Transact-SQL-instructies, systeemprocedures en scriptbestanden invoeren. In SQL Server 2014 en lagere versies wordt het hulpprogramma geleverd als onderdeel van het product. Vanaf SQL Server 2016 wordt sqlcmd het hulpprogramma aangeboden als een afzonderlijke download. Raadpleeg het hulpprogramma sqlcmd voor meer informatie.

Stap C: maak een batchbestand met behulp van de teksteditor.

Maak in een teksteditor een batchbestand met de naam Sqlbackup.bat en kopieer de tekst uit een van de volgende voorbeelden naar dat bestand, afhankelijk van uw scenario:

  • Alle onderstaande scenario's worden gebruikt D:\SQLBackups als plaatshouder. Het script moet worden aangepast aan het juiste station en de locatie van de back-upmap in uw omgeving.

  • Als u SQL-verificatie gebruikt, moet u ervoor zorgen dat de toegang tot de map wordt beperkt tot geautoriseerde gebruikers, omdat de wachtwoorden in duidelijke tekst worden opgeslagen.

Opmerking

De map voor het SQLCMD uitvoerbare bestand bevindt zich over het algemeen in de Padvariabelen voor de server nadat SQL Server is geïnstalleerd of nadat u deze hebt geïnstalleerd als zelfstandig hulpprogramma. Maar als de Padvariabele deze map niet weergeeft, kunt u de locatie ervan toevoegen aan de Padvariabele of het volledige pad naar het hulpprogramma opgeven.

Voorbeeld 1: volledige back-ups van alle databases in het lokale benoemde exemplaar van SQLEXPRESS met behulp van Windows-verificatie.

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

Voorbeeld 2: differentiële back-ups van alle databases in het lokale benoemde exemplaar van SQLEXPRESS met behulp van een SQLLogin en het bijbehorende wachtwoord.

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

Opmerking

De SQLLogin moet ten minste de rol Back-upoperator hebben in SQL Server.

Voorbeeld 3: logboekback-ups van alle databases in een lokaal benoemd exemplaar van SQLEXPRESS met behulp van Windows-verificatie

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

Voorbeeld 4: volledige back-ups van de database USERDB in het lokale benoemde exemplaar van SQLEXPRESS met behulp van Windows-verificatie

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

Op dezelfde manier kunt u een differentiële back-up van USERDB maken door te plakken in D voor de parameter @backupType en een logboekback-up van USERDB door te plakken in L voor de parameter @backupType .

Stap D: plan een taak met behulp van Windows Task Scheduler om het batchbestand uit te voeren dat u in stap B hebt gemaakt. Voer hiervoor de volgende stappen uit:

  1. Klik op de computer waarop SQL Server Express wordt uitgevoerd op Start en typ vervolgens taakplanner in het tekstvak.

    Schermopname van de optie Taakplanner bureaublad-app in de zoekbalk van het menu Start.

  2. Klik onder Beste overeenkomst op Taakplanner om deze te starten.

  3. Klik in Task Scheduler met de rechtermuisknop op Taakplanningsbibliotheek en klik op Basistaak maken....

  4. Voer de naam in voor de nieuwe taak (bijvoorbeeld SQLBackup) en klik op Volgende.

  5. Selecteer Dagelijks als taaktrigger en klik op Volgende.

  6. Stel het terugkeerpatroon in op één dag en klik op Volgende.

  7. Selecteer Een programma starten als de actie en klik op Volgende.

  8. Klik op Bladeren, klik op het batchbestand dat u in stap C hebt gemaakt en klik vervolgens op Openen.

  9. Schakel het vakje Het dialoogvenster Eigenschappen openen in voor deze taak wanneer ik op Voltooien klik.

  10. Selecteer het tabblad Algemeen.

    1. Controleer de beveiligingsopties en controleer het volgende voor het gebruikersaccount waarop de taak wordt uitgevoerd (vermeld onder Bij het uitvoeren van de taak gebruikt u het volgende gebruikersaccount:)

      Het account moet ten minste de machtigingen Lezen en Uitvoeren hebben om het hulpprogramma sqlcmd te starten. Bijkomend,

      • Als u Windows-verificatie gebruikt in het batchbestand, moet u ervoor zorgen dat de eigenaar van de taak machtigingen heeft om SQL-back-ups uit te voeren.

      • Als SQL-verificatie in het batchbestand wordt gebruikt, moet de SQL-gebruiker de benodigde machtigingen hebben om SQL-back-ups uit te voeren.

    2. Pas andere instellingen aan op basis van uw vereisten.

Tip

Voer als test het batchbestand uit stap C uit vanaf een opdrachtprompt die is gestart met hetzelfde gebruikersaccount dat eigenaar is van de taak.

Houd rekening met het volgende wanneer u de procedure gebruikt die in dit artikel wordt beschreven:

  • De Task Scheduler-service moet worden uitgevoerd op het moment dat de taak moet worden uitgevoerd. U wordt aangeraden het opstarttype voor deze service in te stellen op Automatisch. Dit zorgt ervoor dat de service ook bij opnieuw opstarten wordt uitgevoerd.

  • Er moet veel ruimte zijn op het station waarnaar de back-ups worden geschreven. U wordt aangeraden de oude bestanden in de map Back-up regelmatig op te schonen om ervoor te zorgen dat u geen onvoldoende schijfruimte hebt. Het script bevat niet de logica om oude bestanden op te schonen.

Aanvullende verwijzingen

Overzicht van Task Scheduler