http://support.microsoft.com/kb/307487
이 문서에서는 tempdb 데이터베이스를 축소하여 마지막으로 구성한 크기보다 작게 만드는 데 사용할 수 있는 세 가지 방법에 대해 설명합니다. 첫 번째 방법은 tempdb 파일의 크기를 완벽하게 제어할 수 있지만 SQL Server를 다시 시작해야 합니다. 두 번째 방법은 몇 가지 제한은 있지만tempdb를 전체적으로 축소하며 SQL Server를 다시 시작해야 할 수 있습니다. 세 번째 방법을 사용하면 tempdb의 개별 파일을 축소할 수 있습니다. 마지막 두 방법을 사용하려면 축소 작업 중tempdb 데이터베이스를 사용하지 말아야 합니다.
참고 SQL Server 2005를 사용하는 경우에도 이러한 방법을 적용할 수 있습니다. 그러나 엔터프라이즈 관리자나 쿼리 분석기 대신 SQL Server Management Studio를 사용하여 이러한 작업을 수행해야 합니다. Tempdb 정보tempdb는 임시 작업 영역입니다. 여러 용도 중에서도 SQL Server는 다음과 같은 용도로tempdb를 사용합니다.
기본적으로 tempdb 데이터베이스는 필요에 따라 자동으로 증가하도록 구성됩니다. 이 데이터베이스는 언젠가는 원하는 크기보다 더 커질 수 있습니다. SQL Server를 다시 시작하면 마지막으로 구성한 크기로 tempdb 크기가 다시 설정됩니다. 구성된 크기는 MODIFY FILE 옵션을 사용한 ALTER DATABASE 또는 DBCC SHRINKFILE 문 같은 파일 크기 변경 작업을 통해 명시적으로 설정한 마지막 크기입니다. 이 문서에서는 tempdb를 축소하여 마지막으로 구성한 크기보다 작게 만드는 데 사용할 수 있는 세 가지 방법에 대해 설명합니다. Tempdb를 축소하는 방법 1이 방법을 사용하려면 SQL Server를 다시 시작해야 합니다.
Tempdb를 축소하는 방법 2DBCC SHRINKDATABASE 명령을 사용하여 tempdb 데이터베이스 전체를 축소합니다. DBCC SHRINKDATABASE는 데이터베이스를 축소한 후 데이터베이스 파일에 남는 여유 공간의 원하는 백분율인 매개 변수 target_percent를 받습니다. DBCC SHRINKDATABASE를 사용하는 경우 SQL Server를 다시 시작해야 할 수 있습니다.중요: DBCC SHRINKDATABASE를 실행하면 tempdb 데이터베이스를 사용하여 다른 작업을 수행할 수 없습니다. DBCC SHRINKDATABASE를 실행하는 동안 다른 프로세스에서 tempdb를 사용할 수 없도록 하려면 SQL Server를 단일 사용자 모드에서 시작해야 합니다. 자세한 내용은 본 문서의Tempdb를 사용하는 동안 DBCC SHRINKDATABASE 또는 DBCCSHRINKFILE의 실행 효과 절을 참조하십시오.
Tempdb를 축소하는 방법 3명령 DBCC SHRINKFILE을 사용하여 개별 tempdb 파일을 축소합니다. DBCC SHRINKFILE은 같은 데이터베이스에 속하는 다른 파일에 영향을 주지 않고 단일 데이터베이스에서 사용할 수 있기 때문에 DBCC SHRINKDATABASE보다 유연성이 뛰어납니다. DBCC SHRINKFILE은 데이터베이스 파일의 원하는 최종 크기인 대상 크기 매개 변수를 받습니다.중요: DBCC SHRINKFILE 명령을 실행하는 동안에는 tempdb 데이터베이스에서 아무런 작업도 하지 말아야 합니다. DBCC SHRINKFILE을 실행하는 동안 다른 프로세스가 tempdb를 사용할 수 없도록 하려면 SQL Server를 단일 사용자 모드에서 다시 시작해야 합니다. DBCC SHRINKFILE에 대한 자세한 내용은 본 문서의 Tempdb를 사용하는 동안 DBCC SHRINKDATABASE 또는 DBCCSHRINKFILE의 실행 효과 절을 참조하십시오.
SQL Server 7.0에서 트랜잭션 로그 축소는 지연되며 데이터베이스에서 축소 작업을 용이하게 하려면 로그 잘라내기 및 백업을 실행해야 합니다. 그러나 기본적으로 tempdb에는 trunc log on chkpt 옵션이 ON으로 설정되어 있습니다. 따라서 해당 데이터베이스에 대해서는 로그 잘라내기를 실행할 필요가 없습니다. SQL Server 7.0에서 데이터베이스 트랜잭션 로그를 축소하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256650 INF: SQL Server 7.0 트랜잭션 로그를 줄이는 방법
Tempdb를 사용하는 동안 DBCC SHRINKDATABASE 또는 DBCCSHRINKFILE의 실행 효과tempdb를 사용 중이고 DBCC SHRINKDATABASE 또는 DBCC SHRINKFILE 명령을 사용하여 축소를 시도하는 경우 다음 유형과 비슷한 여러 가지 일관성 오류가 나타날 수 있으며 축소 작업이 실패할 수 있습니다.
Server: Msg 2501, Level 16, State 1, Line 1 Could not find table named '1525580473'. Check sysobjects.
또는
Server: Msg 8909, Level 16, State 1, Line 0 Table Corrupt: Object ID 1, index ID 0, page ID %S_PGID. The PageId in the page header = %S_PGID.
|
'Databases' 카테고리의 다른 글
MS SQL 트랜잭션 로그를 줄이는 방법 (0) | 2011.05.13 |
---|---|
truncate MS SQL 2005 log file (.LDF) (0) | 2011.05.13 |
[MS-SQL]Random하게 Row를 불러오기 (0) | 2011.05.03 |
mysqldump 명령어(테이블별 덤프, 5.0->4.0다운그레이드덤프) (0) | 2011.04.27 |
MySQL SELECT 결과의 출력물 제어(pager) - 페이지 단위로 끊어서 보기 (0) | 2011.04.27 |