문제

따라서 SQL Server 2000에서 "데이터베이스의 로그 파일이 가득 찼습니다.일부 로그 공간을 확보하려면 데이터베이스의 트랜잭션 로그를 백업하십시오."

다른 사이트에서 언급한 것처럼 로그를 삭제하지 않고 이 문제를 해결하려면 어떻게 해야 합니까?

추가 정보:AutoGrowth 활성화는 10%씩 증가하며 40MB로 제한됩니다.

도움이 되었습니까?

해결책

스캇, 당신이 짐작한 대로:데이터에 관심이 있다면 로그를 자르는 것은 나쁜 조치입니다.

다음 무료 비디오는 무슨 일이 일어나고 있는지 정확히 확인하는 데 도움이 되며 로그를 자르지 않고 문제를 해결하는 방법을 보여줍니다.(이 비디오에서는 이것이 왜 그렇게 위험한 해킹인지, 그리고 왜 다른 솔루션을 찾는 것이 옳은지 설명합니다.)

이 비디오는 무슨 일이 일어나고 있는지 정확히 이해하는 데 도움이 되며 단순 복구로 전환할지, 아니면 실제로 백업 루틴을 변경할지 여부를 보여줍니다.또한 로그 파일 크기 및 증가를 관리하면서 가용성을 보장하기 위해 백업을 설정하는 방법을 정확하게 보여주는 몇 가지 추가 '방법' 비디오도 있습니다.

다른 팁

그냥 비우려면:

backup log <dbname> with truncate_only  

어딘가에 저장하려면:

backup log <dbname> to disk='c:\somefile.bak'

트랜잭션 기록이 실제로 필요하지 않은 경우 데이터베이스 복구 모드를 단순으로 설정해 보십시오.

ether는 최대 분 단위로 복구해야 하거나 나중에 로그 전달과 같은 다른 재미있는 작업을 수행해야 하거나 데이터베이스를 단순 모드로 설정하고 데이터 파일을 축소해야 하는 경우 데이터베이스 로그를 정기적으로 백업합니다.

.ldf 파일을 복사하거나, 이름을 바꾸거나, 삭제하지 마십시오. 그러면 데이터베이스가 손상될 수 있으며, 이 파일을 복구한 후에는 데이터가 일관되지 않은 상태가 되어 유효하지 않게 될 수 있습니다.

데이터베이스가 온라인 상태인 동안에는 로그 파일의 이름을 바꾸거나 이동하는 것이 작동하지 않을 것이라고 생각합니다.

IMO에서 가장 쉬운 방법은 데이터베이스 속성을 열고 이를 단순 복구 모델로 전환하는 것입니다.그런 다음 데이터베이스를 축소한 다음 돌아가서 DB를 전체 복구 모델(또는 필요한 모델)로 설정합니다.

로깅 모드를 변경하면 SQL Server가 데이터베이스에 검사점을 설정하게 되며, 그 후에 데이터베이스를 축소하면 초과 공간이 확보됩니다.

과거에 이 오류를 겪었던 내 친구는 다음을 추천했습니다.

노력하다

  • DB를 백업하고 있습니다.유지 관리 계획에는 이러한 파일의 잘림이 포함됩니다.
  • 또한 DB의 '복구 모드'를 다음으로 변경해 보십시오. 단순한 (대신에 가득한 예를 들어)

원인:기록되는 이벤트로 인해 트랜잭션 로그가 부풀어 오른다(아마도 다수의 트랜잭션이 실패하고 롤백되는 경우가 있을 수 있습니다..또는 서버의 트랜잭션이 갑자기 정점에 도달하는 경우)

관련 SO 질문을 확인하고 싶을 수도 있습니다.

트랜잭션 로그의 복사본을 가져온 다음 오류 메시지에서 알 수 있듯이 로그 파일을 잘라낼 수 있습니다.

디스크 공간이 꽉 차서 네트워크를 통해 다른 컴퓨터에 로그를 복사할 수 없는 경우 USB를 통해 드라이브를 연결하고 그런 식으로 복사하세요.

귀하의 질문에 답이 있습니다.로그를 백업하면 축소됩니다.데이터베이스를 정기적으로 백업하기 위한 유지 관리 계획을 세우고 "트랜잭션 로그 백업"을 선택하는 것을 잊지 마십시오.그렇게 하면 크기를 작게 유지할 수 있습니다.

만약에 생산 환경 사용

dump tran <db_name> with no_log;

이 작업이 완료되면 로그 파일을 축소하여 디스크 공간을 확보합니다.마지막으로 데이터베이스 복구 모드를 단순으로 전환합니다.

데이터베이스의 전체 백업을 수행하고 데이터베이스가 단순 복구 모델을 사용하지 않는 즉시 SQL Server는 데이터베이스에서 수행된 모든 트랜잭션의 완전한 기록을 유지합니다.이는 데이터 파일이 손실되는 치명적인 오류가 발생하는 경우 로그를 백업하여 오류 지점으로 복원할 수 있도록 하고, 이전 데이터 백업을 복원한 후에는 로그를 복원하여 손실된 데이터를 재생할 수 있도록 하기 위한 것입니다. 업무.

이러한 축적을 방지하려면 트랜잭션 로그를 백업해야 합니다.또는 BACKUP LOG의 TRUNCATE_ONLY 또는 NO_LOG 옵션을 사용하여 현재 지점에서 체인을 끊을 수 있습니다.

이 기능이 필요하지 않으면 복구 모델을 단순으로 설정하세요.

사랑하는 친구여, DBA가 자신의 로그 파일을 자주 확인하는 것은 매우 중요합니다.왜냐하면 당신이 그것에 대해 많은 관심을 기울이지 않는다면 언젠가는 이런 오류가 발생할 것이기 때문입니다.

이를 위해서는 로그 파일에 이러한 오류가 발생하지 않도록 주기적으로 백업을 수행해야 합니다.

그 외에는 위에서 제시한 제안이 매우 옳습니다.

이름을 바꾸세요.예:
이전 로그-16-09-08.log

그런 다음 SQL 서버는 새로운 빈 서버를 사용할 수 있습니다.

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