SUSPECT 2

페이지 ID로 테이블 이름 찾기

페이지 ID로 테이블 이름 찾기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 손상된 페이지가 있을 때 어느 테이블의 손상인지 확인 하는 방법에 대해서 알아본다. 손상된 페이지가 있을 경우 일반적으로 DBCC CHECKDB를 실행하지만 데이터베이스가 TB 단위인 경우에는 이 문제를 파악하기 위해 몇 시간이 걸릴지도 모르는 일이다. 또 다른 확인 방법으로는 PAGELATCH_EX 대기를 보고 sys.dm_os_waiting_tasks 의 resource_description 정보를 이용하여 테이블 이름을 알아 낼 수도 있다. suspect_pages 테이블의 데이터를 이용하여 테이블 이름을 확인해 보자. Suspect_page 테이블은 SQL Server 20..

Database 손상시 Emergency 모드로 복구하기

Database 손상시 Emergency 모드로 복구하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server에서 데이터베이스가 손상되었을 때 조치할 수 있는 방법에 대해서 알아본다. 데이터베이스가 손상되었을 때 유일하게 접속할 수 있는 방법은 Emergency 모드이다. 시나리오는 다음과 같다. Emergency 모드로 데이터베이스에 접근 한다. 새로운 트랜잭션로그를 구축하기 위해 문서화 되지 않은 DBCC REBUILD_LOG 명령을 사용한다. 데이터 파일에 대한 손상을 해결하기 위해 REPAIR_ALLOW_DATA_LOSS 옵션으로 DBCC CHECKDB를 실행 한다. 데이터복구가 완료되면 백업을 진행하고 Emergency 모드를 해제 한다..