Pianificare e automatizzare i backup dei database SQL Server in SQL Server Express

Questo articolo illustra come utilizzare uno script Transact-SQL e l'Utilità di pianificazione di Windows per automatizzare i backup dei database SQL Server Express in base a una pianificazione.

Versione originale del prodotto: SQL Server
Numero originale della Knowledge Base: 2019698

Riepilogo

Le edizioni di SQL Server Express non offrono un modo per pianificare i processi o i piani di manutenzione perché il componente Agente SQL Server non è incluso in queste edizioni. È quindi necessario adottare un approccio diverso per eseguire il backup dei database quando si usano queste edizioni.

Attualmente gli utenti di SQL Server Express possono eseguire il backup dei database utilizzando uno dei metodi seguenti:

Utilizzo di SQL Server Management Studio o Azure Data Studio. Per maggiori informazioni su come utilizzare questi strumenti per eseguire il backup di un database, esaminare i seguenti collegamenti:

Questo articolo descrive come utilizzare uno script Transact-SQL insieme all'Utilità di pianificazione per automatizzare i backup dei database SQL Server Express in base a una pianificazione.

Nota

Questo si applica solo a SQL Server edizioni Express e non a SQL Server Express LocalDB.

Altre informazioni

Per eseguire il backup dei database SQL Server utilizzando Utilità di pianificazione di Windows, è necessario seguire questi quattro passaggi:

Passaggio A: creare una stored procedure per eseguire il backup dei database.

Connettersi all'istanza di SQL Express e creare la store procedure sp_BackupDatabases nel database principale utilizzando lo script nel percorso seguente:

SQL_Express_Backups

Passaggio B: scaricare lo strumento SQLCMD (se applicabile).

L'utilità sqlcmd consente di inserire istruzioni Transact-SQL, procedure di sistema e file di script. In SQL Server 2014 e versioni precedenti, l'utilità viene fornita come parte del prodotto. A partire da SQL Server 2016, l'utilità sqlcmd viene offerta come download separato. Per maggiori informazioni, consultare Utilità sqlcmd.

Passaggio C: creare un file batch utilizzando l'editor di testo.

In un editor di testo, creare un file batch denominato Sqlbackup.bat e quindi copiare il testo da uno degli esempi seguenti in tale file, a seconda dello scenario:

  • Tutti gli scenari seguenti utilizzano D:\SQLBackups come segnaposto. Lo script deve essere modificato in base al percorso corretto dell'unità e della cartella di backup nell'ambiente.

  • Se si utilizza l'autenticazione SQL, assicurarsi che l'accesso alla cartella sia limitato agli utenti autorizzati perché le password vengono archiviate in testo non crittografato.

Nota

Generalmente, la cartella per il file SQLCMD eseguibile si trova nelle variabili di percorso del server dopo l'installazione di SQL Server oppure dopo la relativa installazione come strumento autonomo. Se tuttavia la variabile di percorso non elenca questa cartella, è possibile aggiungerne la posizione alla variabile di percorso oppure specificare il percorso completo dell'utilità.

Esempio 1: backup completi di tutti i database nell'istanza denominata locale di SQLEXPRESS tramite l'autenticazione di Windows.

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

Esempio 2: backup differenziali di tutti i database nell'istanza denominata locale di SQLEXPRESS tramite SQLLogin e la relativa password.

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

Nota

SQLLogin deve avere almeno il ruolo Operatore di backup in SQL Server.

Esempio 3: backup dei log di tutti i database nell'istanza denominata locale di SQLEXPRESS tramite l'autenticazione di Windows

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

Esempio 4: backup completi del database USERDB nell'istanza denominata locale di SQLEXPRESS tramite l'autenticazione di Windows

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

Allo stesso modo, è possibile eseguire un backup differenziale di USERDB inserendo "D" per il parametro @backupType e un backup di registro di USERDB inserendo "L" per il parametro @backupType.

Passaggio D: pianificare un processo utilizzando l'Utilità di pianificazione di Windows per eseguire il file batch creato nel passaggio B. A tale scopo, attenersi alla seguente procedura:

  1. Sul computer che esegue SQL Server Express, fare clic su Start, quindi nella casella di testo digitare Utilità di pianificazione.

    Screenshot dell'opzione dell'applicazione desktop Utilità di pianificazione nella barra di ricerca del menu Start.

  2. In Corrispondenza migliore, fai clic su Utilità di pianificazione per avviarlo.

  3. Nell'Utilità di pianificazione, fare clic con il pulsante destro del mouse su Libreria pianificazione attività e fare clic su Crea attività di base….

  4. Immettere il nome della nuova attività, ad esempio SQLBackup, e fare clic su Avanti.

  5. Seleziona Giornalmente per il trigger attività e fai clic su Avanti.

  6. Imposta la ricorrenza su un giorno e fai clic su Avanti.

  7. Seleziona Avvia un programma come azione e fai clic su Avanti.

  8. Fare clic su Sfoglia per individuare il file batch creato nel Passaggio C e quindi fare clic su Apri.

  9. Quando si fa clic su Fine, selezionare la casella Apri la finestra di dialogo Proprietà per questa attività.

  10. Nella scheda Generale,

    1. Esamina le opzioni di sicurezza e verifica quanto segue per l'account utente che esegue l'attività (elencato in Durante l'esecuzione dell'attività, utilizza il seguente account utente:)

      L'account deve disporre almeno delle autorizzazioni di lettura ed esecuzione per avviare l'utilità sqlcmd. Inoltre,

      • se si utilizza l'autenticazione di Windows nel file batch, assicurarsi che il proprietario dell'attività disponga delle autorizzazioni per eseguire i backup SQL.

      • Se si utilizza l'autenticazione SQL nel file batch, l'utente SQL deve disporre delle autorizzazioni necessarie per eseguire i backup SQL.

    2. Modificare le altre impostazioni in base alle proprie esigenze.

Consiglio

Come test, eseguire il file batch dal passaggio C da un prompt dei comandi avviato con lo stesso account utente proprietario dell'attività.

Quando si utilizza la procedura documentata in questo articolo, tenere presente quanto segue:

  • Il servizio Utilità di pianificazione deve essere in esecuzione nel momento in cui il processo è pianificato per l'esecuzione. Ti consigliamo di impostare il tipo di avvio per questo servizio su Automatico. In questo modo si garantisce che il servizio sia in esecuzione anche al riavvio.

  • L'unità in cui vengono scritti i backup deve avere molto spazio disponibile. Ti consigliamo di pulire regolarmente i vecchi file nella cartella Backup per assicurarti di non esaurire lo spazio su disco. Lo script non contiene la logica per pulire i file precedenti.

Ulteriori riferimenti

Panoramica dell'Utilità di pianificazione