none
SQL SERVER 2008 R2 유지관리계획 마법사로 만들어진 백업파일명 변경 RRS feed

  • 질문

  • 유지관리계획 마법사를 이용해서 db백업 스케줄을 관리하고 있습니다. 그런데, 백업파일이 너무 길어서 해당날짜 까지만 표시되도록 축약하고 싶습니다. 

    예를들어, db002014라는 db를 백업하면 [db002014_backup_2014_04_03_123456.bak] 이런 식으로 파일명이 자동으로 생성됩니다.

    이것을 [ db002014_bakup_20140403.bak ] 이렇게 표시되도록 하고싶습니다.

    유지관리계획 마법사에는 파일명을 설정하는 항목이 없어서, 문의드립니다.

    이것저것 해보다가, [T-SQL문 실행 태스크] 라는 것을 이용해서 작성하려고 하니, 오류가 납니다.

    실행해본 구문은 아래와 같습니다. db002014라는 폴더는 생성이 되는데, DISK를 지정하는 부분에서 해당날짜를 추가하려고 문자열 연결시킬 때 오류가 발생합니다.

    -- T-SQL문 실행 태스크 --

    EXECUTE master.dbo.xp_create_subdir N'D:\backup\db002014'
    GO

    BACKUP DATABASE [db002014] TO  DISK = N'D:\backup\db002014\db002014_backup'

    + getdate() +'.bak' WITH NOFORMAT, NOINIT,  NAME = N'db002014_backup'+ getdate()

    , SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO

    그럼, 좋은하루 보내시구요~~ 소중한 답변 기다리겠습니다.




    • 편집됨 forsalah 2014년 4월 3일 목요일 오전 8:28
    2014년 4월 3일 목요일 오전 6:09

답변

모든 응답

  • BACKUP ~ 구문부터를 아래와 같은 형태로 묶어야 합니다.

    SQL Server가 없는 곳에서 쿼리문장을 작성한거라 오류가 있을 수 있습니다.

    DECLARE @a nvarchar(max)

    SELECT @a = 'BACKUP DATABASE [db002014] TO DISK = N''D:\backup\db002014\db002014_backup'+ convert(varchar(8), getdate(), 112) + '.bak'' WITH NOFORMAT, NOINIT, NAME = N''db002014_backup' + convert(varchar(8), getdate(), 112) + ''', SKIP, REWIND, NOUNLOAD, STATS = 10'

    EXECUTE (@A)

    • 답변으로 제안됨 Seongyong Yoon 2014년 4월 7일 월요일 오전 5:49
    2014년 4월 4일 금요일 오전 9:01
  • 답변대로 적용했습니다. 감사드립니다.

    • 답변으로 표시됨 forsalah 2014년 4월 7일 월요일 오전 1:11
    2014년 4월 7일 월요일 오전 1:11