본문 바로가기
DATABASE/MsSQL

[MsSQL] Database File(Data File, Log File) / File Group

by DANEW 2023. 7. 14.

Intro

안녕하세요.

초보 DBA 다뉴입니다.

 

오늘은 MsSQL의 데이터베이스 파일과 파일 그룹에 대해 알아보도록 하겠습니다.


Database File

File의 종류

데이터베이스 파일의 종류로는 크게 데이터 파일(Data File)과 로그 파일(Log File)로 나눌 수 있으며,

2가지의 데이터 파일과 1가지의 로그파일 유형이 있습니다.

  1. Primary Data File
    • 데이터베이스의 시작 정보를 포함
    • 모든 데이터베이스는 하나의 Primary Data File을 가지고 있음
    • .mdf 확장자를 권장함
  2. Secondary Data File
    • 선택적인 파일로 사용자 정의에 의한 데이터 파일
    • 각 파일을 다른 디스크에 배치하여 데이터를 분산 할 수 있음
    • 모든 데이터베이스가 Secondary Data Files가 있을 필요는 없음
    • .ndf 확장자를 권장함
  3. Log File
    • 데이터베이스 복구에 사용되는 정보가 저장
    • 모든 데이터베이스는 하나의 로그 파일이 있어야 함
    • .ldf 확장자를 권장함

반드시 하나의 데이터베이스에 Primary Data File과 Log File을 하나씩 포함하여야 합니다.

확장자로 봤을때 .mdf 파일과 .ldf 파일 이라고 생각 할 수 있으나,

Primary Data File의 경우 .ndf의 확장자를 가질수도 있으므로 주의해야합니다.

 

Data File과 Log File을 다른 디스크에 배치하여, Disk I/O를 분산하여 성능을 향상 할 수 있다.

File Name

MsSQL의 파일에는 두가지 파일 이름 형식이 있는데요.

  1. 논리적 파일 명 
    • logical_file_name 
    • T-SQL 문 의 실제 파일 참조에 사용 됨
    • 데이터베이스의 논리적 파일 이름 사이에서 고유해야 함
  2. 물리적 파일 명
    • os_file_name
    • 디렉토리 경로를 포함하는 물리적 파일 명

File Group

파일 그룹은 크게

기본 파일 그룹(Primary File Group)과 유저 정의 파일 그룹(User-Defined File Group)으로 나눌 수 있습니다.

  • 파일 그룹을 통해 개체와 파일을 함께 그룹화
  • 그룹화를 하여 개체 및 파일 관리 편리성 증가
  • 파일 그룹 채우기 전략을 통한 균등한 데이터 분배로 성능 향상
  • 하나의 파일은 두 개 이상의 파일 그룹에 속할 수 없음
  • 트랜잭션로그 파일은 파일 그룹에 속하지 않음

파일 그룹은 오브젝트들이 여러 데이터 파일로 나눠질 경우 하나로 묶는 개념이라고 생각하시면 편할 것 같습니다.

 

예를들어 Table A가 Data File A(A.mdf or A.ndf)에 속해 있는데,

해당 Dafa File의 사이즈가 너무 커서 혹은 운영의 이슈로 인해 Data File을 나눠야 할 수 있습니다.

이럴때 Dafa File을 새로 하나 추가하고,

같은 File Group에 소속시켜주어 Table A의 데이터 증가량을 분산하여 받을 수 있습니다.

Primary File Group

데이터베이스의 기본 파일 그룹입니다.

  1. Object 생성 시 파일 그룹을 설정하지 않을 경우 기본 파일 그룹에 속함
  2. 변경하거나 제거 할 수 없음

User-Defined File Group

데이터베이스의 사용자가 추가로 정의한 파일 그룹입니다.

  1. FILEGROUP 명령어를 통하여 추가
  2. 각종 Object 등을 그룹에 연결하여 사용

 


Outro

오늘은 간략히 MsSQL의 파일과 파일 그룹에 대해 알아봤습니다.

 

파일의 종류에 대해서는 쉽게 이해가 되는데요.

파일 그룹에 대해서는 조금 이해가 잘 되지 않을 수 있습니다.

 

하지만 MsSQL을 사용하다 보면 용량이슈로 인해 Data File을 추가할 일이 있을테니 한번쯤 꼭 숙지하거나 테스트해보는 것을 추천합니다!

 

다음에는 더 자세한 내용으로 찾아올게요!

감사합니다.

반응형