다른 DB를 참조하는 Views & Procs는 어떻게 로그가 성장하게됩니까?

StackOverflow https://stackoverflow.com/questions/213134

  •  03-07-2019
  •  | 
  •  

문제

하나의 서버에 2 개의 데이터베이스가 있습니다. DB A와 B라고합시다. 데이터베이스 A는 약 11GB이고 데이터베이스 B는 매우 작다 (155MB). 데이터베이스 B에는 데이터베이스 A에서 데이터에 지속적으로 액세스하고 업데이트하는 몇 가지 뷰와 Procs가 있습니다.

흥미로운 점은 데이터베이스 B의 로그가 빠르게 큰 크기로 자라서 일주일 이내에 약 12GB로 성장했다고 생각합니다. 데이터베이스 A는 그렇게 빠르게 성장하지 않습니다.

내 로그가 그렇게 많이 자랄 수있는 이유는 무엇입니까? 다른 데이터베이스에서 데이터를 선택할 때 무슨 일이 일어나고 있습니까?

다른 서버의 데이터베이스에 대해 유사한 작업을 수행 할 때 데이터가 결합 및 선택되기 전에 호출 데이터베이스로 이동합니다 ... 이로 인해 로그 성장이 발생할 수 있습니다. 같은 서버에서 동일한 일이 발생할 수 있습니다. ?

SQL2000 SP4 STD 에디션
전체 복구 모델

미리 감사드립니다, 존

BTW- 나는 복구 모델을 단순하게 변경하면 도움이 될 수 있지만 왜 이것이 왜 먼저 일어나고 있는지 알고 싶습니다.

도움이 되었습니까?

해결책

간단한 선택 명령문이 트랜잭션 로그에 무엇을 추가 할 것인지 상상할 수 없지만 링크 된 서버에 대한 경험이 많지 않으므로 무대 뒤에서 무슨 일이 일어날 지 확실하게 말할 수는 없습니다.

그러나 "데이터베이스 B는 데이터베이스 A에서 데이터에 지속적으로 액세스하고 업데이트하는 몇 가지 뷰와 Procs가 있습니다." 이러한 작업이 B의 Tran 로그에 기록된다는 것이 합리적입니다.

그러나 그것은 단지 내 의견에 불과합니다. 트랜잭션 로그를 직접 검사하고 포함 된 내용이 합리적으로 보이는지 확인하지 않겠습니까? Redgate에는 SQL 2000과 함께 작동하는 무료 로그 탐색기가 있습니다 ( http://www.red-gate.com/products/sql_log_rescue/index.htm); 나는 이전에 한 번만 사용했지만 잘 작동하는 것처럼 보였고 특정 사례에서 베이컨을 저장했습니다.

나는 세부 사항에 대해 궁금하다는 것을 인정하지만, 당신의 상황에서 나는 나의 호기심을 억제하고 로그 파일을 다루고 싶은 유혹을 받았습니다. 결국, 이것은 일시적이며 로그 성장이 링크 된 서버의 아티팩트 인 경우 새 앱을 완료하고 데이터베이스 A를 은퇴하면 자체를 수정해야합니다.

또한 Godeke는 백업에 대해 좋은 지적을했습니다. 로그 파일이 너무 커지면 더 자주 백업하십시오. 그것을 뒷받침하는 것은 로그를 잘라냅니다. 즉, 사용 된 로그 파일의 백분율은 축소되지만 DBCC ShrinkFile을 사용하여 디스크의 파일의 실제 크기는 변경되지 않습니다.

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