SQL Server İnstance All Database Backup

Taşıma işlemi ya da farklı işlemler yapılacağında birden fazla veritabanın yedeğini almak gerekebiliyor.

Hepsinin tek tek yedeğini almak yerine aşağıdaki script yardımı ile instance içerisinde bulunan veritabanlarının hepsinin yedeğini aynı dizine alabiliriz.

DECLARE @name VARCHAR(50) -- veritabanı_adi 
DECLARE @path VARCHAR(256) -- backup alınacak path
DECLARE @fileName VARCHAR(256) -- path ve isim  
DECLARE @fileDate VARCHAR(20) -- pathe eklenecek o günün tarihi

-- SET @path = 'C:\backup\'  bu şekilde yazmanız gerekmektedir.
-- or SET @path = '\\sqlbackup\' if you using remote drives
-- backup alacağınız path de sql servisinin yetkisi var mı kontrol edin

SET @path = '\\C:\backup\deneme\'  
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

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 @name   

WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  
       BACKUP DATABASE @name TO DISK = @fileName  WITH COMPRESSION,stats=1
	   
       FETCH NEXT FROM db_cursor INTO @name   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor 

 

 260 total views,  2 views today

Bir cevap yazın

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

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa