SQL backup di tutti i database

Visto che negli ultimi 2 mesi ho trattato l’argomento SQL Server, prima per il backup di un singolo database, poi per eventuali problemi legati alle pianificazioni che posso insorgere con il malfunzionamento del db msdb, di seguito propongo un semplice batch per eseguire il backup di tutti i database.

  • C:
  • CD C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
    cartella cartella degli eseguibili SQL per la versione italiana
  • sqlcmd -U <utente> -P <password> -S <server\istanza> -h -1 -Q”sp_databases” -o “drive:\%dir%\SqlDbListFull.txt” -s “,” -W
    comando sql che elenca tutti i db sul file SqlDbList.txt
  • find /v “tempdb” <“drive:\%dir%\SqlDbListFull.txt”> “drive:\%dir%\SqlDbList.txt”
  • FOR /F “tokens=1 delims=,” %%i in (drive:\%dir%\SqlDbList.txt) do SQLMAINT -S <istanza> sql -U <username> -P <password> -D %%i -BkUpDB drive:\%dir% -BkUpMedia DISK -Rpt drive:\%dir%\SqlErrors.Txt -DelBkUps 1
    elabora la lista su file e fa il backup di ogni singolo db
    eventuali errori sono loggati nel file drive:\%dir%\SqlErrors.Txt

    l’ultimo switch -DelBkUps 1 consente di eliminare i database più vecchi di 1 settimana. Il valore può essere espresso solo in settimane

Una volta creato il file .bat con le righe in grassetto, potete tranquillamente usare le operazioni pianificate di windows per mandarlo in esecuzione, oppure utilizzarlo come script in esecuzione prima della partenza del backup su nastro.

Tra i parametri è anche possibile NON fornire <username> e <password> se il batch viene lanciato da un utente in trust col servizio SQL.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.