none
복제중에도 shrink를 사용해서 로그파일을 축소해도 문제가 없나요? RRS feed

  • 질문

  • mssql 2008 R2 입니다.

    select name, log_reuse_wait_desc from sys.databases 

    의 결과는 

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

    name log_reuse_wait_desc

    디비명 LOG_BACKUP

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

    입니다.

    복제게시자 디비에서 로그파일을 축소하기 위해서 

    alter database 디비명set recovery simple
    dbcc shrinkfile (디비로그명, 100) -- MB
    alter database 디비명 set recovery full

    이렇게 명령을 내린다면 복제와 상관없이 로그파일을 축소할수 있나요?

    2015년 11월 2일 월요일 오전 7:06

답변

  • 먼저 게시자에서 트랜잭션 로그를 shrink할 수 있습니다.

    그리고 복구 모델이 simple이어도 복제가 가능합니다.

     

    두번째 명령 만 좀 수정이 필요한데, 디비로그명이 아니라 트랜잭션 로그 파일 논리 이름이어야 합니다.

    dbcc shrinkfile은 해당 DB에서 실행해야 하며, 축소할 파일의 논리 이름이나 파일 번호를 지정되어야 합니다.

    파일의 논리 이름이나 번호 정보는 sp_helpdb 디비로그명 으로 쉽게 확인이 가능합니다.

    즉, 아래와 같이 지정하면 됩니다.

    use 디비로그명

    go

    dbcc shrinkfile(로그파일이름, 100)

    go

     

    일반적으로는 트랜잭션 로그를 비우기 위해서는 로그 백업을 수행할 것을 권고 드립니다.

    만약 트랜잭션 로그가 너무 커서 백업을 받을 수 없는 경우라면 복구 모델을 simple로 변경할 수 있겠지만, 그렇지 않다면 로그 백업을 받은 후 바로 shrinkfile를 수행하면 파일을 줄일 수 있습니다.

     

    답변이 도움이 되셨으면 좋겠습니다.

    Younggun Kim

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


    • 편집됨 Younggun KimMVP 2015년 11월 2일 월요일 오후 1:47
    • 답변으로 표시됨 임진승 2015년 11월 3일 화요일 오전 12:53
    2015년 11월 2일 월요일 오후 1:46