2010-01-27 3 views
2

특정 행이 변경된 횟수를 알고 싶기 때문에이 작업을 수행하려고합니다.Sql Server 2005 Express Edition의 로그 파일 (.ldf)에서 쿼리하는 방법은 무엇입니까?

이것이 가능합니까?

감사

+0

이 일회성 임시 요구 사항 또는 정기적으로 수행하고자하는 과정인가? –

+0

이것은 정기적으로 수행하고 싶은 과정입니다. 특정 행이 한 달에 몇 번 변경되었는지에 대한 보고서를 작성하려고한다고 가정 해보십시오. –

답변

2

로그 파일을 읽는 중 상용 도구 또는 달성하기 위해 SQL 내부 지식의 엄청난 금액을 소요 할이 프로그램을 사용할 수 있습니다. 선택 * from :: fn_DBlog (null, null)

실제로 동일한 레코드가 변경되고 수정이 이루어 졌는지 확인하기 위해 디코딩하는 것은 어려운 작업입니다. 가볍게. 따라서 '가능'하지만 그렇게 할 수는 없을 것입니다.

데이터베이스 내에서 해당 기능이 필요한 경우 코드 내에서 트리거/논리를 확인해야합니다.

+0

나는 그럴듯한 길을 가고 싶습니다. 어떻게 시작할 수 있습니까? (링크 또는 무엇인가?) –

+0

https://www.blackhat.com/presentations/bh-usa-07/Fowler/Presentation/bh-usa-07-fowler.pdf slide 21 이후를보십시오 - 곧 실현 될 것입니다. 디코딩하는 것이 얼마나 어려운지. – Andrew

+0

그리고 MS SQL 서버와 오라클이 이전 트랜잭션을 처리하는 방식이 달라질 것입니다. 사실입니까? 그렇다면, 나는 이것을두고 떠나야 만합니다. 어쨌든 더 많은 링크가 도움이 될 것입니다. 고마워. –

0

는 SQL Server 2008의

2008 당신이 필요로 정확히 않는 Change Data Capture라는 SQL Server에 새로운 기능이 있습니다 사용을 고려,이 시간이 지남에 데이터 변경을 추적하는 것입니다.

변경 사항을 추적하기 위해 로그 파일을 검사하는 것은 현명한 방법이 아닙니다. 그렇게하면 데이터베이스에 사용하는 복구 모델에 따라 범위가 제한적인 내역이 제공됩니다.

로그 테이블을 사용하고 SQL Server 트리거를 사용하여 적은 양의 개발로 "자신의 솔루션"을 롤업 할 수있었습니다. 이러한 솔루션의 적합성은 물론 비즈니스 사례에 따라 달라집니다.

몇 가지 흥미로운 독서에 대해 다음 TechNet 문서를 살펴 보자

Tracking Changes in Your Enterprise Database

1

늦은 대답은하지만 ... 그것은 새로운 독자들에게 유용 희망

시도 할 수있는 또 하나 개의 기능입니다 DBCC 로그하지만 불행히도 이것은 fn_dblog와 같은 문서화되지 않은 함수입니다.

SQL Server의 트랜잭션 로그 문제는 특정 시점 복구 및 트랜잭션 속성을 허용하기위한 용도로만 사용 된 것이 아니라는 점입니다.

시도 할 수있는 상업용 log reader from ApexSQL이 있습니다.

올바른 방향으로 나올 수있는 몇 가지 유사한 게시물이 있습니다.

Read the log file (*.LDF) in sql server 2008

SQL Server Transaction Log Explorer/Analyzer