데이터베이스 파일 및 파일 그룹 | Microsoft Docs 
 10 / 11 / 2016 읽 는 데 13 분 참가자 
 모든 SQL ServerSQL Server 데이터베이스 에 는 최소한 두 개 의 운영 체제 파일 인 데이터 파일 과 로그 파일 이 있 습니다 . At a minimum , every SQL ServerSQL Server database has two operating system files : a data file and a log file . 데이터 파일 은 테이블 , 인덱스 , 저장 프로시저 및 뷰 등 의 개체 와 데이터 를 포함 합니다 . Data files contain data and objects such as tables , indexes , stored procedures , and views . 로그 파일 은 데이터베이스 의 모든 트랜잭션 을 복구 하 는 데 필요 한 정보 를 포함 합니다 . Log files contain the information that is required to recover all transactions in the database . 데이터 파일 은 할당 및 관리 를 간편 하 게 수행 하 기 위해 파일 그룹 으로 그룹 화 할 수 있 습니다 . Data files can be grouped together in filegroups for allocation and administration purposes . 
 SQL ServerSQL Server 데이터베이스 에 는 다음 표 에 설명 된 것 처럼 세 가지 유형 의 파일 이 있 습니다 . databases have three types of files , as shown in the following table . 
 주 Primary 주 데이터 파일 은 데이터베이스 의 시작 정보 를 포함 하 며 데이터베이스 의 나머지 파일 을 가리킵니다 . The primary data file contains the startup information for the database and points to the other files in the database . 사용 자 데이터 와 개체 를 이 파일 에 저장 하 거나 보조 데이터 파일 에 저장 할 수 있 습니다 . User data and objects can be stored in this file or in secondary data files . 모든 데이터베이스 에 는 하나 의 주 데이터 파일 이 있 습니다 . Every database has one primary data file . 권장 되 는 주 데이터 파일 확장 명은 . mdf 입니다 . The recommended file name extension for primary data files is . mdf . 
 보조 Secondary 보조 데이터 파일 은 선택 적 으로 사용 하 는 사용 자 정의 데이터 파일 이 며 사용 자 데이터 를 저장 합니다 . Secondary data files are optional , are user - defined , and store user data . 보조 파일 은 각 파일 을 서로 다른 디스크 드라이브 에 배치 하 여 데이터 를 여러 디스크 에 분산 시키 는 데 사용 할 수 있 습니다 . Secondary files can be used to spread data across multiple disks by putting each file on a different disk drive . 또한 데이터베이스 가 단일 Windows 파일 의 최대 크기 를 초과 할 경우 보조 데이터 파일 을 사용 하 여 데이터베이스 크기 를 계속 해서 늘릴 수 있 습니다 . Additionally , if a database exceeds the maximum size for a single Windows file , you can use secondary data files so the database can continue to grow . 
 권장 되 는 보조 데이터 파일 확장 명은 . ndf 입니다 . The recommended file name extension for secondary data files is . ndf . 
 트랜잭션 로그 Transaction Log 트랜잭션 로그 파일 은 데이터베이스 복구 에 사용 되 는 로그 정보 를 저장 합니다 . The transaction log files hold the log information that is used to recover the database . 데이터베이스 마다 최소한 하나 의 로그 파일 이 있 어야 합니다 . There must be at least one log file for each database . 권장 되 는 트랜잭션 로그 파일 확장 명은 . ldf 입니다 . The recommended file name extension for transaction logs is . ldf . 
 예 를 들 어 모든 데이터 와 개체 를 하나 의 주 파일 에 저장 하 고 트랜잭션 로그 정보 를 로그 파일 에 저장 하 는 Sales 라는 단순 한 데이터베이스 를 만들 수 있 습니다 . For example , a simple database named Sales can be created that includes one primary file that contains all data and objects and a log file that contains the transaction log information . 또는 한 개 의 주 파일 과 5 개 의 보조 파일 을 포함 하 는 Orders 라는 더 복잡 한 데이터베이스 를 만들 수 도 있 습니다 . Alternatively , a more complex database named Orders can be created that includes one primary file and five secondary files . 데이터베이스 내 의 데이터 와 개체 는 6 개 의 파일 에 분산 되 고 트랜잭션 로그 정보 는 4 개 의 로그 파일 에 포함 됩니다 . The data and objects within the database spread across all six files , and the four log files contain the transaction log information . 
 기본 적 으로 데이터 와 트랜잭션 로그 는 동일 한 드라이브 와 경로 에 배치 됩니다 . By default , the data and transaction logs are put on the same drive and path . 이것 은 단일 디스크 시스템 의 경우 에 해당 하 며 This is done to handle single - disk systems . 프로덕션 환경 에서 는 최적 이 아닐 수 도 있 습니다 . However , this may not be optimal for production environments . 데이터 와 로그 파일 은 서로 다른 디스크 에 배치 하 는 것 이 좋 습니다 . We recommend that you put data and log files on separate disks . 
 논리 적 파일 이름 과 물리 적 파일 이름 Logical and Physical File Names 
 SQL Server 파일 은 다음 과 같 은 두 가지 이름 을 갖 습니다 . SQL Server files have two names : 
 logical _ file _ name : logical _ file _ name 은 모든 Transact - SQL 문 에서 물리 적 파일 을 참조 하 는 데 사용 되 는 이름 입니다 . logical _ file _ name : The logical _ file _ name is the name used to refer to the physical file in all Transact - SQL statements . 논리 적 파일 이름 은 SQL Server 식별자 규칙 을 따라야 하 고 데이터베이스 의 논리 적 파일 이름 사이 에서 고유 해야 합니다 . The logical file name must comply with the rules for SQL Server identifiers and must be unique among logical file names in the database . 
 os _ file _ name : os _ file _ name 은 디렉터리 경로 를 포함 하 는 물리 적 파일 의 이름 입니다 . os _ file _ name : The os _ file _ name is the name of the physical file including the directory path . 이 이름 은 운영 체제 파일 이름 의 규칙 을 따라야 합니다 . It must follow the rules for the operating system file names . 
 FAT 또는 NTFS 파일 시스템 에 SQL Server 데이터 파일 및 로그 파일 을 배치 할 수 있 습니다 . SQL Server data and log files can be put on either FAT or NTFS file systems . 보안 상 NTFS 파일 시스템 을 사용 하 는 것 이 좋 습니다 . We recommend using the NTFS file system because the security aspects of NTFS . 읽 기 / 쓰 기 데이터 파일 그룹 과 로그 파일 은 NTFS 압축 파일 시스템 에 배치 할 수 없 습니다 . Read / write data filegroups and log files cannot be placed on an NTFS compressed file system . 읽 기 전용 데이터베이스 와 읽 기 전용 보조 파일 그룹 만 NTFS 압축 파일 시스템 에 배치 할 수 있 습니다 . Only read - only databases and read - only secondary filegroups can be put on an NTFS compressed file system . 
 여러 SQL Server 인 스턴스 가 단일 시스템 에서 실행 될 때 각 인 스턴스 는 해당 인 스턴스 에서 생성 된 데이터베이스 에 대한 파일 을 보관 할 수 있 는 서로 다른 기본 디렉터리 를 받 습니다 . When multiple instances of SQL Server are run on a single computer , each instance receives a different default directory to hold the files for the databases created in the instance . 자세 한 내용 은 SQL Server 기본 인 스턴스 및 명명 된 인 스턴스 의 파일 위치 참조 하 세요 . For more information , see File Locations for Default and Named Instances of SQL Server . 
 데이터 파일 페이지 Data File Pages 
 SQL Server 데이터 파일 의 페이지 는 첫째 페이지 가 0 으로 시작 하 여 순차 적 으로 번호 가 매겨 집니다 . Pages in a SQL Server data file are numbered sequentially , starting with zero ( 0 ) for the first page in the file . 데이터베이스 의 파일 마다 고유 한 파일 ID 번호 가 있 습니다 . Each file in a database has a unique file ID number . 데이터베이스 에서 페이지 를 고유 하 게 식별 하 려면 해당 파일 ID 와 페이지 번호 가 모두 필요 합니다 . To uniquely identify a page in a database , both the file ID and the page number are required . 다음 예 에서 는 4 MB 의 주 데이터 파일 과 1 MB 의 보조 데이터 파일 이 있 는 데이터베이스 의 페이지 번호 를 보여 줍니다 . The following example shows the page numbers in a database that has a 4 - MB primary data file and a 1 - MB secondary data file . 
 각 파일 의 첫 페이지 는 파일 의 특성 에 대한 정보 를 포함 하 는 파일 헤더 페이지 입니다 . The first page in each file is a file header page that contains information about the attributes of the file . 또한 파일 시작 부분 의 다른 여러 페이지 에 도 할당 맵 과 같 은 시스템 정보 가 포함 됩니다 . Several of the other pages at the start of the file also contain system information , such as allocation maps . 주 데이터 파일 과 첫 번 째 로그 파일 에 모두 저장 되 는 시스템 페이지 중 하나 는 데이터베이스 의 특성 에 대한 정보 를 포함 하 는 데이터 부팅 페이지 입니다 . One of the system pages stored in both the primary data file and the first log file is a database boot page that contains information about the attributes of the database . 페이지 및 페이지 유형 에 대한 자세 한 내용 은 페이지 및 익스 텐트 이해 를 참조 하 세요 . For more information about pages and page types , see Understanding Pages and Extents . 
 파일 크기 File Size 
 SQL Server 파일 은 원래 지정 된 크기 에서 자동 으로 증가 할 수 있 습니다 . SQL Server files can grow automatically from their originally specified size . 파일 을 정의 할 때 특정 증분 을 지정 할 수 있 습니다 . When you define a file , you can specify a specific growth increment . 파일 이 가득 찰 때 마다 증분 에 따라 크기 가 늘어납니다 . Every time the file is filled , it increases its size by the growth increment . 한 파일 그룹 에 여러 파일 이 있 을 경우 모든 파일 이 가득 찰 때 까지 파일 은 자동 으로 증가 하 지 않 습니다 . If there are multiple files in a filegroup , they will not autogrow until all the files are full . 이 경우 라운드 로빈 방식 으로 증가 합니다 . Growth then occurs in a round - robin fashion . 
 각 파일 의 최대 크기 를 지정 할 수 도 있 습니다 . Each file can also have a maximum size specified . 최대 크기 를 지정 하 지 않 으면 파일 은 디스크 에서 사용 가능 한 공간 을 모두 사용 할 때 까지 계속 증가 할 수 있 습니다 . If a maximum size is not specified , the file can continue to grow until it has used all available space on the disk . 이 기능 은 사용 자 가 시스템 관리자 에 편리 하 게 액세스 할 수 없 는 응용 프로그램 에 포함 된 데이터베이스 로 SQL Server 를 사용 할 때 특히 유용 합니다 . This feature is especially useful when SQL Server is used as a database embedded in an application where the user does not have convenient access to a system administrator . 사용 자 는 필요 에 따라 파일 이 자동 으로 증가 하 게 하 여 데이터베이스 의 사용 가능 한 공간 을 모니터링 하 고 추가 공간 을 수동 으로 할당 하 는 관리 작업 을 줄일 수 있 습니다 . The user can let the files autogrow as required to reduce the administrative burden of monitoring free space in the database and manually allocating additional space . 
 데이터베이스 스냅숏 파일 Database Snapshot Files 
 데이터베이스 스냅숏 에서 쓰 기 시 복사 데이터 를 저장 하 기 위해 사용 하 는 파일 형식 은 사용 자 가 스냅숏 을 만들 었 는지 또는 스냅숏 이 내부 적 으로 사용 되 는지 에 따라 달라집니다 . The form of file that is used by a database snapshot to store its copy - on - write data depends on whether the snapshot is created by a user or used internally : 
 사용 자 가 만든 데이터베이스 스냅숏 은 하나 이상 의 스 파스 파일 에 데이터 를 저장 합니다 . A database snapshot that is created by a user stores its data in one or more sparse files . 스 파스 파일 기술 은 NTFS 파일 시스템 의 기능 입니다 . Sparse file technology is a feature of the NTFS file system . 처음 에 는 스 파스 파일 에 사용 자 데이터 가 없 으며 사용 자 데이터 에 대한 디스크 공간 이 스 파스 파일 에 할당 되 어 있 지 않 습니다 . At first , a sparse file contains no user data , and disk space for user data has not been allocated to the sparse file . 데이터베이스 스냅숏 의 스 파스 파일 사용 및 데이터베이스 스냅숏 증가 방법 에 대한 자세 한 내용 은 데이터베이스 스냅숏 스 파스 파일 의 크기 보 기 를 참조 하 세요 . For general information about the use of sparse files in database snapshots and how database snapshots grow , see View the Size of the Sparse File of a Database Snapshot . 
 데이터베이스 스냅숏 은 특정 DBCC 명령 에 의해 내부 적 으로 사용 됩니다 . Database snapshots are used internally by certain DBCC commands . 이러 한 명령 에 는 DBCC CHECKDB , DBCC CHECKTABLE , DBCC CHECKALLOC , DBCC CHECKFILEGROUP 등 이 있 습니다 . These commands include DBCC CHECKDB , DBCC CHECKTABLE , DBCC CHECKALLOC , and DBCC CHECKFILEGROUP . 내부 데이터베이스 스냅숏 은 원래 데이터베이스 파일 의 스 파스 대체 데이터 스트림 을 사용 합니다 . An internal database snapshot uses sparse alternate data streams of the original database files . 스 파스 파일 과 마찬가지 로 대체 데이터 스트림 은 NTFS 파일 시스템 의 기능 입니다 . Like sparse files , alternate data streams are a feature of the NTFS file system . 스 파스 대체 데이터 스트림 을 사용 하 면 파일 크기 나 볼륨 통계 에 영향 을 주 지 않 고 여러 데이터 할당 을 하나 의 파일 또는 폴더 와 연결 할 수 있 습니다 . The use of sparse alternate data streams allows for multiple data allocations to be associated with a single file or folder without affecting the file size or volume statistics . 
 파일 그룹 Filegroups 
 모든 데이터베이스 에 는 주 파일 그룹 이 한 개 씩 있 습니다 . Every database has a primary filegroup . 주 파일 그룹 은 주 데이터 파일 과 다른 파일 그룹 에 배치 되 지 않 은 보조 파일 을 포함 합니다 . This filegroup contains the primary data file and any secondary files that are not put into other filegroups . 사용 자 정의 파일 그룹 을 만들 어 데이터 파일 을 그룹 화 함 으로써 관리 , 데이터 할당 및 배치 를 간편 하 게 수행 할 수 있 습니다 . User - defined filegroups can be created to group data files together for administrative , data allocation , and placement purposes . 
 모든 데이터 파일 은 다음 표 에 나열 된 파일 그룹 에 저장 됩니다 . All data files are stored in the filegroups listed in the following table . 
 주 Primary 주 파일 을 포함 하 는 파일 그룹 . The filegroup that contains the primary file . 주 파일 그룹 에 는 모든 시스템 테이블 이 할당 됩니다 . All system tables are allocated to the primary filegroup . 
 사용 자 정의 User - defined 사용 자 가 데이터베이스 를 처음 만들 때 또는 나중 에 수정 할 때 만드 는 파일 그룹 Any filegroup that is specifically created by the user when the user first creates or later modifies the database . 
 기본 파일 그룹 Default Filegroup 
 데이터베이스 에서 개체 를 만들 때 어떤 파일 그룹 에 속하 는지 지정 하 지 않 으면 기본 파일 그룹 에 할당 됩니다 . When objects are created in the database without specifying which filegroup they belong to , they are assigned to the default filegroup . 언제 든지 정확 하 게 하나 의 파일 그룹 이 기본 파일 그룹 으로 지정 됩니다 . At any time , exactly one filegroup is designated as the default filegroup . 기본 파일 그룹 의 파일 은 다른 파일 그룹 에 할당 되 지 않 은 모든 새로운 개체 를 보관 할 수 있 을 만큼 크기 가 커야 합니다 . The files in the default filegroup must be large enough to hold any new objects not allocated to other filegroups . 
 PRIMARY 파일 그룹 은 ALTER DATABASE 문 을 사용 하 여 변경 하 지 않 으면 기본 파일 그룹 입니다 . The PRIMARY filegroup is the default filegroup unless it is changed by using the ALTER DATABASE statement . 시스템 개체 및 테이블 에 대한 할당 은 새 기본 파일 그룹 이 아니 라 PRIMARY 파일 그룹 에 남 게 됩니다 . Allocation for the system objects and tables remains within the PRIMARY filegroup , not the new default filegroup . 
 파일 및 파일 그룹 예 File and Filegroup Example 
 다음 예 에서 는 SQL Server 인 스턴스 에서 데이터베이스 를 만듭니다 . The following example creates a database on an instance of SQL Server . 데이터베이스 에 는 주 데이터 파일 , 사용 자 정의 파일 그룹 및 로그 파일 이 있 습니다 . The database has a primary data file , a user - defined filegroup , and a log file . 주 데이터 파일 은 주 파일 그룹 에 있 으며 사용 자 정의 파일 그룹 에 는 보조 데이터 파일 이 두 개 있 습니다 . The primary data file is in the primary filegroup and the user - defined filegroup has two secondary data files . ALTER DATABASE 문 을 통해 사용 자 정의 그룹 파일 이 기본 파일 그룹 으로 지정 됩니다 . An ALTER DATABASE statement makes the user - defined filegroup the default . 그런 다음 사용 자 정의 파일 그룹 을 지정 하 여 테이블 이 생성 됩니다 . A table is then created specifying the user - defined filegroup . ( 이 예 에서 는 일반 경로 c : \ Program Files \ Microsoft SQL Server \ MSSQL . 1 을 사용 하 여 SQL Server 버전 지정 을 방지 합니다 . ) ( This example uses a generic path c : \ Program Files \ Microsoft SQL Server \ MSSQL . 1 to avoid specifying a version of SQL Server . ) 
 다음 그림 에서 는 위 예제 의 결과 를 요약 하 여 보여 줍니다 . The following illustration summarizes the results of the previous example .