2017-11-07 1 views
0

SQL Server의 데이터베이스에있는 테이블에 데이터를 삽입하려고합니다. 엄청난 양의 데이터가 있습니다. 수백만 건의 레코드에 대해 이야기하고 있습니다. SQL 서버 - 데이터베이스 트랜잭션 로그가 가득합니다.

나는 오류를 데이터베이스 'GCVS2'에 대한 9002

트랜잭션 로그를 얻고 유지 가득 차있다. 로그의 공간을 다시 사용할 수없는 이유를 찾으려면 sys.databases의 log_reuse_wait_desc 열을 참조하십시오.

어제 데이터를 삽입 할 때 약간의 시간이 걸렸지 만 아무런 문제가 없었습니다.

오늘 다시 시도했지만이 오류가 발생했습니다. 내 데이터베이스에 대한 로그 파일을 검사했고, 자동 증가는 무제한 10 %로 설정되었습니다. 이 문제를 해결할 방법이 있습니까?

+0

비슷한 질문은 일반적으로 SO와 인터넷에서 gazillion 시간을 물었습니다. 왜 아무 것도 못 찾았 니? ??? –

+0

전체 복구 대신 단순 모드를 사용하도록 데이터베이스를 설정하십시오. 그런 다음 로그 파일을 축소하십시오 – plaidDK

+0

Mitch, 스레드를 읽었지 만 아무 문제없이 내 문제를 해결할 것입니다. 그것이 내가 여기 게시 한 이유입니다. –

답변

1

를 사용합니다. Full Recovery mode에 넣으십시오. 그런 다음 데이터베이스에 transaction log 백업이 있는지 확인하십시오. 데이터가 얼마나 중요한지에 따라 유지 계획을 세워야합니다. 그것은 장기적인 해결책이 될 것입니다.

BACKUP LOG DBName WITH TRUNCATE_ONLY 
DBCC SHRINKFILE ( DBNameLog, 1) 

을 또는 당신은 Object Explorer을 통해 그것을 할 수 있습니다 - 시간 동안

하면 DBCC 다음 명령을 사용하여 로그 파일을 축소 할 수있는. 자세한 내용은 this 링크를 참조하십시오. 하지만 Shrink 명령을 사용하려면 데이터베이스를 Simple Recovery model으로 설정해야합니다.

2

트랜잭션 로그를자를 수 있습니다. 당신은 당신의 데이터베이스의 Recovery 모드를 확인해야합니다 아래의 쿼리를

BACKUP LOG databasename WITH TRUNCATE_ONLY 

DBCC SHRINKFILE ( databasename_Log, 1) 

Check here for more details

+1

어떤 형식의 프로덕션 시스템이 아니길 바랍니다 ... – Andrew

+0

예, 그렇지 않으면 백업 디스크를 가져 와서자를 수 있습니다 –

관련 문제