SQL kullanıyorsanız veri tabanlarınızın yedeğini belirli aralıklarla almanız gerekiyor. Bunu yedek almak istediğiniz veri tabanına (SSMS kullandığınızı varsayarak) Sağ Tıklayıp > Tasks > Back Up… açılan pencereden işlemleri devam ettirerek alabilirsiniz.

Veri Tabanı Yedeğini alma

Daha sonra açılan pencereden kaydedilecek yeri seçip OK tuşuna basıp veri tabanınızın yedeğinizi alabilirsiniz.

Veri Tabanı Yedeği Alma 2

Fakat çok sayıda veri tabanınız varsa bu işlem oldukça uzayacaktır. Onun yerine aşağıda verdiğim scripti kullanarak sistemde bulunan bütün veri tabanlarınızın yedeğini alabileceksiniz:

DECLARE @yol VARCHAR(500)
DECLARE @vtAdi VARCHAR(500)
DECLARE @dosyaAdi VARCHAR(256)
DECLARE @zaman DATETIME
DECLARE @yil VARCHAR(4)
DECLARE @ay VARCHAR(2)
DECLARE @gun VARCHAR(2)
DECLARE @saat VARCHAR(2)
DECLARE @dakika VARCHAR(2)
DECLARE @saniye VARCHAR(2)
 


SELECT @zaman = GETDATE()
SELECT @yil   = (SELECT CONVERT(VARCHAR(4), DATEPART(yy, @zaman)))
SELECT @ay  = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(mm,@zaman),'00')))
SELECT @gun    = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(dd,@zaman),'00')))
SELECT @saat   = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(hh,@zaman),'00')))
SELECT @dakika = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(mi,@zaman),'00')))
SELECT @saniye = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(ss,@zaman),'00')))

 
SET @yol = 'C:\yedekler\' 
DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb')  


OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @vtAdi   

WHILE @@FETCH_STATUS = 0   
BEGIN
   
       SET @dosyaAdi = @yol + @vtAdi + '_' + @yil + @ay + @gun + @saat + 
@dakika + @saniye + '.BAK'  
       BACKUP DATABASE @vtAdi TO DISK = @dosyaAdi  

 
       FETCH NEXT FROM db_cursor INTO @vtAdi   
END   
CLOSE db_cursor   
DEALLOCATE db_cursor

Yukarıdaki sorguyu çalıştırdığımızda C’nin altında yedekler klasörüne sistem veri tabanları hariç bütün veri tabanlarının yediğini aldığını göreceksiniz.

Yedek Alınan Veri Tabanları

İsterseniz FROM master.dbo.sysdatabases WHERE name sorgusuna kısıt vererek sadece kendi istediğiniz veri tabanlarının da yedeğini alma imkanına sahipsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir