ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MSSQL 오류 해결 트랜잭션 로그가 꽉 찼습니다.
    Database/MSSQL 2018. 8. 17. 10:46
    반응형

    [출처: (오류 해결) 트랜잭션 로그가 꽉 찼습니다.]


    트랜잭션 로그를 때때로 백업하고 비워줘야 한다. 그렇지 않으면 로그 파일이 꽉 차서 SQL 서버에 에러가 발생한다. 에러 메시지는 "트랜잭션 로그가 꽉 찼습니다."


    에러 처리 방법은 두가지가 있다(물론 더 많이 있겠지만 필자가 아는 것이 두가지).


    1. SSMS의 메뉴를 사용하는 방법(마우스를 사용하는 방법)

    2. SQL로 처리하는 방법(SQL 창을 사용하는 방법)


    이 두가지에 대해서 수행 과정을 화면 캡쳐한 것 중심으로 정리한다.


    아래 그림은 순서대로 캡쳐한 것이다. 화면을 크게 보고 싶을 경우 그림을 클릭하면 원본으로 크게 볼 수 있다. 체크 표시는 왼쪽 마우스 버튼을 클릭하라는 의미이고 밑줄은 오른쪽 마우스를 클릭하라는 의미다.


    1. SSMS의 메뉴를 사용하는 방법(마우스를 사용하는 방법)


    말로 설명하면 아래와 같은 과정이다.


    1. SSMS(Microsoft SQL Server Management Studio)에 로그인 한다.
    2. 트랜젝션 로그를 축소할 database 이름 위에 마우스를 올리고 오른쪽 버튼을 클릭한다.
    3. 펼쳐진 메뉴에서 속성을 클릭한다.
    4. 속성 창에서 옵션 부분을 클릭한다.

    5. 복구 모델을 단순으로 변경한다.

    6. 확인을 클릭한다.
    7. database 이름 위에 마우스를 올리고 오른쪽 버튼을 클릭한다
    8. 펼쳐진 메뉴에서 테스크 > 축소 > 데이터 베이스를 순서대로 클릭한다.
    9. 새로 나온 창에서 확인 버튼을 클릭한다.
    10. database 이름 위에 마우스를 올리고 오른쪽 버튼을 클릭한다
    11. 펼쳐진 메뉴에서 속성을 클릭한다..
    12. 속성 창에서 옵션 부분을 클릭한다.
    13. 복구 모델을 전체로 변경한다.
    14. 확인을 클릭한다.


    이런 과정을 순서대로 캡쳐한 것이다.

































    여기까지가 1. SSMS의 메뉴를 사용하는 방법(마우스를 사용하는 방법)을 수행한 것이다.



    2. SQL로 처리하는 방법(SQL 창을 사용하는 방법)


    -- 사용할 DB 선택

    USE DB이름


    -- 복구 모델을 SIMPLE 로 변경하면 트랙잭션 로그 파일을 비운다.
    ALTER DATABASE DB이름 SET RECOVERY SIMPLE;


    -- 데이터 베이스의 필요 없는 공간을 축소한다.
    DBCC shrinkdatabase(act_data);

    -- 복구 모델을 FULL 로 다시 변경해야 트랜잭션 로그가 쌓인다.
    ALTER DATABASE DB이름 SET RECOVERY FULL;


    축소할 DB 이름이  act_data 라면.


    USE act_data;

    ALTER DATABASE act_data SET RECOVERY SIMPLE;

    DBCC shrinkdatabase(act_data);

    ALTER DATABASE act_data SET RECOVERY FULL;


    이 것을 복사해서 SQL 창에 붙여넣고 실행한다.


    DBCC SQLPERF(LOGSPACE);


    위 명령은 로그 공간을 조회하는 것이다.


    아래 그림은 위에서 설명한 과정을 캡쳐한 것이다.










    이상으로 (오류 해결) 트랜잭션 로그가 꽉 찼습니다. 라는 오류 해결 방법 정리를 마친다.

    반응형

    댓글

Designed by Tistory.