전체 복구 모델을 사용해야하는시기와 데이터베이스에 간단한 복구 모델을 사용해야하는시기는 언제입니까?
기본값이기 때문에 항상 전체 복구 모델을 사용했지만 오늘이 오류가 발생했습니다.
SQL Server 용 Microsoft OLE DB 공급자 (0x80040E14) 'DATABASE NAME'데이터베이스의 트랜잭션 로그가 가득 찼습니다. 로그의 공간을 재사용 할 수없는 이유를 확인하려면 sys.databases의 log_reuse_wait_desc 열을 참조하십시오.
특정 데이터베이스는 실제로 내 서버에서 가장 작고 가장 비활성 인 데이터베이스 중 하나이므로 다른 데이터베이스가 아니라이 데이터베이스에서 로그가 가득 찬 방법을 모릅니다.
로그를 축소하고 데이터베이스에 다시 액세스 할 수 있도록하려면 다음 명령을 사용하여 복구 모델을 FULL에서 SIMPLE로 변경하고 논리 파일 로그를 축소했습니다.
alter database myDbName SET recovery simple
go
dbcc shrinkfile('LOG FILE LOGICAL NAME', 100)
go
그것은 도움이 있지만, 지금은 이해하는 데 필요한 이유 는, 도움이 어떻게 이 상황이 시작하고 어떻게 앞으로이 문제를 방지하기 위해?
편집하다:
매일 밤 1시에 서버에있는 모든 데이터베이스의 스크립트 백업을 수행합니다. 이것은 가장 중요한 부분이 31 줄 스크립트에 의해 수행됩니다
set @Filename = 'D:\backup\' + convert(varchar, getDate(), 112) + ' - ' + @DBName + '.bak'
set @Description = 'Full backup of database ' + @Filename
BACKUP DATABASE @DBName TO DISK = @Filename WITH INIT , NOUNLOAD , NAME = @Description, NOSKIP , STATS = 10, NOFORMAT
새로운 복구 모델과 데이터베이스 축소가이 스크립트와 충돌합니까?
우리는 다른 종류의 데이터베이스 백업을 수행하지 않으므로 트랜잭션 로그가 아닌가?