[MSSQL] 데이터베이스 복구 보류 중 해결하기 (RECOVERY_PENDING)

2019. 4. 17. 14:06· SQL Server/SQL Server 이슈

복구 보류 중인 상태 확인하기


SSMS 의 개체 탐색기에서도 바로 확인할 수 있지만, sys.databases 테이블에서도 데이터베이스의  상태를 확인할 수 있습니다.




복구 보류 중인 상태 원인


1. 데이터베이스가 정상적으로 종료되지 않았습니다.

데이터베이스가 종료되고 로그파일이 삭제될 때 COMMIT 되지 않은 활성화된 트랜잭션이 있을 수도 있습니다.


2. 로그 파일을 다른 경로로 이동하려고 했지만 이 과정에서 로그 파일이 손상되었습니다.


3. 메모리 공간 부족 또는 디스크 저장 공간으로 인해서 데이터베이스 복구를 시작할 수 없습니다.




복구 보류 중인 상태 해결하기


해결책은 2가지가 있습니다.


해결책 1

Northwind 데이터베이스를 복구하는 경우, 다음의 쿼리를 실행해 주세요.

ALTER DATABASE Northwind SET EMERGENCY;

GO


ALTER DATABASE Northwind SET SINGLE_USER;

GO


DBCC CHECKDB (Northwind, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;

GO


ALTER DATABASE Northwind SET MULTI_USER;

GO


1. Northwind 데이터베이스를 응급 모드로 변경합니다.

 - 응급 모드는, READ_ONLY 이며 로깅을 비활성화 하고 시스템 관리자에게만 액세스 권한이 부여됩니다.


2. Northwind 데이터베이스를 단일 사용자 모드로 변경합니다.


3. Northwind 데이터베이스를 복구합니다. 이 때 데이터 손실이 일어날 수 있습니다.

 - Microsoft 에서는 해당 옵션은 최후의 수단으로만 사용하며, 이 옵션에 대해 경고하고 있습니다.

The REPAIR_ALLOW_DATA_LOSS option is a supported feature but it may not always be the best option for bringing a database to a physically consistent state. If successful, the REPAIR_ALLOW_DATA_LOSS option may result in some data loss. In fact, it may result in more data lost than if a user were to restore the database from the last known good backup.

Microsoft always recommends a user restore from the last known good backup as the primary method to recover from errors reported by DBCC CHECKDB. The REPAIR_ALLOW_DATA_LOSS option is not an alternative for restoring from a known good backup. It is an emergency "last resort" option recommended for use only if restoring from a backup is not possible.


4. Northwind 데이터베이스를 복수 사용자 모드로 변경합니다.



해결책 2

pubs 데이터베이스를 복구 하는 경우, 다음의 쿼리를 실행해 주세요.

ALTER DATABASE pubs SET EMERGENCY;

GO


ALTER DATABASE pubs SET MULTI_USER;

GO


EXEC sp_detach_db 'pubs'

GO


EXEC sp_attach_single_file_db @DBName='pubs', @physname=N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\pubs.mdf'

  -- @physname 은 pubs 데이터베이스의 데이터파일

GO


1. pubs 데이터베이스를 응급모드로 변경합니다.


2. pubs 데이터베이스를 복수 사용자 모드로 설정합니다.


3. pubs 데이터베이스를 SQL Server 에서 제거합니다.


4. pubs 데이터베이스를 SQL Server 에 등록합니다.


이 작업을 하기 전 pubs 데이터베이스에 올바른 백업본이 있는지 먼저 확인합니다.

이러한 이유는 위의 작업이 잘못되었을 경우를 대비한 pubs 데이터베이스 백업본으로 복구를 진행해야 할 수도 있기 때문입니다.

저작자표시 비영리 변경금지

'SQL Server > SQL Server 이슈' 카테고리의 다른 글

[MSSQL] 구성 요소 'Ad Hoc Distributed Queries'이(가) SQL Server 보안 구성의 일부로 해제 해결하기  (0) 2019.05.22
[MSSQL] MSCS(Microsoft Cluster Service) 클러스터 확인 오류 실패 현상 해결하기  (0) 2019.05.16
[MSSQL] ERROR 7405 유형이 다른 쿼리를 사용하려면 연결에 대해 ANSI_NULLS 및 ANSI_WARNINGS 옵션을 설정해야 합니다.  (0) 2019.03.27
[MsSQL] Memory 부족으로 Not enough storage is available to complete this operation 메시지와 함께 구동되지 않을 때  (0) 2019.03.08
[MsSQL] 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다. 해결하기  (5) 2019.02.24
'SQL Server/SQL Server 이슈' 카테고리의 다른 글
  • [MSSQL] 구성 요소 'Ad Hoc Distributed Queries'이(가) SQL Server 보안 구성의 일부로 해제 해결하기
  • [MSSQL] MSCS(Microsoft Cluster Service) 클러스터 확인 오류 실패 현상 해결하기
  • [MSSQL] ERROR 7405 유형이 다른 쿼리를 사용하려면 연결에 대해 ANSI_NULLS 및 ANSI_WARNINGS 옵션을 설정해야 합니다.
  • [MsSQL] Memory 부족으로 Not enough storage is available to complete this operation 메시지와 함께 구동되지 않을 때
꽁담
꽁담
'DBA 업무'와 '알게되는 정보'를 기록하는 공간
꽁담
꽁담
꽁담
글쓰기
방명록
관리
방문 수
오늘
어제

카테고리

  • 분류 전체보기 (622)
    • 일상 (0)
      • 좋은글 (0)
    • Windows (37)
    • SQL Server (119)
      • SQL Server 자주보는 (18)
      • SQL Server 이중화_백업 (11)
      • SQL Server 기본기 (4)
      • SQL Server 이슈 (23)
      • SQL Server 기타 (63)
    • Database (260)
      • DBA 의 개인생각 (21)
      • 개념 (28)
      • MySQL (21)
      • Oracle (13)
      • PostgreSQL (17)
      • Redis (31)
      • Goldilocks (83)
      • MongoDB (31)
      • MongoDB 실습 (15)
    • Computer Language (113)
      • C (17)
      • JAVA (71)
      • Android (18)
      • Python (7)
    • Linux (41)
      • 개념 (22)
      • 명령어 (14)
      • 실습하기 (5)
    • AWS (31)
      • S3 (3)
      • RDS (7)
      • EC2 (11)
      • 기타 (10)
    • 자격증 (1)
    • 엑셀 (2)
    • 후기 (17)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • 데이터베이스
  • AWS
  • MongoDB
  • MS-SQL
  • 리눅스
  • Java
  • mysql
  • 자바
  • postgresql
  • 안드로이드
  • msSQL
  • Oracle
  • 골디락스
  • C
  • Linux
  • goldilocks
  • SQL Server
  • Android
  • Database
  • Goldilocks DBMS

최근 댓글

hELLO · Designed By 정상우.v4.2.2
꽁담
[MSSQL] 데이터베이스 복구 보류 중 해결하기 (RECOVERY_PENDING)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.