Intro
안녕하세요.
초보 DBA 다뉴입니다.
오늘은 MsSQL의 데이터베이스 파일과 파일 그룹에 대해 알아보도록 하겠습니다.
Database File
File의 종류
데이터베이스 파일의 종류로는 크게 데이터 파일(Data File)과 로그 파일(Log File)로 나눌 수 있으며,
2가지의 데이터 파일과 1가지의 로그파일 유형이 있습니다.
- Primary Data File
- 데이터베이스의 시작 정보를 포함
- 모든 데이터베이스는 하나의 Primary Data File을 가지고 있음
- .mdf 확장자를 권장함
- Secondary Data File
- 선택적인 파일로 사용자 정의에 의한 데이터 파일
- 각 파일을 다른 디스크에 배치하여 데이터를 분산 할 수 있음
- 모든 데이터베이스가 Secondary Data Files가 있을 필요는 없음
- .ndf 확장자를 권장함
- Log File
- 데이터베이스 복구에 사용되는 정보가 저장
- 모든 데이터베이스는 하나의 로그 파일이 있어야 함
- .ldf 확장자를 권장함
반드시 하나의 데이터베이스에 Primary Data File과 Log File을 하나씩 포함하여야 합니다.
확장자로 봤을때 .mdf 파일과 .ldf 파일 이라고 생각 할 수 있으나,
Primary Data File의 경우 .ndf의 확장자를 가질수도 있으므로 주의해야합니다.
Data File과 Log File을 다른 디스크에 배치하여, Disk I/O를 분산하여 성능을 향상 할 수 있다.
File Name
MsSQL의 파일에는 두가지 파일 이름 형식이 있는데요.
- 논리적 파일 명
- logical_file_name
- T-SQL 문 의 실제 파일 참조에 사용 됨
- 데이터베이스의 논리적 파일 이름 사이에서 고유해야 함
- 물리적 파일 명
- 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
데이터베이스의 기본 파일 그룹입니다.
- Object 생성 시 파일 그룹을 설정하지 않을 경우 기본 파일 그룹에 속함
- 변경하거나 제거 할 수 없음
User-Defined File Group
데이터베이스의 사용자가 추가로 정의한 파일 그룹입니다.
- FILEGROUP 명령어를 통하여 추가
- 각종 Object 등을 그룹에 연결하여 사용
Outro
오늘은 간략히 MsSQL의 파일과 파일 그룹에 대해 알아봤습니다.
파일의 종류에 대해서는 쉽게 이해가 되는데요.
파일 그룹에 대해서는 조금 이해가 잘 되지 않을 수 있습니다.
하지만 MsSQL을 사용하다 보면 용량이슈로 인해 Data File을 추가할 일이 있을테니 한번쯤 꼭 숙지하거나 테스트해보는 것을 추천합니다!
다음에는 더 자세한 내용으로 찾아올게요!
감사합니다.
'DATABASE > MsSQL' 카테고리의 다른 글
[MsSQL] Table / Column Comment - 코멘트, 설명 달기 (1) | 2023.08.01 |
---|---|
[MsSQL] Exception / Try~Catch 문 활용 -Transaction, Throw (1) | 2023.07.30 |
[MsSQL] Database File 디스크 이동 DBA 실무 - detach / attach (1) | 2023.07.27 |
[DBA][MsSQL] 자주 쓰는 쿼리 - Table Description / 테이블 정보 (3) | 2023.07.25 |
[DBA][MsSQL] 자주 쓰는 쿼리 - Agent 조회 쿼리 (4) | 2023.07.24 |
[MsSQL] Exception / Try ~ Catch 문 기초 (2) | 2023.07.18 |
[MsSQL] GETDATE() / CONVERT() - 날짜,시간 변환 표 / 날짜 포맷 (0) | 2023.07.09 |
[MsSQL] 여러 행 문자열 합치기 - For Xml Path() / Stuff() 알아가기 (0) | 2023.06.26 |