20 mag 2010

SQL Express Backup …

Troviamo spesso installate versioni Express di Server SQL per il semplice fatto che la versione Express è gratuita.

Una delle limitazioni più sentite di questa versione è sicuramente l’impossibilità di poter schedulare un backup del database.

 

Ci sono due soluzione per poter risolvere il problema:

1) Scriversi uno scriptino

2) Usare SQLBackupAndFTP

 

 

Soluzione 1:

Tramite SQL Server Management Studio avviamo un task per l'esecuzione di un Backup del database sul file C:\Backup\MyDB.bak e dopo aver impostato le opzioni in base alle nostre esigenze salviamo il task sul file C:\Backup\BkpMyDB.sql invece di eseguirlo ottenendo uno script di questo tipo:

BACKUP DATABASE [MyDB] TO DISK = N'C:\Backup\Navision.bak' WITH NOFORMAT, INIT, NAME = N'MyDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'MyDB' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'MyDB' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''MyDB'' not found.', 16, 1) end
RESTORE VERIFYONLY FROM DISK = N'C:\Backup\Navision.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO

Creiamo il file bat C:\Backup\BkpMyDB.bat con i seguenti comandi per avviare lo script di backup e rinominare il file MyDB.bak nel formato MyDB-Yeay-Month-Day-Hour-Minute-Second.bak in modo da conservare più versioni di backup:

SETLOCAL
SET BKPFILENAME=MyDB
SET BKPEXT=bak
SET MONTH=%DATE:~3,2%
SET DAY=%DATE:~0,2%
SET YEAR=%DATE:~6,4%
SET HOUR=%TIME:~0,2%
SET MINUTE=%TIME:~3,2%
SET SECOND=%TIME:~6,2%
SET BKPFILE=%BKPFILENAME%-%YEAR%-%MONTH%-%DAY%-%HOUR%-%MINUTE%-%SECOND%.%BKPEXT%
SQLCMD -S .\SQLEXPRESS -i BKP%BKPFILENAME%.sql
IF EXIST %BKPFILENAME%.%BKPEXT% RENAME %BKPFILENAME%.%BKPEXT% %BKPFILE%

A questo punto creiamo un'operazione pianificata per avviare il file C:\Backup il file BkpMyDB.bat quando intendiamo eseguire il backup in modo da automatizzare il processo. In ogni caso possiamo eseguire backup anche in specifici istanti semplicemente eseguendo il Bat dal prompt dei comandi.

Fonte e approfondimento

 

 

Soluzione 2:

Senza diventare matti con le istruzioni qui sopra, ma soprattutto gestendo la cosa tramite un unico programmino (gratuito nella sua versione base) vi posso consigliare SQLBackupAndFTP.

1228329864-1Con questo software in pochi click ci colleghiamo al database da salvare, gli diciamo dove come e quando salvarlo (anche su FTP remoto) e alla fine ci invia pure una mail per dirci se tutto è andato per il meglio o ci sono state delle problematiche.

Lo sto usando da poco ma devo dire che è davvero comodo, completo e leggero (0.8MB).

0 commenti:

Posta un commento