기본 파일 그룹이 꽉 찼습니다. SQL Server 2008


15

SQL Server에 대량 삽입하려고하는 큰 테이블 (~ 5 천만 행)이 있는데 오류가 발생합니다.

'PRIMARY'파일 그룹이 가득 차서 'I 3 Stroke'데이터베이스에서 'myDB'오브젝트에 대한 공간을 할당 할 수 없습니다. 불필요한 파일을 삭제하거나 파일 그룹에서 객체를 삭제하거나 파일 그룹에 파일을 추가하거나 파일 그룹의 기존 파일에 대해 자동 증가를 설정하여 디스크 공간을 만드십시오.

데이터베이스에 약 2500 만 개의 행이있는 다른 테이블이 있습니다. 이 데이터베이스는 단일 머신에서만 사용되며 이미 존재하는 데이터를 마이닝하도록 설계되며 어떠한 상황에서도 현재 크기 이상으로 커지지 않습니다.

이와 같은 상황에서 SQL Server가 불평하지 않도록 처리하는 가장 좋은 방법은 무엇입니까? 솔루션이이 DB가 여러 사용자에게 노출되지 않는 것이 중요합니까?


2
데이터베이스에 더 많은 공간을 추가하거나 사용하지 않는 개체를 제거해야합니다. 귀하의 질문은 무엇인가?
Gordon Linoff

데이터베이스를 만들 때 @GordonLinoff 파일 그룹은 무제한으로 확장되도록 설계되었지만이 문제가 발생합니다. 이 문제가 다시 발생하지 않도록하는 방법을 찾고 싶습니다.
wootscootinboogie

1
사용 가능한 물리적 디스크 공간이 더 있습니까? 그렇다면 SQL Server 오류 로그를 확인하고 자동 증가에 실패한 이유에 대한 추가 정보가 있는지 확인하십시오.
케빈

사용 가능한 디스크 공간이 충분한 지 확인 하시겠습니까? 제한된 파일 증가 (단, 그렇지 않다고 말함)를 제외하고는 이것이 그럴듯한 원인입니다.
usr

1
SQL Express Edition의 DB 크기 제한에 도달했을 수 있습니다.
Bruno Martinez

답변:


17

다음과 같이하세요:

  1. 데이터베이스 스토리지 할당에 추가 할 공간의 양을 식별하십시오.
    1. 윈도우 탐색기 열기
    2. 데이터베이스 파일이 존재하는 디스크 드라이브를 마우스 오른쪽 버튼으로 클릭하십시오.
    3. 속성 선택
    4. 사용 가능한 디스크 공간을 확인하고 데이터베이스에 할당 할 공간을 결정하십시오
      ( 제안 : OS와 동일한 디스크에 데이터베이스 파일을 저장하는 경우 최소 20 %의 디스크 공간을 남겨 두십시오 { Sub-Suggestion : Don 데이터를 자체 디스크로 재구성 / 마이그레이션하고 I / O를 망가 뜨리고 있습니다.} 순수한 데이터 디스크를 위해 최소 8 %는 남겨 두십시오.이 숫자는 실제 백분율 제안에 대한 추정치입니다. 있습니다. )
  2. 데이터베이스의 스토리지 할당을 업데이트하십시오.
    1. SSMS 열기
    2. "보기"탭을 클릭하십시오
    3. "개체 탐색기"를 선택하십시오
    4. "데이터베이스"폴더를 확장하십시오
    5. 대량 삽입하려는 데이터베이스를 마우스 오른쪽 버튼으로 클릭하십시오.
    6. "속성"을 선택하십시오
    7. 속성 창의 왼쪽에있는 "페이지 선택"영역에서 "파일"목록 옵션을 클릭하십시오.
    8. "파일 그룹"이 "PRIMARY"인 "데이터베이스 파일"행을 찾습니다.
    9. "초기 크기 (MB)"번호에 데이터베이스 할당에 추가하려는 메가 바이트 수를 추가하십시오.
    10. "확인"을 누르십시오
      ( 여기있는 동안 "자동 증가"값을 고려할 수도 있습니다. )

데이터베이스에 할당 할 수있는만큼의 스토리지 할당량을 제공하려고합니다. 공간이 부족하면 자동 증가없이이 오류가 발생하고 자동 증가가 켜져 있으면 자동 증가 할 때마다 성능이 저하됩니다. 디스크 공간이 부족한 경우에는 이것이 정답이며 더 큰 디스크가 필요합니다.


1
우리 모두 더 큰 DIK를 원하지 않습니까? : P
산타

12

Express Edition 2014는 데이터베이스 당 10GB로 제한됩니다. 데이터베이스의 자동 증가가 해당 지점에 도달하면 SQL Server는 라이센스 제한을 언급하지 않고 (분명하지 않습니까?) 오류 메시지를 표시합니다. 디스크 공간이 충분하지만이 메시지가 계속 나타납니다.

설계가 허용하는 경우 해결 방법 :이 라이센스에 따라 여러 데이터베이스를 사용하십시오.


1

데이터베이스는 전체 복구 모드에있을 때 종종 공간이 부족합니다. 트랜잭션을 수행하지 않고 수동 백업으로 충분하면 복구 모드를 단순으로 변경할 수 있습니다.

로그 파일에서 공간을 복구해야 할 수도 있습니다. . . 비울 수는 있지만 여전히 공간을 사용합니다.

그러나 더 많은 솔루션을 제공 할 수있는 DBA에게이 질문을하는 것이 좋습니다.


이것은 로그 증가 실패의 문제가 아닙니다. 데이터 증가에 실패했습니다.
usr

@usr. . . 아마도 동일한 기본 디스크 공간을 차지할 것입니다. 문제는 디스크 공간이 부족하다는 것입니다.
Gordon Linoff

그는 사용 가능한 디스크 공간이 있다고 말합니다. 나도 의심했기 때문에 나는 분명히 물었다.
usr

사용 가능한 디스크 공간이 얼마나됩니까? 기본 파일 그룹에있는 모든 파일의 현재 크기는 얼마이며 그 설정은 무엇입니까? 증가 증분이 사용 가능한 여유 공간보다 클 수 있습니다.
user9164

1

필자의 경험에 따르면이 메시지는 기본 파일 (.mdf)에 데이터베이스 메타 데이터를 저장할 공간이 없을 때 발생합니다. 이 파일에는 시스템 테이블이 포함되며 데이터는 시스템 테이블에만 저장됩니다.

파일에 약간의 공간을두면 명령이 다시 작동합니다. 그게 다야, 즐기세요


0

1 차 파일 그룹이 가득 찬 오류 를 해결하려면 데이터베이스 속성-> 파일-> 데이터베이스 파일-> 파일 그룹 "PRIMARY"-> 자동 증가 / 최대 크기 및 파일 그룹 변경 Database_Name을 1로 변경하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.