2012-03-06 7 views
0

두 개의 서로 다른 .BAK 파일 (야간 백업 파일이 다릅니다)을 사용하여 두 개의 데이터베이스를 복원했습니다..TRN 파일 데이터를 읽는 방법?

최근 복원 된 .BAK에서 ​​사라진 데이터 행이 있습니다.

이유를 알아야합니다.

.TRN 데이터를 읽고 읽음으로써 어떤 사용자 작업으로 인해 문제가 발생했는지 확인할 수있는 방법이 있습니까?

+0

http://stackoverflow.com/questions/4507509/how-to-view-transaction-logs-in-sql- 서버 2008 – Marc

답변

4

Apexsql을 확인하십시오. 트랜잭션 로그를 읽는 도구를 제공합니다. 그러나 프리웨어가 아닙니다.

SQl 서버에는 문서화되지 않은 기능이 있습니다. 자세한 내용은 This Post을 참조하십시오.

DBCC LOG(databasename, typeofoutput) 
2

폴 랜달은 find out who dropped a table using the transaction log에 문서화되지 않은 기능을 사용하여 작성, 당신은 동일한 개념을 사용할 수 있습니다.

그의 게시물에서 그는 삭제 된 테이블을 찾고 있었기 때문에 로컬 시스템에서이 테이블을 재생하여 테이블에서 레코드를 삭제하기 위해 WHERE [Tranaction Name] = 'DELETE'으로 필터링 할 것을 발견했습니다.

그래서이 쿼리 :


SELECT [Current LSN], [Begin Time], SPID, [Database Name], [Transaction Begin], [Transaction ID], [Transaction Name], [Transaction SID], Context, Operation 
FROM ::fn_dblog (null, null) 
WHERE [Transaction Name] = 'DELETE' 
GO 

반환 값이 출력


Current LSN Begin Time SPID Database Name Transaction Begin Transaction ID Transaction Name Transaction SID Context Operation 
00000474:00000239:0001 2012/03/06 10:09:19:547 58 NULL NULL 0001:000a67be DELETE 0x010500000000000515000000628ADB6E31CC6098F269B2B9F8060000 LCX_NULL LOP_BEGIN_XACT 
관련 문제