Dela via


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:

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:

SQL_Express_Backups

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:

  1. På datorn som kör SQL Server Express väljer du Start och skriver Schemaläggaren i textrutan.

    Skärmbild av alternativet Skrivbordsapp för Schemaläggaren i sökfältet i Start-menyn.

  2. Under Bästa matchning väljer du Schemaläggaren för att starta den.

  3. Högerklicka Schemaläggaren (lokal) i Schemaläggaren och välj Skapa grundläggande aktivitet.

  4. Ange namnet på den nya aktiviteten (till exempel SQLBackup) och välj Nästa.

  5. Välj Dagligen för aktivitetsutlösaren och välj Nästa.

  6. Ange upprepningen till en dag och välj Nästa.

  7. Välj Starta ett program som åtgärd och välj Nästa.

  8. Välj Bläddra, välj den batchfil som du skapade i steg 3 och välj sedan Öppna.

  9. Markera dialogrutan Öppna egenskaper för den här aktiviteten när jag klickar på Kryssrutan Slutför.

  10. 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.

Ytterligare referenser

Översikt över Schemaläggaren