SQL Server 이야기 20

SQL Server 2008에서 트랜잭션 로그 잘라 내기(Log Truncation)

SQL Server 2000/2005에서는 트랜잭션 로그 백업을 주기적으로 받지 않음에 따라 트랜잭션 로그 파일의 크기가 비정상적으로 커지는 현상이 발생했을 때 다음과 같이 NO_LOG나 TRUNCATE_ONLY 옵션을 지정하여 BACKUP LOG 문을 수행하는 방법을 사용하여 응급 조치를 하곤 했습니다. NO_LOG나 TRUNCATE_ONLY 옵션을 지정하..

Profiler Trace(프로파일러 추적)을 테이블로 저장하여 분석하는 방법

성능 튜닝을 위해 Profiler Trace 수집은 필수적인 작업입니다. Profiler Trace 수집은 Profiler 툴을 이용하여 손쉽게 수행할 수 있으며 수집된 Profiler Trace는 Profiler 툴 자체의 필터링 및 그룹핑 기능을 이용하여 분석할 수 있습니다. 하지만, Profiler Trace의 크기가 크거나 여러 개의 롤오버(Rollover) 파일로 나뉘어 ..

SQL Server 2005/2008에서 트랜잭션 로그의 내용을 확인하는 방법

테이블 데이터의 예기치 않은 삭제와 같은 데이터베이스에서 발생한 이상 현상에 대한 감사 목적으로 SQL Server의 트랜잭션 로그를 분석할 필요가 있을 수 있습니다. 또한, 트랜잭션 로그를 통해 특정 명령 수행시 SQL Server 내부적으로 수행되는 실제 상세 작업에 대해 확인해 볼 필요가 있을 수도 있습..

SQL Server 2008 데이터베이스 백업 압축(Backup Compression)

점점 데이터베이스의 크기가 커져서 수백GB의 크기는 일반화된지 오래이고 수TB에 이르는 데이터베이스가 사용되고 있는 것이 현실입니다. 데이터베이스가 이렇게 커졌음에도 불구하고 물리적인 메모리의 증가와 적절한 인덱스 튜닝 등의 작업으로 인해 이를 사용하는 쿼리문의 성능은 과거에 비해 ..

SQL Server 2005/2008에서 트랜잭션 로그 파일(.ldf)을 재생성하는 방법

트랜잭션 로그 파일(.ldf)은 데이터베이스의 일관성을 유지하기 위해 매우 중요합니다. SQL Server는 데이터베이스를 시작하면서 트랜잭션 로그 파일을 분석하고(Analysis), 트랜잭션은 커밋되었으나 디스크의 데이터 페이지에 반영되지 않은 변경 내용들에 대해서는 Redo 작업을(Roll-forward), 트랜잭션은 커밋..

DBCC CHECKDB를 이용하여 손상된 데이터베이스를 복구하는 방법

데이터베이스는 여러 가지 이유로 해서 손상(Corruption)될 수 있습니다. SQL Server에서 데이터베이스가 손상되었다는 것은 단순히 디스크에서 배드 섹터(Bad Sector)가 발생하여 파일이 물리적으로 손상되는 것만을 의미하는 것은 아니며 파일(.mdf, .ndf, .ldf 등) 자체만을 놓고 봤을 때에는 이상이 없어 보여도..