[MSSQL] 데이터 파일 사용량이 풀일 때 해결방법

2020. 3. 9. 21:22· SQL Server/SQL Server 이슈
목차
  1. 월별 데이터파일 크기 증가량 확인
  2. 데이터파일의 여유공간 확인
  3. 서비스 기간을 산정하여 데이터파일 크기 설정 및 추가

데이터 파일 사용량이 가득찰 때 발생하는 이슈


데이터파일의 사용량이 가득차게 되면, SQL Server 는 AutoGrow 옵션에 설정된 크기만큼 데이터파일 크기를 증가시킵니다.

이 때 자동증가가 완료될 때까지 다른 세션의 트랜잭션은 대기하게 됩니다.


디스크의 성능이 좋지 않아서 데이터파일의 크기를 증가시키는데 오랜 시간이 걸리게 되면,

파일 증가가 시간 내에 완료되지 못하고 파일 증가도 롤백되고, 에러로그에 아래와 같이 기록됩니다.

 - SQL Server has encountered x occurrences of I/O requests taking longer than 15 seconds to complete on file

 - Autogrow of file 'FILE_NAME' in database 'DATABASE' was cancelled by user or timed out after x milliseconds.


오류 로그를 해석하면 I/O 에 대한 병목 현상이 나타난 것을 확인할 수 있습니다.

 - 766개의 I/O 요청 파일에 반영되는데 15 초 이상이 소요되었습니다.

 - 데이터베이스 파일의 자동증가가 타임아웃에 의해 취소되었습니다.



해결방법


기존 데이터파일이 AutoGrow 에 의해 확장되지 않도록 신규 데이터파일을 추가합니다.

( 데이터파일이 한 개 밖에 없는 경우 적용 )


월별 데이터파일 크기 증가량 확인

아래 쿼리를 통해 월별로 데이터베이스의 크기를 출력한 후 증가량을 확인합니다.

결과를 확인해 본 결과 월 평균 600MB 씩 증가하고 있는 것을 확인할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
SELECT
  database_name
  DATEPART(year, backup_start_date) AS "Year",
  DATEPART(month, backup_start_date) AS "Month",
  AVG(backup_size/1024/1024) AS "Backup Size MB"
FROM msdb.dbo.backupset
WHERE database_name = 'AdventureWorks'
  AND type = 'D'
GROUP BY database_name, DATEPART(yyyy, backup_start_date), DATEPART(mm, backup_start_date)
ORDER BY DATEPART(year, backup_start_date), DATEPART(month, backup_start_date); 
Colored by Color Scripter
cs


데이터파일의 여유공간 확인

현재 데이터파일의 여유공간을 확인합니다.

1
2
3
4
5
6
7
8
9
10
select
 f.type_desc     as Type
,f.name          as FileName
,fg.name         as FileGroup
,f.physical_name as Path
,f.size / 128.0  as CurrentSizeMB
,f.size / 128.0 - convert(int,fileproperty(f.name,'SpaceUsed')) / 128.0 as FreeSpaceMb
from sys.database_files f with (nolock)
  left outer join sys.filegroups fg with (nolock)
  on f.data_space_id = fg.data_space_id
Colored by Color Scripter
cs


서비스 기간을 산정하여 데이터파일 크기 설정 및 추가


1
2
3
4
ALTER DATABASE AdventureWorks ADD DATAFILE ( NAME = 'AdventureWorks_DATA1_02'
                                              , FILENAME = 'F:\Data\AdventureWorks_Data1_02.ndf'
                                              , SIZE = 30GB
                                              , FILEGROWTH = 10MB ) TO FILEGROUP AdventureWorks_DATA1
cs






* 오류내용과 관련된 자세한 내용은 아래 URL 을 참고 부탁드립니다.

https://blog.sqlauthority.com/2015/09/14/sql-server-error-autogrow-of-file-mydb_log-in-database-mydb-was-cancelled-by-user-or-timed-out-after-30121-milliseconds/


저작자표시 비영리 변경금지

'SQL Server > SQL Server 이슈' 카테고리의 다른 글

[MSSQL] @itemtype '(null)' 이 입력으로 지정된 상태에서 이름이 'Table'인 항목을 현재 데이터베이스에서 찾을 수 없습니다. 오류 해결하기  (0) 2020.04.14
[MSSQL] This error can occur when you try to connect to a SQL Server 2005 Integration Services 오류 해결하기  (0) 2020.04.06
[MSSQL] 단순모드에서 트랜잭션 로그가 계속 증가하는 현상 해결하기  (0) 2020.02.28
[MSSQL] 서브쿼리의 선택도에 따른 쿼리 읽는 순서 변경이 되는 문제  (1) 2019.12.24
[MSSQL] SQLTELEMTERY, SSASTELEMETRY, SSISTELEMETRY 세션이란, Ceip 서비스 중지하는 방법  (0) 2019.12.10
  1. 월별 데이터파일 크기 증가량 확인
  2. 데이터파일의 여유공간 확인
  3. 서비스 기간을 산정하여 데이터파일 크기 설정 및 추가
'SQL Server/SQL Server 이슈' 카테고리의 다른 글
  • [MSSQL] @itemtype '(null)' 이 입력으로 지정된 상태에서 이름이 'Table'인 항목을 현재 데이터베이스에서 찾을 수 없습니다. 오류 해결하기
  • [MSSQL] This error can occur when you try to connect to a SQL Server 2005 Integration Services 오류 해결하기
  • [MSSQL] 단순모드에서 트랜잭션 로그가 계속 증가하는 현상 해결하기
  • [MSSQL] 서브쿼리의 선택도에 따른 쿼리 읽는 순서 변경이 되는 문제
꽁담
꽁담
'DBA 업무'와 '알게되는 정보'를 기록하는 공간
꽁담
꽁담
꽁담
글쓰기
방명록
관리
방문 수
오늘
어제

카테고리

  • 분류 전체보기 (622)
    • 일상 (0)
      • 좋은글 (0)
    • Windows (37)
    • SQL Server (119)
      • SQL Server 자주보는 (18)
      • SQL Server 이중화_백업 (11)
      • SQL Server 기본기 (4)
      • SQL Server 이슈 (23)
      • SQL Server 기타 (63)
    • Database (260)
      • DBA 의 개인생각 (21)
      • 개념 (28)
      • MySQL (21)
      • Oracle (13)
      • PostgreSQL (17)
      • Redis (31)
      • Goldilocks (83)
      • MongoDB (31)
      • MongoDB 실습 (15)
    • Computer Language (113)
      • C (17)
      • JAVA (71)
      • Android (18)
      • Python (7)
    • Linux (41)
      • 개념 (22)
      • 명령어 (14)
      • 실습하기 (5)
    • AWS (31)
      • S3 (3)
      • RDS (7)
      • EC2 (11)
      • 기타 (10)
    • 자격증 (1)
    • 엑셀 (2)
    • 후기 (17)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • 데이터베이스
  • 리눅스
  • mysql
  • Goldilocks DBMS
  • Linux
  • goldilocks
  • Oracle
  • postgresql
  • MS-SQL
  • Android
  • 안드로이드
  • Database
  • msSQL
  • SQL Server
  • 골디락스
  • AWS
  • 자바
  • MongoDB
  • C
  • Java

최근 댓글

hELLO · Designed By 정상우.v4.2.2
꽁담
[MSSQL] 데이터 파일 사용량이 풀일 때 해결방법
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.