%EC%9D%84%20%EB%B0%98%ED%99%98%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
운영 체제는 'E:\SQL Database\S*****d\NewAdvWorks.mdf' 파일의 오프셋 0x0000000001c000에서 읽는 동안 SQL Server에 오류 21(장치가 준비되지 않았습니다.)을 반환했습니다. SQL Server 오류 로그 및 시스템 이벤트 로그의 추가 메시지에서 자세한 내용을 확인할 수 있습니다. 이는 데이터베이스 무결성을 위협하는 심각한 시스템 수준 오류 조건이므로 즉시 수정해야 합니다. 전체 데이터베이스 일관성 검사(DBCC CHECKDB)를 완료합니다. 이 오류는 다양한 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서를 참조하세요.
답변1
나에게 도움이 된 것:
alter database [database_name] set offline
...몇 초만 기다려 주세요...
alter database [database_name] set online
SQL Server를 다시 시작하면 모든 데이터베이스(액세스할 수 없는 데이터베이스뿐만 아니라)가 오프라인이 되므로 SQL Server를 다시 시작하는 것보다 낫습니다.
답변2
오늘도 같은 오류가 발생했습니다. SQL Server 서비스를 다시 시작하면 문제가 해결되었습니다.
SQL Server 오류 로그와 Windows 이벤트 로그에 동일한 오류가 표시되었습니다.
운영 체제는 'blah.mdf' 파일의 오프셋 0x00000000026000을 읽는 동안 SQL Server에 오류 21(장치가 준비되지 않았습니다.)을 반환했습니다. SQL Server 오류 로그 및 시스템 이벤트 로그의 추가 메시지에서 자세한 내용을 확인할 수 있습니다. 이는 데이터베이스 무결성을 위협하는 심각한 시스템 수준 오류 조건이므로 즉시 수정해야 합니다. 전체 데이터베이스 일관성 검사(DBCC CHECKDB)를 완료합니다. 이 오류는 다양한 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서를 참조하세요.
그리고:
오류: 823, 심각도: 24, 상태: 2
Robert van den Berg의 답변을 읽은 후 온라인으로 유지해야 하는 다른 데이터베이스가 있는 경우 데이터베이스를 오프라인으로 전환한 다음 먼저 온라인으로 전환해 보겠습니다.
답변3
먼저 오류 메시지에 표시된 로그를 읽으십시오.
그런 다음 서버를 재설정한 후 DBCC CheckDB
다시 실행해 보세요.
답변4
내 경우에는 사용할 수 있었다
exec sp_detach_db [dbName];
이어서
exec sp_attach_db [dbName] , @filename1 = N'U:\mdf\dbName.mdf' , @filename2 = N'G:\ldf\dbName_log.ldf';
SQL 2017의 30개 데이터베이스에 대해. "분리" 프로세스에서 오류가 발생하더라도 SQL은 데이터베이스를 분리했습니다.
분리를 시작하기 전에 사용했기
select db_name(database_id), * from sys.master_files
때문에 이 상태에 30개의 데이터베이스가 있는 경우 연결 프로세스를 스크립트로 작성할 수 있었습니다.
내 경우에서 촉매제를 찾았습니다. 나는 전날 밤에 두 권의 책을 "확장"했습니다. 디스크 관리에서는 당시 볼륨을 확장할 수 없다고 보고했습니다. 다시 시도하기 위해 유지 관리 기간을 기다리기로 결정했지만 아직 오류는 없었습니다.
5시간 후에 VSS를 사용한 백업이 시작되었습니다. 실패한 "확장 볼륨"과 VSS 스냅샷의 조합으로 인해 볼륨이 비정상적인 상태에 놓이게 되었다고 확신합니다.