본문 바로가기
DB관련

SQL Server 로그 깨짐 긴급복구 가이드

by creemcheese 2025. 11. 26.

SQL Server 로그 깨짐 긴급복구 가이드

접속 불가 상황에서 빠르게 벗어나는 실전 복구 절차


SQL Server 로그 파일이 손상되면 데이터베이스가 곧바로 열리지 않아서 당황스러운 경우가 많습니다. 특히 LSN 오류가 뜨며 접속이 차단될 때는 정확한 순서와 안전한 절차가 중요합니다. 여기서는 로컬 환경에서만 사용을 권장하는 긴급 복구 방법을 정리해 드리며, 각 단계가 어떤 의미를 가지는지 이해하기 쉽게 설명해 드립니다.


손상 원인을 파악하며 시작하는 첫 단계

LSN 오류는 보통 로그 파일 손상 또는 비정상 종료 후 일관성 문제가 생길 때 나타납니다. 이 오류가 발생하면 SQL Server가 데이터 무결성을 보장할 수 없다고 판단해 DB 접속을 막습니다. 그래서 개입 없이 정상 접근이 불가능하고, 결국 복구 절차를 밟아야만 합니다.


새로운 데이터베이스 생성이 필요한 이유

처음 해야 할 일은 동일한 이름의 새로운 데이터베이스를 하나 만드는 것입니다. 이렇게 하는 이유는 SQL Server가 파일 구조를 다시 구성할 수 있는 기반을 만들어 주기 위해서입니다. 이 과정을 통해 이후 MDF 파일을 안전하게 교체할 수 있게 됩니다.


서비스 중지 후 MDF를 교체하는 핵심 구간

신규 데이터베이스를 만든 뒤 SQL Server 서비스를 정지합니다. 그리고 손상된 원본 MDF 파일을 새로 생성한 DB의 MDF 파일과 교체합니다. 이 단계가 복구의 중심이 되는데, SQL Server가 다음 재시작 때 이 MDF를 기반으로 상태를 읽어들이도록 만드는 작업이기 때문입니다.


설정 변경을 통한 긴급 모드 진입

이제 다시 SQL Server를 실행하고 쿼리 분석기에서 필요한 설정을 조정합니다. 여기에서는 데이터베이스를 긴급 모드에 가까운 상태로 전환하여 손상된 구조를 SQL Server가 처리할 수 있도록 하는 것이 목적입니다. 평소에는 사용하지 않는 옵션들이지만 복구 과정에서는 필요한 절차입니다.

 

[관련 쿼리]

    sp_configure 'allow update', 1
    reconfigure with override
    update master..sysdatabases
    set status = status | 32768
    where name = 'Test'
    sp_configure 'allow update', 0
    reconfigure with override


로그 파일을 안전하게 제거하고 재구축하기

서비스를 다시 중지한 뒤 손상된 LDF 파일을 삭제합니다. 이후 SQL Server를 재시작하면 로그 파일이 없는 상태가 되며, 이때 dbcc rebuild_log 명령을 이용해 새로운 로그 파일을 생성할 수 있습니다. 이렇게 하면 SQL Server가 정상적으로 사용할 수 있는 기본 로그 구조가 새로 만들어집니다.


로그 재구축 명령 구문 요약

아래는 해당 명령을 실행할 때 필요한 정보들을 한눈에 보기 좋게 정리한 표입니다.

항목예시
데이터베이스명 Test
로그 파일 경로 C:DataTest_Log.LDF

멀티 유저 모드로 되돌리면 마무리

dbcc rebuild_log 로 로그 파일이 정상적으로 재구축되면 마지막으로 데이터베이스를 다시 멀티유저 모드로 전환함으로써 일반적인 접근이 가능해집니다. 긴급 상황에서 벗어나 안정적인 상태로 복구되었다는 의미이기도 합니다.

 

[관련 쿼리]

    dbcc rebuild_log('Test', '파일경로\Test_Log.LDF') --데이터베이스명과 LDF파일 저장된 위치
    alter database inbus set multi_user


복구 이후 체크해야 할 안정성 포인트

전체 작업이 완료되었다면 데이터 무결성을 확인하고 필요한 경우 추가 점검을 진행하는 것이 좋습니다. 특히 로그가 손상되었던 사례에서는 재발 여부를 줄이기 위해 환경이나 백업 체계를 다시 점검하는 과정이 도움이 됩니다.