Condividi tramite


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

Questo articolo illustra come usare uno script Transact-SQL e un'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 KB originale: 2019698

Riepilogo

Le edizioni di SQL Server Express non offrono un modo per pianificare processi o piani di manutenzione perché il componente SQL Server Agent non è incluso in queste edizioni. Pertanto, è 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 usando uno dei metodi seguenti:

Usare SQL Server Management Studio o Azure Data Studio. Per altre informazioni su come usare questi strumenti per eseguire il backup di un database, vedere i collegamenti seguenti:

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

Note

Questo vale solo per le edizioni express di SQL Server e non per SQL Server Express LocalDB.

Come creare un backup pianificato in SQL Express

È necessario seguire questi quattro passaggi per eseguire il backup dei database di SQL Server usando l'Utilità di pianificazione di Windows:

Passaggio 1: Creare una stored procedure per eseguire il backup dei database

Connettersi all'istanza di SQL Express e creare sp_BackupDatabases una stored procedure nel database master usando lo script nel percorso seguente:

SQL_Express_Backups

Passaggio 2: Scaricare l'utilità client SQLCMD

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

Passaggio 3: Creare un file batch usando un 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 usano D:\SQLBackups come segnaposto. Lo script deve essere modificato nell'unità corretta e nel percorso della cartella backup nell'ambiente in uso.

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

Note

La cartella per l'eseguibile SQLCMD si trova in genere nelle variabili Path per il server dopo l'installazione di SQL Server o dopo l'installazione come strumento autonomo. Tuttavia, se la variabile Path non elenca questa cartella, è possibile aggiungerla alla variabile Path o specificare il percorso completo dell'utilità.

Esempio 1: backup completi di tutti i database nell'istanza denominata locale di SQLEXPRESS usando 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 usando sqlLogin e la relativa password

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

Note

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

Esempio 3: Backup del log di tutti i database nell'istanza denominata locale di SQLEXPRESS usando 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 usando l'autenticazione di Windows

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

Analogamente, è possibile eseguire un backup differenziale di USERDB incollando "D" per il parametro @backupType e un backup del log di USERDB incollando "L" per il parametro @backupType .

Passaggio 4: Pianificare un processo usando Utilità di pianificazione di Windows per eseguire il file batch creato nel passaggio 2

Seguire questa procedura:

  1. Nel computer che esegue SQL Server Express selezionare Avvia e digitare Utilità di pianificazione nella casella di testo.

    Screenshot dell'opzione Task Scheduler Desktop app nella barra di ricerca del menu Start.

  2. In Corrispondenza migliore selezionare Utilità di pianificazione per avviarla.

  3. In Utilità di pianificazione fare clic con il pulsante destro del mouse su Utilità di pianificazione (locale) e selezionare Crea attività di base.

  4. Immettere il nome per la nuova attività( ad esempio SQLBackup) e selezionare Avanti.

  5. Selezionare Daily (Giornaliero ) per Task Trigger (Trigger attività) e selezionare Next ( Avanti).

  6. Impostare la ricorrenza su un giorno e selezionare Avanti.

  7. Selezionare Avvia un programma come azione e selezionare Avanti.

  8. Selezionare Sfoglia, selezionare il file batch creato nel passaggio 3 e quindi selezionare Apri.

  9. Selezionare la casella di controllo Apri la finestra di dialogo Proprietà per questa attività quando si fa clic su Fine .

  10. Nella scheda Generale :

    • Esaminare le opzioni di sicurezza e verificare quanto segue per l'account utente che esegue l'attività (elencato in Quando si esegue l'attività, usare l'account utente seguente:

      L'account deve disporre almeno delle autorizzazioni Lettura ed Esecuzione per avviare l'utilità sqlcmd . Inoltre,

      • Se si usa l'autenticazione di Windows nel file batch, assicurarsi che il proprietario dell'attività disponga dell'autorizzazione per eseguire i backup SQL.

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

    • Modificare le altre impostazioni in base alle esigenze.

Suggerimento

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

Requisiti

Quando si usa la procedura documentata in questo articolo, tenere presente i requisiti seguenti:

  • Il servizio Utilità di pianificazione deve essere in esecuzione al momento dell'esecuzione del processo. È consigliabile impostare il tipo di avvio per questo servizio come Automatico. In questo modo si garantisce che il servizio sia in esecuzione anche in caso di riavvio.

  • È necessario creare spazio sufficiente nell'unità in cui vengono scritti i backup. È consigliabile pulire regolarmente i file precedenti nella cartella Backup per assicurarsi che non si esaurisca lo spazio su disco. Lo script non contiene la logica per pulire i file precedenti.

Altri riferimenti

Panoramica dell'utilità di pianificazione