Schemalägga och automatisera säkerhetskopieringar av SQL Server-databaser i SQL Server Express
Den här artikeln beskriver hur du använder ett Transact-SQL-skript och Windows Task Scheduler för att automatisera säkerhetskopieringar av SQL Server Express-databaser enligt ett schema.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 2019698
Sammanfattning
SQL Server Express-utgåvor erbjuder inte något sätt att schemalägga jobb eller underhållsplaner eftersom SQL Server Agent-komponenten inte ingår i dessa utgåvor. Därför måste du använda en annan metod för att säkerhetskopiera dina databaser när du använder dessa utgåvor.
För närvarande kan SQL Server Express-användare säkerhetskopiera sina databaser med någon av följande metoder:
Använd SQL Server Management Studio eller Azure Data Studio. Mer information om hur du använder dessa verktyg för att säkerhetskopiera en databas finns i följande länkar:
Självstudie: Säkerhetskopiera och återställa databaser med Hjälp av Azure Data Studio
Använd ett Transact-SQL-skript som använder BACKUP DATABASE-serien med kommandon. Mer information finns i BACKUP (Transact-SQL).
Den här artikeln beskriver hur du använder ett Transact-SQL-skript tillsammans med Schemaläggaren för att automatisera säkerhetskopieringar av SQL Server Express-databaser enligt ett schema.
Kommentar
Detta gäller endast SQL Server Express-utgåvor och inte SQL Server Express LocalDB.
Så här skapar du en schemalagd säkerhetskopiering i SQL Express
Du måste följa dessa fyra steg för att säkerhetskopiera dina SQL Server-databaser med hjälp av Windows Task Scheduler:
Steg 1: Skapa en lagrad procedur för att säkerhetskopiera dina databaser
Anslut till SQL Express-instansen och skapa sp_BackupDatabases
en lagrad procedur i huvuddatabasen med hjälp av skriptet på följande plats:
Steg 2: Ladda ned SQLCMD-klientverktyget
Med sqlcmd
verktyget kan du ange Transact-SQL-instruktioner, systemprocedurer och skriptfiler. I SQL Server 2014 och lägre versioner levereras verktyget som en del av produkten. Från och med SQL Server 2016 sqlcmd
erbjuds verktyget som en separat nedladdning. Mer information finns i sqlcmd-verktyget.
Steg 3: Skapa en batchfil med hjälp av en textredigerare
I en textredigerare skapar du en batchfil med namnet Sqlbackup.bat och kopierar sedan texten från något av följande exempel till filen, beroende på ditt scenario:
Alla scenarier nedan används
D:\SQLBackups
som platshållare. Skriptet måste justeras till rätt enhet och mappplats för säkerhetskopiering i din miljö.Om du använder SQL-autentisering kontrollerar du att åtkomsten till mappen är begränsad till behöriga användare eftersom lösenorden lagras i klartext.
Kommentar
Mappen för den SQLCMD
körbara filen finns vanligtvis i sökvägsvariablerna för servern när SQL Server har installerats eller när du har installerat den som fristående verktyg. Men om variabeln Sökväg inte visar den här mappen kan du antingen lägga till dess plats i variabeln Sökväg eller ange den fullständiga sökvägen till verktyget.
Exempel 1: Fullständiga säkerhetskopior av alla databaser i den lokala namngivna instansen av SQLEXPRESS med hjälp av Windows-autentisering
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"
Exempel 2: Differentiella säkerhetskopior av alla databaser i den lokala namngivna instansen av SQLEXPRESS med hjälp av en SQLLogin och dess lösenord
// Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType='D'"
Kommentar
SQLLogin bör ha minst rollen Säkerhetskopieringsoperator i SQL Server.
Exempel 3: Logga säkerhetskopior av alla databaser i den lokala namngivna instansen av SQLEXPRESS med hjälp av Windows-autentisering
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"
Exempel 4: Fullständiga säkerhetskopior av databasen USERDB i den lokala namngivna instansen av SQLEXPRESS med hjälp av Windows-autentisering
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"
På samma sätt kan du göra en differentiell säkerhetskopiering av USERDB genom att klistra in "D" för parametern @backupType och en loggsäkerhetskopia av USERDB genom att klistra in "L" för parametern @backupType .
Steg 4: Schemalägg ett jobb med hjälp av Windows Task Scheduler för att köra batchfilen som du skapade i steg 2
Följ de här stegen:
På datorn som kör SQL Server Express väljer du Start och skriver Schemaläggaren i textrutan.
Under Bästa matchning väljer du Schemaläggaren för att starta den.
Högerklicka på Schemaläggaren (lokal) i Schemaläggaren och välj Skapa grundläggande aktivitet.
Ange namnet på den nya aktiviteten (till exempel SQLBackup) och välj Nästa.
Välj Dagligen för aktivitetsutlösaren och välj Nästa.
Ange upprepningen till en dag och välj Nästa.
Välj Starta ett program som åtgärd och välj Nästa.
Välj Bläddra, välj den batchfil som du skapade i steg 3 och välj sedan Öppna.
Markera dialogrutan Öppna egenskaper för den här aktiviteten när jag klickar på Kryssrutan Slutför.
På fliken Allmänt :
Granska säkerhetsalternativenoch se till att följande för användarkontot som kör uppgiften (visas under När du kör uppgiften, användaren följande användarkonto:)
Kontot bör ha minst läs- och körningsbehörighet för att starta
sqlcmd
verktyget. Dessutom,Om du använder Windows-autentisering i batchfilen kontrollerar du att uppgiftsägaren har behörighet att göra SQL-säkerhetskopieringar.
Om du använder SQL-autentisering i batchfilen bör SQL-användaren ha de behörigheter som krävs för att göra SQL-säkerhetskopieringar.
Justera andra inställningar enligt dina krav.
Dricks
Som ett test kör du batchfilen från steg 3 från en kommandotolk som startas med samma användarkonto som äger uppgiften.
Krav
Tänk på följande krav när du använder proceduren som beskrivs i den här artikeln:
Tjänsten Task Scheduler måste köras när jobbet är schemalagt att köras. Vi rekommenderar att du anger starttypen för den här tjänsten som Automatisk. Detta säkerställer att tjänsten körs även vid en omstart.
Du måste skapa tillräckligt med utrymme på enheten där säkerhetskopiorna skrivs. Vi rekommenderar att du rensar gamla filer i mappen Säkerhetskopiering regelbundet för att se till att diskutrymmet inte tar slut. Skriptet innehåller inte logiken för att rensa gamla filer.