arÅŸiv

yazılar buna göre etiketlendi; ‘tüm databaselerin yedeÄŸini job ile alın’

Sql Server’daki Tüm Database’lerin YedeÄŸini Store Procedure ile Alın

PerÅŸembe, 08 Tem 2010 yorum yok
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
IF EXISTS (SELECT NAME FROM sysobjects WHERE NAME = 'BackupAllDBs' AND type = 'P')
	DROP PROCEDURE BackupAllDBs
GO
 
CREATE PROCEDURE BackupAllDBs
	@backup_location VARCHAR(256)
AS
BEGIN
 
	DECLARE @DBName VARCHAR(30)
	DECLARE @BackupFileName VARCHAR(256)
 
	IF @backup_location IS NULL OR LEN(RTRIM(@backup_location)) = 0
		SET @backup_location = 'C:/'
 
	DECLARE DBBackup_Cursor CURSOR FOR
		SELECT NAME FROM master.dbo.sysdatabases
		WHERE NAME NOT IN ('master','model','msdb','tempdb')  
 
	OPEN DBBackup_Cursor
	FETCH NEXT FROM DBBackup_Cursor INTO @DBName
 
	WHILE @@FETCH_STATUS = 0
	BEGIN
	       SET @BackupFileName = @backup_location + @DBName + '_' + CONVERT(VARCHAR(20),GETDATE(),112) + '.BAK'
	       BACKUP DATABASE @DBName TO DISK = @BackupFileName
	       FETCH NEXT FROM DBBackup_Cursor INTO @DBName
	END
 
	CLOSE DBBackup_Cursor
	DEALLOCATE DBBackup_Cursor
END
GO

Yukarıkaki Kod Blogu Sedat Salman Hocamız tarafından paylaşılmış.Bende gördüm Paylaşayım Dedim.Şimdi Ben Buradaki Olayın devamlılığını biraz daha açıklayayım..

Sql Server’a BaÄŸlanın ve New Query diyerek yukarıdaki sorguyu yazın amma öncelikle USE [DatabaseAdı] nı kullanınki O database’in altına atasın bu store Procedure’yi..

Daha sonra yapacağınız iÅŸ Yeni bir Job hazırlamak ve Job kısmında T-Sql kısmına execdbo.BackupAllDBs ‘C:\’ ÅŸeklinde bir parametre ile kullanın ve zamanlandırın bu iÅŸlemi..
İyi Çalışmalar..
Teşekkürler Sedat Hocam