none
Instance에 있는 모든 Database 백업 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 Instance에 있는 모든 Database 백업에 대한 답변을 드리겠습니다.

               

    Step 1 : 변수 선언

     

    Script에 필요한 변수를 선언을 합니다.

     

    DECLARE @name NVARCHAR(50)

    DECLARE @path NVARCHAR(256)

    DECLARE @fileName NVARCHAR(256)

    DECLARE @fileDate NVARCHAR(20)

     

    Step 2 : 현재 날짜 설정

     

    GETDATE함수를 이용해서 날짜 정보를 제공을 받습니다.

    @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

     

    Step 3 : 현지 인스턴스에 있는 DB정보

     

    Master, model, msdb, tempdb를 제외한 나머지 db 이름 정보를 제공을 받습니다.

     

    SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') 

     

    Step 4 : Database 백업

     

    C:\MSSQLInstanceBackup 폴더에 현재 TestDatabase01 DB의 백업파일을 생성을 합니다.

     

    BACKUP DATABASE ’TestDatabase01’ TO DISK = ‘C:\MSSQLInstanceBackup\TestDatabase01_20111005.BAK’ 

     

     

    Step 5 : Full Script

     

    --변수선언

    DECLARE @name NVARCHAR(50)

    DECLARE @path NVARCHAR(256)

    DECLARE @fileName NVARCHAR(256)

    DECLARE @fileDate NVARCHAR(20)

     

    --백업 경로 설정

    SET @path = 'C:\MSSQLInstanceBackup\' 

     

    SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

     

    DECLARE db_cursor CURSOR FOR 

    --Database 정보 제공

    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' 

           --Database 백업

           BACKUP DATABASE @name TO DISK = @fileName 

     

           FETCH NEXT FROM db_cursor INTO @name  

    END  

     

    CLOSE db_cursor  

    DEALLOCATE db_cursor

     

     

    참고 자료

     

    FETCH (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms180152.aspx


    Transact-SQL Cursors

    http://msdn.microsoft.com/en-us/library/aa172595(SQL.80).aspx

     

    DECLARE CURSOR (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms180169.aspx

     

    CAST and CONVERT (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms187928.aspx

     

    BACKUP (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms186865.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

     

    • 답변으로 표시됨 김도남 2011년 10월 28일 금요일 오전 7:46
    2011년 10월 5일 수요일 오전 9:20
    중재자