MSQL ldf 파일 크기 축소하기





    MSSQL은 실제 데이터가 저장된 데이터베이스 파일(.LDF)과 데이터베이스의 처리에 대한 로그 파일(.LDF)로 구성되어 데이터를 관리합니다

    MDF 파일은 데이터 복원에 있어서 중요한 파일이며, 이 LDF 파일의 대한 소개와 용량을 줄이는 방법을 대해 알아보도록하겠습니다.






     LDF 파일의 크기가 커지는 이유




    여러개의 데이터베이스를 관리하시다보면 LDF 파일의 크기가 커지는 경우가 있습니다

    LDF 파일 크기가 커지는 경우의 대부분은 해당 DB의 접근이 많아 트랜잭션 로그가 지속적으로 또는 급격히 쌓이는 경우입니다 LDF 파일을 서버 관리자가 정기적으로 별도의 백업을 하지 않거나 또는 정기 백업 시스템에 문제가 생겨서 LDF 파일이 제대로 관리되는 않는 다면 용량이 무한적으로 커지게 될것입니다.



    용량이 큰것으로 문제가 되는것은 아니지만 로그 파일 용량이 한계치에 도달하거나 서버의 디스크용량을 모두 써버릴 만큼의  용량이 커지게 된다면 해당 DB 또는 같은 서버에 존재하는 모든 DB로 접근이 실패하거나 문제가 발생할 수 있습니다.



    예를 든다면 디스크의 용량을 모두 사용하게 된다면 데이터베이스 서버에서는 더 이상 데이터를 쓸 수 없게 될것입니다.

    더이상 데이터를 쓸수 없을 만큼의 용량의 한계치가 된다면 SELECT를 제외한 DML(Data Mainpulation Laguage)의 처리(INSERT, UPDATA 등)가 실패하게 될것입니다 디스크 용량이 모두 쓰게 되면 더이상 데이터를 기록할 수 있는 용량이 없기 때문이며, SELECT 같은 동작은 별도의 로그 파일에 기록되지 않아 디스크 용량이 모두 쓰게되더라도 정상적으로 동작하게 되는 것입니다.


    특히나 웹서비스를 이용하는 경우에는 사용자가 로그인을 하는 경우 데이터베이스에 로그인 히스토리를 기록하는 처리 등을 수행한다면 해당 웹 사이트에 더 이상 사용자가 로그인하지 못하게 됩니다 이러한 웹서비스의 장애현상이 발생하게 되며 LDF파일의 용량을 초기화해야 되는 상황이 발생하게 됩니다(LDF 파일을 초기화 하여도 실 데이터베이스 파일(MDF)에 영향을 미치는 것은 아니지만, 현재 DMF 데이터만 제대로 유지하게 된다면 LDF 파일 용량 축소 시키는 작업은 DB데이터나 문제가 되지 않습니다.)




     MSSQL DB, 로그파일 축소하기




    당연한 말이지만 축소하기전 꼭 어떠한 일이 있어서 백업후에 진행하시기 바랍니다 DB와 로그파일을 축소하는 과정으로 데이터가 삭제 혹은 손상의 여지가 있기 때문입니다.




    DB 정보보기


    쿼리 명령어 : SP_HELPDB [DB이름]


    SP_HELPDB DB_Name
    




    DB 로그 비우기


    쿼리 명령어 : BACKUP LOG [DB이름] WITH TRUNCATE_ONLY


    BACKUP LOG DB_Name WITH TRUNCATE_ONLY
    




    DB의 LDF 파일의 크기 줄이기



    쿼리 명령어 : DBCC SHRINKFILE ([로그파일 이름], [DB사이즈])


    DBCC SHRINKFILE (logfile_name, 5)
    


    MDF 파일 크기 줄이기


    쿼리 명령어 : DBCC SHRINKDATABASE([DB이름])


    DBCC SHRINKDATABASE(DB_Nmame)
    








    Posted by Server-talk 서버이야기