2010-06-06 5 views

답변

4

아니요. 트랜잭션을 커밋 한 경우 원본 테이블을 복원하는 유일한 방법은 최신 백업에서 가져 오는 것입니다.

+0

나는 SQL Server에 트랜잭션 로그가 있다고 생각하는데, 여기에는 내가 작성한 모든 트랜잭션이 포함되어 있지만 확실하지는 않습니다! – sikas

+0

@sikas - 데이터베이스가 어떤 복구 모델인지 알고 있습니까? –

+0

아니요. 모르겠는데 어떻게 알 수 있습니까? – sikas

1

백업이있는 경우 다른 데이터베이스로 복원 한 다음 테이블 만 이동하면 다른 테이블은 영향을받지 않습니다. 또한 트랜잭션 로그 백업이있는 경우 특정 시점 복원을 수행 할 수도 있습니다.

+0

해당 트랜잭션 로그 백업을 찾을 수 있습니까? – sikas

+0

DBA에게 질문하거나이 데이터베이스와 백업 전략을 설정했습니다. – SQLMenace

+0

글쎄, 나는 SQL Server를 설치 한 사람이고 회사 PC가 아닌 개인용 PC에 설치했지만 어디서 찾을 수 있는지 알지 못합니다. 저장된 로그는 어디에 있습니까! – sikas

1

특정 상황에서 특정 작업을 실행 취소 할 수있는 도구가 있다고 들었습니다. 이 상황에서 데이터 손실을 최소화하는 방법에 대한 흥미로운 기사의 내용은 link이며 일부 도구에 대한 링크가 포함되어 있습니다.

ServerFault에서이 질문을하고 시스템 관리자가 더 잘 알고 싶어 할 수도 있습니다.

-1

확인이 링크. 이 기사가 실수로 일어난다면 우리는 삭제 된 데이터를 복구 할 수있는 방법을 보여줍니다 트랜잭션 로그

https://www.experts-exchange.com/articles/28199/How-to-recover-deleted-rows-in-SQL-Server.html

를 사용하여 값을 복원하는 방법을 보여줍니다. 데이터가 삭제 된 시간을 알면 삭제 된 행을 복구 할 수 있습니다. LSN (Log Sequence Numbers)을 사용하여이 목표를 달성 할 수 있습니다. LSN 값으로 트랜잭션 로그를 검사하여 삭제 된 행을 복원하는 예를 보여줍니다. 업데이트의 경우 'LOP_MODIFY_ROW'를 사용하십시오. 행을 삭제 한 후

다음 TransactionId를 바탕으로 조회

Select [Current LSN] LSN], [Transaction ID], Operation, Context, AllocUnitName 
FROM 
fn_dblog(NULL, NULL) 
WHERE Operation = 'LOP_DELETE_ROWS' 

영향 및 행 번호를 사용하여 기록을 확인한 결과 세트를 필터링. 그런 다음 RESTORE DATABASE을 사용하여 로그에서 값을 복원하십시오.

참고 : 실수로 수정 ​​/ 삭제하는 즉시이 복원을 수행하는 것이 가장 좋습니다. 데이터베이스에서 작업이 많을수록 트랜잭션 로그 값을 덮어 쓸 가능성이 큽니다.

관련 문제