2011-07-26 4 views
0

갑자기 SQL Server가 의심스러운/오프라인 모드에 있음을 확인했습니다. 그래서 내 DB에서 어떤 작업도 할 수 없습니다. 이러한 이유로 저는 서버를 다시 시작했습니다 (Windows Server 2003).SQL 서버 용의자/오프라인 모드 및 데이터 유실

하지만 준비가되면 일부 데이터가 손실 된 것으로 나타났습니다. 나는 내 데이터베이스의 백업을 가지고 있지 않습니다.

내가 잃어버린 데이터를 다시 얻을 수있는 방법이 있습니까?

오류 로그 : 트랜잭션 ID (0 : 1,552,370), 페이지 (1 : 3679)

레코드 (: 10151 5 5108) 리두 로그 할 수 없습니다, 데이터베이스를 '??'

+1

다음 번에는 백업 준비를하십시오! 현재 : 아니요, 데이터가 손실 될까 봐 걱정됩니다. ** 언급 ** : ** 백업 **?!?! –

+0

MSDN에 따르면 오류 로그에 문제가있는 이유에 대한 몇 가지 추가 정보가 나와 있습니다. http://msdn.microsoft.com/en-us/library/ff487115%28v=sql.105%29.aspx 기회가있을 경우 좀 봐 주시겠습니까? – SchmitzIT

답변

1

데이터베이스는 데이터 파일의 위치와 로그 파일이 실수로 또는 의도적으로 잘못 된 경우 의심/오프라인 모드로 가고, 그렇게 한 후 데이터베이스를 재시작 할 수는 데이터 파일을 찾을 수 없습니다 및 의심 또는 오프라인 모드로 간다 . 데이터 파일과 로그 파일을 데이터베이스에 대해 구성된 원래 경로로 되돌려 놓으면이 문제를 해결할 수 있습니다. 그 후에 데이터베이스는 'Restore with recovery'명령을 사용하여 손실없이 복원 할 수 있습니다. 데이터 파일과 로그 파일의 원래 경로는 데이터베이스가 포함 된 서버의 오류 로그에서 찾을 수 있습니다. 솔루션을 사용해보십시오. 도움이 되었기를 바랍니다. 또 다른 경우 트랜잭션 중간에 서버가 꺼졌다가 다시 시작되어 데이터베이스가 의심/오프라인 모드로 전환 될 수 있으며 다시 시작한 후에 트랜잭션이 커밋되거나 일관성있는 상태로 롤백되지 않아 데이터베이스의 일관성이 유지되지 않을 수 있습니다 상태가 의심 스럽거나 오프라인 상태가되었습니다. 자체 상태는 데이터 손실이,이 명령은 트랜잭션 로그에서 일부 데이터가 손실 될 수 있으며, 따라서 우리는 데이터 손실에 직면 할 수 허용 커멘드로

alter database <database name> set emergency dbcc checkdb (repair_allow_data_loss) 

, 그래서는 사용하지 않는 것이 좋습니다 : 이것에 대한 솔루션입니다 빈번하거나 승인되지 않은 사용.