go backarticles

Articles of SQLschool.gr Team

Script for Full database backup in separate device per day

Antonios Chatzipavlis

Πριν από λίγο ένας συνεργάτης μου, που έχει πολλούς πελάτες με ERP που είναι σε SQL Server μου ζήτησε να παίρνει backup σε ημερήσια εβδομαδιαία βάση αυτοματοποιημένα. Δηλαδή ένα backup για κάθε database (full βεβαια) κάθε μέρα της εβδομάδας, και την επόμενη εβδομάδα να γράφει πάνω στο προηγούμενο της αντίστοιχης ημέρας.

Η λύση είναι απλή

Πάμε και φτιάχνουμε ένα job στον SQL Server Agent, και σε αυτό, στο ένα και μοναδικό step βάζουμε το παρακάτω script:

 

  1. declare @weekday char(3)
  2. declare @dbname varchar(50)
  3. declare @backupPath varchar(1024)
  4. declare @backupFileName varchar(128)
  5. declare @command varchar(2048)
  6. set @dbname ='<Enter yours db name>'
  7. set @backupPath ='<Enter your backup path location with \ at the end>'
  8. set @backupFileName='<Enter the backup filename without extention>'
  9. select @weekday=upper(left(datename(dw,getdate()),3))
  10. set @command = 'backup database ' + @dbname + ' to disk=''' + @backupPath +'\' +upper(@backupFileName)+'_'+@weekday+'.bak' + ''' with init'
  11. exec (@command)

Αλλάζουμε τις τιμές στις μεταβλητές @dbname, @backuPath, @backupFileName, με αυτές που θέλουμε και προγραμματίζουμε το job αυτό να τρέχει κάθε μέρα στην ώρα που θέλουμε.

Με αυτή την υλοποίηση έχουμε καθημερινό backup για την κάθε ημέρα της εβδομάδας σε ξεχωριστά αν ήμερα devices.

Καλά database backup!


Relative Articles

Leave your comment

Login with your SQLschool.gr account if you want to comment on this article.


PASS chapter logo

The Official PASS Local Group for Greece

sql school greece logo
© 2010-2019 All rights reserved