문제

우리의 테스트 DB는 갑자기 행이 누락되었습니다. 우리는 그들을 다시 원합니다.

오늘날 데이터베이스에 일어난 모든 일을 살펴볼 수있는 방법이 있습니까? 각 SQL 문? 나는 이런 종류의 물건이 트랜잭션 로그에 있다고 가정하지만, 어떻게 볼 수 있는지 잘 모르겠습니다.

삭제 작업을 취소하는 방법이 있습니까?

BTW : 예, 우리는 백업이 있지만 삭제의 원인도 찾는 것을 선호합니다 ...

도움이 되었습니까?

해결책

당신은 몇 가지로 이것을 할 수 있습니다 레드 게이트도구의 도구이지만 비용이 많이 듭니다. 보세요 SQL 로그 구조.

그렇지 않으면, 나는 복원을하고 싶은 유혹을 받았다.

다른 팁

늦은 답변이지만 희망적으로 유용합니다

트랜잭션 로그를 사용하여 삭제 된 행을 복구 할 수있는 방법이 있지만 타사 도구를 사용하고 데이터베이스 만 완전 복구 모드에있는 경우에만 가능합니다.

Dell (이전 퀘스트)은 있습니다 SQL Server 용 두꺼비 그리고 Apexsql은 있습니다 ApexSQL 로그 그리고 ApexSQL 복구 T-Log 및 복구 데이터도 읽을 수도 있습니다. 불행히도 Red Gate의 Log Rescue는 SQL Server 2000의 로그 만 읽을 수 있습니다.

문서화되지 않은 DBCC 로그 명령을 사용하여 T-Log를 읽는 방법도 있습니다. 자세한 내용보기 여기.

이미 데이터베이스 백업이 있다는 점을 고려하면이를 별도의 데이터베이스로 복원 한 다음 시장에 존재하는 많은 데이터 비교 도구 중 하나를 사용하여 누락 된 데이터를 생산 데이터베이스에 삽입 할 수 있습니다. 물론 이것은 백업을 생성하기 전에 데이터 삭제 만 복구 할 수 있습니다.

이를 위해서는 타사 도구가 필요합니다. 이 도구는 트랜잭션 로그로 들어가서 로그 항목을 볼 수 있어야 했으므로 무슨 일이 있었는지 확인할 수 있어야합니다. 이 도구를 사용하지는 않았지만 스타터를위한 Red Gate의 SQL 로그 구조를 시도해 볼 것입니다. 시도 해봐:

http://www.red-gate.com/products/sql_log_rescue/index.htm

나는 Red Gate를 지불하기보다는 무료 버전을 가진 ChronicDB를 시도 할 것입니다.

http://chronicdb.com/blogs/undelete_from_whoops

사용하여 트랜잭션을 취소 할 수 있습니다 Rollback SQL Server의 명령. 그러나 거래가 내에서 수행되면 거래가 롤백 될 수 있다는 것을 알아야합니다. Begin 거래.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top