답변:
데이터베이스가 전체 복구 모드입니까?
그렇다면 트랜잭션 로그 백업을 수행하고 있습니까?
없는 경우 (전체 복구 모드가 아닌 경우) 마지막 전체 백업을 다른 이름의 데이터베이스로 복원하십시오. (이미 가지고있는 데이터베이스를 덮어 쓰지 마십시오.) 백업 시점에 온라인 상태였던 레코드를 복원 할 수 있지만 이후 모든 변경 사항을 잃게됩니다.
SQL Server는 삭제 된 각 레코드에 대한 로그를 유지합니다. fn_dblog
SQL Server 기능을 통해 이러한 로그를 쿼리 할 수 있습니다 .
SELECT [RowLog Contents 0]
FROM sys.fn_dblog(NULL, NULL)
WHERE
AllocUnitName = 'dbo.TableName'
AND Context IN ( 'LCX_MARK_AS_GHOST', 'LCX_HEAP' )
AND Operation in ( 'LOP_DELETE_ROWS' )
;
그러나이 로그는 16 진 형식이므로이 16 진 형식을 실제 데이터로 변환해야합니다.
아래 기사는 위에서 정의한 방식으로 삭제 된 레코드를 복구하는 데 도움이됩니다.
http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/
@user1059637
-코드에 기능을 추가하는 사람들에 대한 당신의 태도는 무엇입니까?
안타깝게도 더 많은 정보가 없으면 도움을 드릴 수 없습니다. 그러나 귀하의 질문에 따르면 귀하의 데이터베이스에서 2 백만 개의 레코드가 삭제 된 것으로 나타났습니다. 데이터베이스에 전체 로깅이없고 특정 도구를 구입하지 않으면이 정보를 복구 할 수 없습니다.
자신의 생각과 레코드를 되돌릴 수 없다고 생각하는 이유를 설명하고 데이터베이스의 구성을 설명 할 수 있다면 좀 더 도움이 될 수 있습니다.
몇 가지 일반적인 조언 : 2 백만 개의 레코드를 삭제했다고 생각하면 아마 약간 당황했을 것입니다. 따라서 5 분 휴식을 취하고 진정한 다음 문제를 다시 방문해야합니다. 또한 합리적인 경우 (2am에 누군가를 깨우지 말고) 해결책을 찾고 있다면 상사에게 즉시 알려야합니다. 열렬히 회복하고 잠재적으로 문제를 악화시키고 세부 사항을 숨기는 것보다 일어난 일을 인정하는 것이 좋습니다. 상사가 어떤 식 으로든 도울 수 있다는 것을 알고 있으면 문제를 해결하는 데 도움이됩니다. 내가 말했듯이, 몇 가지 일반적인 조언.