SQL Server 2000 에서 mdf 파일이 4GB에 도달한 후 데이터 파일을 확장하지 못하고 페이지 할당을 실패하는 이슈가 발생하였습니다. 해당 파일 그룹에 대해 maxsize, growth 설정 모두 정상인데 왜 이런 문제가 발생한 걸까요? MPSReport SQL Edition 을 통해 수집된 정보를 통해 아래와 같은 원인을 파악할 수 있었습니다.
[환경]
Windows Server 2003 SE SP1 (x86)
SQL Server 2000 - 8.00.194
[현상]
'LAIGODB' 데이터베이스에 새 페이지를 할당할 수 없습니다. 파일 그룹 'PRIMARY'에 사용할 수 있는 페이지가 없습니다.
개체를 삭제하거나, 다른 파일을 추가하거나, 파일 증가를 허용하여 공간을 만들 수 있습니다.
[원인]
데이터베이스 데이터 파일이 저장된 D Drive 는 FAT32 파일시스템입니다. FAT32 파일 시스템의 최대 파일 사이즈는 4GB입니다. 오류가 발생한 데이터베이스의 MDF 파일이 4GB를 초과하면서 FAT32 파일 시스템 최대 사이즈 한계에 도달하였습니다.
[해결방법]
FAT 볼륨 또는 FAT32 볼륨을 NTFS로 변환하는 방법
변환하는 동안 데이터가 손상되거나 없어질 가능성은 매우 낮지만 변환을 시작하기 전에 변환할 볼륨의 데이터를 백업해 놓는 것이 좋습니다. 기존의 FAT32 볼륨을 NTFS로 변환하려면 다음과 같이 하십시오.
1. 시작을 누르고 모든 프로그램, 보조프로그램을 차례로 가리킨 다음 명령 프롬프트를 누릅니다.
2. 명령 프롬프트에서 다음과 같이 입력합니다. 여기서 drive letter는 변환할 드라이브입니다.
운영 체제가 실행되는 동안에는 변환을 완료할 수 없으므로 변환하려는 드라이브에 운영 체제가 있는 경우에는 컴퓨터를 다시 시작할 때 작업을 예약하라는 메시지가 표시됩니다. 메시지가 표시되면 예를 누르십시오.
3. 커맨드 창에 다음 메시지가 표시되면 변환할 드라이브의 볼륨 레이블을 입력한 다음 Enter 키를 누릅니다.
4. NTFS로의 변환 작업이 완료되면 명령 프롬프트에 다음과 같은 오류 메시지가 표시됩니다.
"변환이 끝났습니다."
5. 명령 프롬프트를 끝냅니다.
[분석결과]
1. Error Log
LAIGODB 데이터베이스 파일 그룹 쓰기 실패
2008-11-11 03:22:05.56 spid67 D:\DATA\LAIGODB_Data.MDF: 운영 체제 오류 112
(디스크 공간이 부족합니다.)이(가) 발생했습니다.
2008-11-11 03:22:06.02 spid67 오류: 1101, 심각도: 17, 상태: 2
2008-11-11 03:22:06.02 spid67 'LAIGODB' 데이터베이스에 새 페이지를 할당할 수 없습니다.
파일 그룹 'PRIMARY'에 사용할 수 있는 페이지가 없습니다.
개체를 삭제하거나, 다른 파일을 추가하거나, 파일 증가를 허용하여 공간을 만들 수 있습니다.
2. 데이터베이스 사이즈
LAIGODB / 4007.81 MB
3. SQLDIAG – D Drive 파일 시스템이 FAT32 로 설정되어 있음
드라이브 C:
설명 로컬 고정 디스크
압축 아니오
파일 시스템 NTFS
크기 110.85 GB (119,019,765,760 바이트)
사용 가능한 공간 84.72 GB (91,699,751,936 바이트)
볼륨 이름
볼륨 일련 번호 0CD12345
드라이브 D:
설명 로컬 고정 디스크
압축 아니오
파일 시스템 FAT32
크기 121.09 GB (131,004,851,523 바이트)
사용 가능한 공간 58.49 GB (64,759,085,056 바이트)
볼륨 이름
볼륨 일련 번호 1234500C
[참고자료]
NTFS compared to FAT and FAT32
http://technet.microsoft.com/en-us/library/cc779002.aspx
Windows XP에서 FAT16 볼륨 또는 FAT32 볼륨을 NTFS 파일 시스템으로 변환하는 방법
http://support.microsoft.com/kb/307881/ko
작성자 : Lai Go / 작성일자 : 2008.11.13