티스토리 뷰

728x90
반응형
에러 문구
'tempdb' 데이터베이스의 로그 파일이 꽉 찼습니다.
데이터베이스의 트랜잭션 로그를 백업하여 사용 가능한 일부 로그 공간을 확보하십시오.

tempdb 란? 
tempdb는 시스템의 스왑공간과 같은 임시 영역
빠른 실행을 위해서 테이블 변수를 사용해서 연산을 하거나 조인을 걸경우 등등
메모리가 부족하면 여기에 실제 테이블을 만들어 연산을 함.
대량 작업을 하실때 템프 디비가 충분히 커야 한다.
에러 원인
'tempdb' 데이터베이스의 로그 파일이 꽉 찼습니다.
해결 방법
tempdb 로그 백업, 축소 및 확장
1. 로그 백업
backup log tempdb to disk='c:\temp\tempdb_log.backup' with init

2. 로그 백업 하지 않고 축소
use tempdb
backup log tempdb with truncate_only
DBCC SHRINKFILE (templog, 2)

3. 로그 크기 확장
엔터프라이즈먼트 -> tempdb 선택 -> 속성 -> 테이터 파일 및 트랜잭선 로그 팁 수정 -> 완료
비고
tempdb 파일 옴기기
USE master
GO

--1.tempdb의 논리파일 이름 확인
SELECT name, physical_name, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb')
GO

--2.ALTER DATABASE 사용하여 파일 위치 변경
ALTER DATABASE tempdb
MODIFY FILE(NAME = tempdev, FILENAME = 'G:\Data\tempdb.mdf')
ALTER DATABASE tempdb
MODIFY FILE(NAME = templog, FILENAME = 'H:\Log\templog.ldf')
GO

--3.SQL Server를 중지하고 다시 시작한다.

--4.SQL Server 서비스가 시작된것을 확인후, 제대로 이동이 되었는지 확인
SELECT name, physical_name, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb')
GO

--5.기존 위치에 존재하는 tempdb 파일을 삭제한다.

/*
화일을 이동하는 위치는
반드시 디스크 드라이브 및 타겟 폴더가 존재해야 한다.

tempdb는 SQL Server가 재시작할때마다 재생성을 거치므로
기존의 tempdb 파일들을 새로운 위치로 이동할 필요없다.

같은 방법으로 사용자 생성한 Database의 화일들도
이동시킬 수 있으나 사용자가 생성한 Database는
기존화일을 복사하여 새로운 위치에 붙여넣은 후
이동이 끝나면 기존화일을 삭제하여 준다.
*/



728x90
반응형