SQL/MS-SQL
응급 복구 모드로 DB복구 하기
Dev-Drake
2019. 6. 27. 17:44
반응형
ALTER DATABASE DB명 SET EMERGENCY
GO
DBCC CHECKDB('DB명')
GO
위의 결과에서 어떤것들이 검색되었다고 나오면 복구 가능성이 높고
그렇지 않고 메모리 공간 부족등 이상한 오류가 나오면 힘들다.
검색 결과가 나오면
-- 단일 사용자 모드로 변경
ALTER DATABASE DB명 SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
# DBCC CHECKDB 옵선
1. REPAIR_FAST : 시간이 많이 소요 되지 않고, 데이터의 손실이 없는 사소한 오류
2. REPAIR_REBUILD : REPAIR_FAST가 하는 모든 작업, 인덱스 재생성과 같이 시간이 소요되는 작업이 복구 과정에서 진행됨,
역시 데이터 손실 위험을 없다.
3. REPAIR_ALLOW_DATA_LOSS : REPAIR_REBUILD가 하는 모든 작업, 할당 오류, 구조적 행 오류나 페이지 오류, 손상된 텍스트 개체 삭제를 수정하기 윈한 행과 페이지의 할당 및 할당 취소드으이 작업이 진행된다.
-- DB복구
DBCC CHECKDB('DB명', REPAIR_ALLOW_DATA_LOSS) -- 복구 불가능한 데이터는 버리고 테이블 복구
-- 다중 사용자 모드로 변경
ALTER DATABASE DB명 SET MULTI_USER
GO
DB에 걸려 있던 응급 모드도 자동 해제됨.
반응형