2009-08-04 4 views
1

SQL Server 인스턴스 내부에 40 개의 데이터베이스를 백업해야합니다. 다음 스크립트로 각 데이터베이스를 백업합니다.SQL Server의 모든 데이터베이스를 백업하는 스크립트를 작성하는 방법은 무엇입니까?

BACKUP DATABASE [dbname1] TO DISK = N'J:\SQLBACKUPS\dbname1.bak' WITH NOFORMAT, INIT, NAME = N'dbname1-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 
GO 
declare @backupSetId as int 
select @backupSetId = position from msdb..backupset where database_name=N'dbname1' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'dbname1') 
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''dbname1'' not found.', 16, 1) end 
RESTORE VERIFYONLY FROM DISK = N'J:\SQLBACKUPS\dbname1.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND 
GO 

위의 스크립트에서 각 데이터베이스를 가져 와서 바꾸는 기능을 스크립트에 추가하려고합니다. 기본적으로 엔진에서 각 데이터베이스 백업을 만들고 확인하는 스크립트입니다.

For each database in database-list 
    sp_backup(database) // this is the call to the script above. 
End For 

아이디어 :

나는 이런 식으로 뭔가를 찾고 있어요?

+0

... 및 복원; 스크립트로 어떻게 복원합니까? –

답변

1

어쩌면 sp_MSForEachDB 저장 프로 시저를 확인할 수 있습니다.

EXEC sp_MSForEachDB 'EXEC sp_backup ?' 

여기서? mark는 각 반복에서 현재 데이터베이스를 나타냅니다.

0

뭔가처럼 :.

DECLARE @SQL varchar(max) 
SET @SQL = '' 

SELECT @SQL = @SQL + 'BACKUP ' + Name + ' To Disk=''c:\' + Name + '.bak'';' 
    FROM sys.sysdatabases 

EXEC(@SQL) 
1

너무 ... 이것은 데이터베이스 (RESTORE VERIFYONLY 당 2 문,뿐만 아니라 제공되는 다른 답변을 요구 "확인"내가 사용 조사 것

말했다 maintenance plans 너무 인덱스 유지 관리를 포함하는 ...

2

사용 SqlBackupAndFTP. 선택 "백업이 아닌 모든 시스템 데이터베이스"

+2

감사합니다. – jrummell

0

SQL Backup Master은 지정된 서버 인스턴스의 모든 데이터베이스를 백업 한 다음 Dropbox, FTP, Amazon S3, Google 드라이브 또는 로컬/네트워크 폴더로 백업을 전송할 수 있습니다.