문제

읽고 나서 O'Reilly의 주제에 관한 기사, 나는 스택 오버플로에게 그 문제에 대한 그들의 생각을 물어보고 싶었다.

도움이 되었습니까?

해결책

로컬로 디스크에 쓰고 데이터베이스에 주기적으로 배치 삽입물을 배치하십시오 (예 : 로그 롤오버 시간에). 개별적이고 우선 순위가 낮은 프로세스에서 그렇게하십시오. 더 효율적이고 강력한 ...

(데이터베이스 로그 테이블에 "로그 이벤트가"온화한 "컬럼"에 대한 열이 포함되어 있는지 확인하십시오.

다른 팁

상당히 많은 서버 오류가 데이터베이스와 통신하는 문제와 관련이 있다는 점을 감안할 때 아니요. 데이터베이스가 다른 컴퓨터에있는 경우 네트워크 연결은 로그온 할 수없는 또 다른 오류 소스가 될 것입니다.

서버 오류를 데이터베이스에 로그인하려면 데이터베이스가 도달 할 수없는 경우 로컬로 (이벤트 로그 또는 파일 또는 무언가에) 백업 로거를 작성하는 것이 중요합니다.

가능하면 DB에 로그인하면 DB 속도를 늦추지 않습니다. :)

DB에서 로그 파일에서 무엇이든 찾는 것이 더 빠릅니다. 특히 필요한 것을 미리 생각한다면. DB 로그인하면 다음과 같은 로그 테이블을 쿼리하겠습니다.

select * from logs
where log_name = 'wcf' and log_level = 'error'

그런 다음 오류를 찾은 후이 오류로 이어지는 전체 경로를 볼 수 있습니다.

select * from logs
where contextId = 'what you get from previous select' order by timestamp

텍스트 파일에 로그인하면이 정보를 어떻게 얻을 수 있습니까?

편집하다:Jonskeet이 제안한 것처럼 DB 비동기식에 로깅을 고려해야한다고 말하면이 답변이 더 좋을 것입니다. 그래서 나는 그것을 말합니다 :) 나는 그것을 필요로하지 않았습니다. 예를 들어 Richard Kiessig의 "Ultra Fast Asp.net"을 확인할 수 있습니다.

데이터베이스가 프로덕션 데이터베이스 인 경우 끔찍한 아이디어입니다. 너 ~ 할 것이다 백업, 복제, 복구에 문제가 있습니다. DB 자체, 복제본 및 백업을위한 더 많은 스토리지와 마찬가지로. 복제를 설정하고 복원하는 데 더 많은 시간, 백업을 확인하는 데 더 많은 시간, 백업에서 DB를 복구 할 시간이 더 많습니다.

데이터베이스의 로그를 원한다면 나쁜 생각은 아니지만 로그 파일 항목이 많으면 기사의 조언을 따르지 않는다고 말합니다. 주요 문제는 파일 시스템이 데이터베이스는 물론 바쁜 사이트에서 오는 로그를 따라 잡는 데 문제가 있다는 것을 보았습니다. 정말로이 작업을 수행하고 싶다면 로그 파일을 처음 디스크에 작성한 후 데이터베이스에로드하는 것을 살펴 봅니다.

RAM을 읽고 쓰는 데 사용하는 올바르게 설정된 데이터베이스에 대해 생각하십니까? 이것은 디스크에 쓰는 것보다 훨씬 빠르며 OS로 인해 스레드가 잠그기 시작할 때 발생하는 많은 수의 클라이언트를 제공 할 때 표시되는 디스크 IO 병목 현상을 제시하지 않습니다. 손잡이.

내 최신 응용 프로그램이 데이터베이스 로깅으로 롤링되고 있지만이 데이터를 증명할 벤치 마크가 없습니다. 이것은 이러한 응답 중 하나에서 언급 된 바와 같이 안전하지 않습니다. 데이터베이스 연결을 생성 할 수없는 경우 로컬 데이터베이스 (H2 어쩌면?)를 작성하여이를 작성하십시오. 그런 다음 연결을 다시 설정하고 로컬 데이터베이스를 덤프하며 원격 데이터베이스로 푸시하는 데이터베이스 연결을 정기적으로 확인할 수 있습니다.

HA 사이트가없는 경우 시간 동안 수행 할 수 있습니다.

언젠가는 내 요점을 보여주기 위해 벤치 마크를 개발하고자합니다.

행운을 빕니다!

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