none
SQL-SERVER 2008 R2에서 비상로그백업 관련 RRS feed

  • 질문

  • * 두가지 질문이 있습니다.

    첫째, 데이터파일이 1.6GB로 소규모 시스템으로 사용자도 많지 않아, 매일 새벽시간에 FULL 백업을 받고 있습니다.  트랜잭션 백업을 받지 않은 상태에서 문제가 발생할 경우 문제발생 직전시점까지 다음 시나리오로 진행 할 경우 모든 데이터를 복구가 가능한지 궁금합니다. 

       (1) 비상트랜잭션 로그백업 진행

       (2) 당일새벽 FULL백업 데이터 복구 진행 (WITH NORECOVERY)

       (3) 비상로그백업 파일 복구 진행 (WITH RECOVERY)

    둘째, 첫번째 시나리오가 문제가 있다면..

    트랜잭션로그 백업을 시간단위로 진행하는 것이 좋다고 하던데, 그렇게 했더니 백업장치에 저장되는 파일개수가 너무 많아집니다. 대용량 데이터베이스가 아닌경우, FULL백업 이외에 로그백업을 어느정도 시간 간격으로 진행하면 좋을 지 문의드립니다. 
    참고로, 트랜잭션로그 백업하면서 잘라내기 한 이후, 하루만에 500MB정도 로그가 쌓였습니다.

    답변 부탁드립니다.


    • 편집됨 forsalah 2014년 3월 13일 목요일 오전 7:05
    2014년 3월 13일 목요일 오전 7:03

답변

  • 안녕하세요.

    일단, 첫번재 시나리오로 복원 가능합니다. 하지만 별로 권장해드리고 싶지 않습니다.

    두번째 답변을 드리기 전에, 트랜잭션 로그가 기록되는 내용과 로그 백업이 어떻게 처리되는지 아시는 것이 더 먼저일 것 같아서 간단히 설명 드립니다.

    일단 트랜잭션 로그 파일(LDF)에는 insert, update, delete와 그외 변경 내용이 순차적으로 기록됩니다.

    로그 백업/로그 잘라내기/simple 복구모델로 변경하기 등의 작업이 있지 않는다면, 로그는 계속 쌓이게되고, 로그 파일은 계속 커지게 됩니다.

    로그 백업을 수행하면, 트랜잭션 로그의 내용이 백업 파일로 복사되고 해당 내용은 트랜잭션 로그에서 지워집니다.

    이때 트랜잭션 로그 파일(LDF) 자체가 줄어드는 것은 아니고, 안에 내용만 지워진다고 보시면 됩니다. 

    다음 명령으로 트랜잭션 로그 파일의 크기와 저장된 로그의 %를 확인할 수 있습니다.

    dbcc sqlperf(logspace)

    다시 질문으로 들어와서,

    트랜잭션 로그는 큰 문제가 되지 않으면 자주 백업 받으시는 것이 장애 발생 시 더 많은 데이터를 살릴 수 있기 때문에 바람직 합니다.

    비상 로그 백업을 못받을수 있는 상황도 있기때문에, 적어주신 시나리오 대로 100% 될것이다라고 할 수는 없겠네요.

    백업 주기에 대해서 딱히 정답은 없고, 우리회사DB가 장애가 났을 때 손실될 데이터를 생각하시고 백업/복원 plan을 세우는 것이 중요할 것 같습니다.

    참고로 유지관리계획을 사용하시면 오래된 백업 파일에 대한 삭제가 가능합니다.

    도움이 되셨으면 합니다.

    Younggun Kim
    MCDBA, MCITP
    Consultant @ Database Division in SQLRoad
    http://www.sqlroad.com  http://www.sqlserver.co.kr
    ygkim@sqlroad.com  

    • 답변으로 표시됨 forsalah 2014년 3월 13일 목요일 오전 8:45
    2014년 3월 13일 목요일 오전 7:57

모든 응답

  • 안녕하세요.

    일단, 첫번재 시나리오로 복원 가능합니다. 하지만 별로 권장해드리고 싶지 않습니다.

    두번째 답변을 드리기 전에, 트랜잭션 로그가 기록되는 내용과 로그 백업이 어떻게 처리되는지 아시는 것이 더 먼저일 것 같아서 간단히 설명 드립니다.

    일단 트랜잭션 로그 파일(LDF)에는 insert, update, delete와 그외 변경 내용이 순차적으로 기록됩니다.

    로그 백업/로그 잘라내기/simple 복구모델로 변경하기 등의 작업이 있지 않는다면, 로그는 계속 쌓이게되고, 로그 파일은 계속 커지게 됩니다.

    로그 백업을 수행하면, 트랜잭션 로그의 내용이 백업 파일로 복사되고 해당 내용은 트랜잭션 로그에서 지워집니다.

    이때 트랜잭션 로그 파일(LDF) 자체가 줄어드는 것은 아니고, 안에 내용만 지워진다고 보시면 됩니다. 

    다음 명령으로 트랜잭션 로그 파일의 크기와 저장된 로그의 %를 확인할 수 있습니다.

    dbcc sqlperf(logspace)

    다시 질문으로 들어와서,

    트랜잭션 로그는 큰 문제가 되지 않으면 자주 백업 받으시는 것이 장애 발생 시 더 많은 데이터를 살릴 수 있기 때문에 바람직 합니다.

    비상 로그 백업을 못받을수 있는 상황도 있기때문에, 적어주신 시나리오 대로 100% 될것이다라고 할 수는 없겠네요.

    백업 주기에 대해서 딱히 정답은 없고, 우리회사DB가 장애가 났을 때 손실될 데이터를 생각하시고 백업/복원 plan을 세우는 것이 중요할 것 같습니다.

    참고로 유지관리계획을 사용하시면 오래된 백업 파일에 대한 삭제가 가능합니다.

    도움이 되셨으면 합니다.

    Younggun Kim
    MCDBA, MCITP
    Consultant @ Database Division in SQLRoad
    http://www.sqlroad.com  http://www.sqlserver.co.kr
    ygkim@sqlroad.com  

    • 답변으로 표시됨 forsalah 2014년 3월 13일 목요일 오전 8:45
    2014년 3월 13일 목요일 오전 7:57
  • 지난주에 교육을 받았는데도, 실전에서는 고민이 많았는데..

    비상로그백업을 못받을 수 있는 상황도 있다는 대목에서 모든 궁금증이 해소되었습니다.

    자세히 설명해 주셔서 넘넘 감사합니다. 큰 도움이 되었습니다.

    2014년 3월 13일 목요일 오전 8:47