ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL Server 2005 Express Edition sqlcmd를 이용한 자동백업
    개발 관련/MS-SQL 2009. 10. 13. 15:39

    아시는 분은 다 아시겠지만

    SQL Server 2005 Express Edition 에는

    스케쥴러(?)가 없기때문에 자동 백업이 안됩니다.(수동은 물론 가능하겠죠 ㅎ)

     

    일단 프로시져부터 만들어 보죠~

    아 물론 한개의 디비만을 백업하기 위해 만드신다면

    프로시져로 안만들고 바로 다음 단계로 가셔서도 괜찮습니다.

    프로시져를 만드는 이유는 여러개의 디비를 백업하기 위해서죠^^

     

    USE [데이타베이스명]
    GO
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    -- =============================================  
    -- Author: Edgewood Solutions  
    -- Create date: 2007-02-07  
    -- Description: Backup Database  
    -- Parameter1: databaseName  
    -- Parameter2: backupType F=full, D=differential, L=log
    -- =============================================  
    ALTER PROCEDURE [dbo].[SP_BACKUPDATABASE]   
           @databaseName sysname,
           @backupType CHAR(1)  
    AS  
    BEGIN  
           SET NOCOUNT ON; 
           DECLARE @sqlCommand NVARCHAR(1000)  
           DECLARE @dateTime NVARCHAR(20) 
           SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','')
           IF @backupType = 'F'  
                   SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +  
                   ' TO DISK = ''E:\DBBackUP\' + @databaseName + '_Full_' + @dateTime + '.BAK'''  
             
           IF @backupType = 'L'  
                   SET @sqlCommand = 'BACKUP LOG ' + @databaseName +  
                   ' TO DISK = ''E:\DBBackUP\' + @databaseName + '_Log_' + @dateTime + '.TRN'''  
             
           EXECUTE sp_executesql @sqlCommand  
    END
    

     

    뭐 그렇게 복잡하지 않으니 대충 설명하고 넘어가겠습니다.

    일단 변수를 받죠

    @databaseName -> 디비명

    @backupType -> 백업타입 : F=full, D=differential, L=log

     

    프로시져를 저장후에

     

    -------------------------------------------

    USE 디비명
    GO
    SP_BACKUPDATABASE '백업할 디비명', 'F'
    GO 
    

    -------------------------------------------

    sp를 실행시키는 파일을 만듭니다.(저같은 경우에는 backup.sql)

     

     

    이제 윈도우 예약작업만 세팅해주면 되네요 ㅎㅎ

    2003 서버로 말씀드리면

    시작 > 프로그램 > 보조프로그램 > 시스템도구 > 예약된 작업 클릭하시면 됩니다.

     

    음... 아마도 마법사를 실행해서 하실텐데요

    어떤거 선택했는지 기억이 ㅡㅡ;;;

    그래서 그냥 오른쪽 마우스 클릭하셔서 새로 만들기 > 예약된 작업 클릭해주세요

     

    이름은 뭐 마음대로 하셔도 상관없겠죠? ㅎㅎ

    속성창을 여신다음에요

     

    실행창에 sqlcmd -S INTRANET\SQLEXPRESS -E -i E:\DBBackUP\Backup.sql

                  INTRANET\SQLEXPRESS -> 요넘은 SQL Server 이름입니다.

                  E:\DBBackUP\Backup.sql -> 아까 위에서 만든 파일 경로

     

    시작위치 "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"

            -> 경로는 다시한번 확인해보세요

     

    다음 계정으로 실행 -> 여기에 아이디와 암호 설정까지 해주면 됩니다.

     

    그리고 일정창에서 작업 예약, 시작시간 등을 설정해주면 완료입니다 ㅎㅎ

    아 보안설정에서 실행하는 계정의 권한이 있어야겠죠? 

     


     
    제가 세팅한부분 캡쳐해서 올립니다.
    참고하시면 됩니다.
     
     
    ps) 저도 이걸 어디서 보고 만든건데
    그 사이트가 어디인지 까먹었네요 ㅡㅡ;;
    검색해도 안나오고
    혹시 아시는분 코멘트좀 남겨주시면 참고사이트로 남기겠습니다.
     


     

     

    '개발 관련 > MS-SQL' 카테고리의 다른 글

    데이터베이스 이관시 로그인 맵핑 문제  (0) 2010.07.09
    Table 수정  (0) 2009.10.13
    양력음력변환 DB  (0) 2009.10.13
    MSSQL2000, 2005 테이블 명세서 출력퀘리  (0) 2009.10.13
    CAST() 및 CONVERT() 함수  (0) 2009.10.13
Designed by Tistory.