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:
Esercitazione: Eseguire il backup e il ripristino di database con Azure Data Studio
Usare uno script Transact-SQL che usa la famiglia di comandi BACKUP DATABASE. Per altre informazioni, vedere BACKUP (Transact-SQL).
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:
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:
Nel computer che esegue SQL Server Express selezionare Avvia e digitare Utilità di pianificazione nella casella di testo.
In Corrispondenza migliore selezionare Utilità di pianificazione per avviarla.
In Utilità di pianificazione fare clic con il pulsante destro del mouse su Utilità di pianificazione (locale) e selezionare Crea attività di base.
Immettere il nome per la nuova attività( ad esempio SQLBackup) e selezionare Avanti.
Selezionare Daily (Giornaliero ) per Task Trigger (Trigger attività) e selezionare Next ( Avanti).
Impostare la ricorrenza su un giorno e selezionare Avanti.
Selezionare Avvia un programma come azione e selezionare Avanti.
Selezionare Sfoglia, selezionare il file batch creato nel passaggio 3 e quindi selezionare Apri.
Selezionare la casella di controllo Apri la finestra di dialogo Proprietà per questa attività quando si fa clic su Fine .
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.