Back-ups van SQL Server-databases plannen en automatiseren in SQL Server Express
In dit artikel wordt uitgelegd 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.
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 2019698
Samenvatting
SQL Server Express-edities bieden geen manier om taken of onderhoudsplannen 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 GEBRUIKERS van SQL Server Express 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 om een back-up te maken van een database:
Zelfstudie: Back-ups maken en herstellen van databases met behulp van Azure Data Studio
Gebruik een Transact-SQL-script dat gebruikmaakt van de back-updatabasefamilie van opdrachten. Zie BACKUP (Transact-SQL) voor meer informatie.
In dit artikel wordt beschreven hoe u een Transact-SQL-script samen met Task Scheduler gebruikt om back-ups van SQL Server Express-databases op een geplande basis te automatiseren.
Notitie
Dit geldt alleen voor SQL Server Express-edities en niet voor SQL Server Express LocalDB.
Een geplande back-up maken in SQL Express
U moet deze vier stappen volgen om een back-up te maken van uw SQL Server-databases met behulp van Windows Task Scheduler:
Stap 1: Een opgeslagen procedure maken om een back-up te maken van uw databases
Maak verbinding met uw SQL Express-exemplaar en maak sp_BackupDatabases
een opgeslagen procedure in uw hoofddatabase met behulp van het script op de volgende locatie:
Stap 2: het SQLCMD-clienthulpprogramma downloaden
Met het sqlcmd
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 sqlcmd
wordt het hulpprogramma aangeboden als een afzonderlijke download. Raadpleeg sqlcmd Utility voor meer informatie.
Stap 3: Een batchbestand maken met behulp van een teksteditor
Maak in een teksteditor een batchbestand met de naam Sqlbackup.bat en kopieer de tekst uit een van de volgende voorbeelden in dat bestand, afhankelijk van uw scenario:
Alle onderstaande scenario's gebruiken
D:\SQLBackups
als tijdelijke aanduiding. Het script moet worden aangepast aan de juiste schijf 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 is beperkt tot geautoriseerde gebruikers, omdat de wachtwoorden worden opgeslagen in duidelijke tekst.
Notitie
De map voor het uitvoerbare bestand bevindt zich over het SQLCMD
algemeen in de padvariabelen voor de server nadat SQL Server is geïnstalleerd of nadat u deze als zelfstandig hulpprogramma hebt geïnstalleerd. Maar als de padvariabele deze map niet vermeldt, kunt u de locatie toevoegen aan de variabele Pad 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'"
Notitie
De SQLLogin moet ten minste de rol Back-upoperator in SQL Server hebben.
Voorbeeld 3: Logboekback-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='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 in D te plakken voor de parameter @backupType en een logboekback-up van USERDB door in L te plakken voor de parameter @backupType .
Stap 4: Een taak plannen met Behulp van Windows Task Scheduler om het batchbestand uit te voeren dat u in stap 2 hebt gemaakt
Volg vervolgens deze stappen:
Op de computer waarop SQL Server Express wordt uitgevoerd, selecteert u Start en typt u Task Scheduler in het tekstvak.
Selecteer taakplanner onder Beste overeenkomst om deze te starten.
Klik in Task Scheduler met de rechtermuisknop op Task Scheduler (Lokaal) en selecteer Basistaak maken.
Voer de naam in voor de nieuwe taak (bijvoorbeeld SQLBackup) en selecteer Volgende.
Selecteer Dagelijks voor de taaktrigger en selecteer Volgende.
Stel het terugkeerpatroon in op één dag en selecteer Volgende.
Selecteer Een programma starten als actie en selecteer Volgende.
Selecteer Bladeren, selecteer het batchbestand dat u in stap 3 hebt gemaakt en selecteer vervolgens Openen.
Selecteer het dialoogvenster Eigenschappen voor deze taak openen wanneer ik op Het selectievakje Voltooien klik.
Op het tabblad Algemeen :
Controleer de beveiligingsopties en zorg ervoor dat het volgende voor het gebruikersaccount dat de taak uitvoert (vermeld onder Bij het uitvoeren van de taak, gebruiker het volgende gebruikersaccount:)
Het account moet ten minste lees- en uitvoermachtigingen hebben om het
sqlcmd
hulpprogramma te starten. Bijkomend,Als u Windows-verificatie in het batchbestand gebruikt, moet u ervoor zorgen dat de eigenaar van de taak gemachtigd is om SQL-back-ups uit te voeren.
Als u SQL-verificatie in het batchbestand gebruikt, moet de SQL-gebruiker over de benodigde machtigingen beschikken om SQL-back-ups uit te voeren.
Pas andere instellingen aan op basis van uw vereisten.
Tip
Als test voert u het batchbestand uit vanuit stap 3 vanaf een opdrachtprompt die is gestart met hetzelfde gebruikersaccount dat eigenaar is van de taak.
Vereisten
Houd rekening met de volgende vereisten 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 als Automatisch. Dit zorgt ervoor dat de service wordt uitgevoerd, zelfs wanneer de service opnieuw wordt opgestart.
U moet voldoende ruimte maken op het station waar de back-ups worden geschreven. U wordt aangeraden oude bestanden regelmatig op te schonen in de map Back-up om ervoor te zorgen dat u geen schijfruimte meer hebt. Het script bevat geen logica voor het opschonen van oude bestanden.