SQL Server 의심,의심,복구 중 등 상황 분석

1.오류 가 발생 했 을 때 데이터베이스 서 비 스 를 다시 시작 하면 일부 데이터 베 이 스 는 복구,의심,의심 등 상황 으로 바 뀌 었 다 는 것 을 알 게 될 것 입 니 다.이때 DBA 는 매우 긴장 할 것 입 니 다.다음은 실천 에서 증명 되 는 방법 입 니 다.데이터베이스 서 비 스 를 다시 시작 한 후에 데이터 베 이 스 는 복구 되 고 있 습 니 다.오 랜 시간 이 지나 도 이 상태 입 니 다.오프라인 시간 이 오래 걸 리 지 않 기 때문에 데이터베이스 서 비 스 를 중단 하고 데이터 파일 mdf 와 ldf 를 복사 하여 ldf 파일 을 삭 제 했 습 니 다.예전 의 경험 에 따 르 면 ldf 가 없 는 상황 에서 mdf 를 사용 하여 데이터 베 이 스 를 복원 할 수 있 는 것 같 습 니 다.같은 이름 의 데이터 베 이 스 를 만 들 었 습 니 다.데이터 베 이 스 를 중단 하고 mdf 파일 을 덮어 쓰 고 데이터 베 이 스 를 시작 합 니 다.이 때 는 의 심 스 러 운 상태 입 니 다.그 중에서 mdf 를 사용 하여 데이터 베 이 스 를 추가 하 는 것 은 추가 할 수 없 으 며 계속 오 류 를 보고 합 니 다.2.해결 절차 방법 1:스 크 립 트 를 사용 하여 데이터 베 이 스 를 복원 합 니 다
 
--DataBaseName
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE [DataBaseName] SET EMERGENCY
GO
sp_dboption 'DataBaseName', 'single user', 'true'
GO
DBCC CHECKDB('DataBaseName','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE [DataBaseName] SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'DataBaseName', 'single user', 'false'
GO
SQL 설명:1)지정 값 을 사용 하여 강제로 재 설정:(1,0 은 진짜 와 가짜 로 표시)spconfigure'allow updates',1 reconfigure with override 2)비상 상태 로 설정:alter database DataBaseName set emergency 3)단일 사용자 모드 로 설정:alter database[DataBaseName]set singleuser 또는:Spdboption'DataBaseName','single user','true'4)발견 한 오 류 를 복구 합 니 다:DBCC CHECKDB('DataBaseName','REPAIRALLOW_DATA_LOSS')5)온라인,온라인 으로 설정:ALTER DATABASE[DataBaseName]SET ONLINE 방법 2:이 방법 은 아직 시도 해 보지 않 았 으 니 한번 시도 해 보 세 요
 
CREATE DATABASE DataBaseName
ON (FILENAME = 'D:\DataBase\Name.mdf')
FOR ATTACH_REBUILD_LOG ;
GO

좋은 웹페이지 즐겨찾기