데이터베이스 파일 초기화Database File Initialization

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

데이터 및 로그 파일이 초기화되어 이전에 삭제한 파일의 디스크에 남아 있는 기존 데이터를 덮어씁니다.Data and log files are initialized to overwrite any existing data left on the disk from previously deleted files. 데이터 및 로그 파일은 사용자가 다음 작업 중 하나를 수행할 때 파일을 비워(0으로 채워져) 초기화됩니다.Data and log files are first initialized by zeroing the files (filling with zeros) when you perform one of the following operations:

  • 데이터베이스를 만듭니다.Create a database.
  • 기존 데이터베이스에 데이터 또는 로그 파일을 추가합니다.Add data or log files, to an existing database.
  • 기존 파일의 크기를 늘립니다(자동 증가 작업 포함).Increase the size of an existing file (including autogrow operations).
  • 데이터베이스 또는 파일 그룹을 복원합니다.Restore a database or filegroup.

파일 초기화는 이러한 작업의 수행 시간을 더 오래 만듭니다.File initialization causes these operations to take longer. 그러나 데이터를 처음으로 파일에 기록할 때 운영 체제는 0으로 파일을 채울 수 없습니다.However, when data is written to the files for the first time, the operating system does not have to fill the files with zeros.

IFI(즉시 파일 초기화)Instant File Initialization (IFI)

SQL ServerSQL Server에서는 데이터 파일을 즉시 초기화하여 비우기 작업을 방지할 수 있습니다.In SQL ServerSQL Server, data files can be initialized instantaneously to avoid zeroing operations. 인스턴트 파일 초기화를 통해 이전에 언급한 파일 작업을 빠르게 실행할 수 있습니다.Instant file initialization allows for fast execution of the previously mentioned file operations. 즉시 파일 초기화는 디스크 공간을 0으로 채우지 않고 디스크 공간을 회수합니다.Instant file initialization reclaims used disk space without filling that space with zeros. 대신, 새 데이터를 파일에 기록할 때 디스크 내용을 덮어씁니다.Instead, disk content is overwritten as new data is written to the files. 로그 파일은 즉시 초기화할 수 없습니다.Log files cannot be initialized instantaneously.

참고

인스턴트 파일 초기화는 MicrosoftMicrosoft Windows XP ProfessionalWindows XP Professional 또는 Windows Server 2003Windows Server 2003 이상 버전에서만 사용할 수 있습니다.Instant file initialization is available only on MicrosoftMicrosoft Windows XP ProfessionalWindows XP Professional or Windows Server 2003Windows Server 2003 or later versions.

중요

즉시 파일 초기화는 데이터 파일에만 사용할 수 있습니다.Instant file initialization is available only for data files. 로그 파일은 만들어질 때나 크기가 증가할 때 항상 비워집니다.Log files will always be zeroed when being created, or growing in size.

즉시 파일 초기화는 SQL ServerSQL Server 서비스 계정에 SE_MANAGE_VOLUME_NAME을 부여받은 경우에만 사용할 수 있습니다.Instant file initialization is only available if the SQL ServerSQL Server service startup account has been granted SE_MANAGE_VOLUME_NAME. Windows Administrator 그룹의 구성원은 이 권한을 가지고 있으며 다른 사용자에게 볼륨 유지 관리 작업 수행 보안 정책을 추가하여 이 권한을 부여할 수 있습니다.Members of the Windows Administrator group have this right and can grant it to other users by adding them to the Perform Volume Maintenance Tasks security policy.

중요

TDE(투명한 데이터 암호화)와 같은 일부 기능을 사용하면 즉시 파일 초기화를 막을 수 있습니다.Some feature usage, such as Transparent Data Encryption (TDE), can prevent Instant File Initialization.

계정에 Perform volume maintenance tasks 권한을 부여하려면To grant an account the Perform volume maintenance tasks permission:

  1. 백업 파일을 생성할 컴퓨터에서 로컬 보안 정책 응용 프로그램(secpol.msc)을 엽니다.On the computer where the backup file will be created, open the Local Security Policy application (secpol.msc).

  2. 왼쪽 창에서 로컬 정책을 확장한 다음 사용자 권한 할당을 클릭합니다.In the left pane, expand Local Policies, and then click User Rights Assignment.

  3. 오른쪽 창에서 볼륨 유지 관리 작업 수행을 두 번 클릭합니다.In the right pane, double-click Perform volume maintenance tasks.

  4. 사용자 또는 그룹 추가 를 클릭하고 백업에 사용되는 사용자 계정을 추가합니다.Click Add User or Group and add any user accounts that are used for backups.

  5. 적용을 클릭한 다음 모든 로컬 보안 정책 대화 상자를 닫습니다.Click Apply, and then close all Local Security Policy dialog boxes.

참고

SQL Server 2016(13.x)SQL Server 2016 (13.x)부터는 설치하는 동안 이 권한을 서비스 계정에 부여할 수 있습니다.Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x), this permission can be granted to the service account at install time, during setup. 명령 프롬프트 설치를 사용하는 경우 /SQLSVCINSTANTFILEINIT 인수를 추가하거나 설치 마법사SQL Server 데이터베이스 엔진 서비스에 볼륨 유지 관리 작업 권한 부여 확인란을 선택합니다.If using the command prompt install, add the /SQLSVCINSTANTFILEINIT argument, or check the box Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service in the installation wizard.

참고

SQL Server 2012(11.x)SQL Server 2012 (11.x) SP4부터 그리고 SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1에서 SQL Server 2017SQL Server 2017까지는 sys.dm_server_services DMV의 instant_file_initialization_enabled 열을 사용하여 인스턴트 파일 초기화가 사용되는지 확인할 수 있습니다.Starting with SQL Server 2012(11.x)SQL Server 2012 (11.x) SP4, and SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1 through SQL Server 2017SQL Server 2017, the column instant_file_initialization_enabled in the sys.dm_server_services DMV can be used to identify if instant file initialization is enabled.

RemarksRemarks

SQL ServerSQL Server 서비스 시작 계정에 SE_MANAGE_VOLUME_NAME이 부여되면 시작 시 SQL ServerSQL Server 오류 로그에 다음과 유사한 정보 메시지가 기록됩니다.If the SQL ServerSQL Server service startup account is granted SE_MANAGE_VOLUME_NAME, an informational message that resembles the following is logged in the SQL ServerSQL Server error log at startup:

Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

SQL ServerSQL Server 서비스 시작 계정에 SE_MANAGE_VOLUME_NAME이 부여되지 않으면 시작 시 SQL ServerSQL Server 오류 로그에 다음과 유사한 정보 메시지가 기록됩니다.If the SQL ServerSQL Server service startup account has not been granted SE_MANAGE_VOLUME_NAME, an informational message that resembles the following is logged in the SQL ServerSQL Server error log at startup:

Database Instant File Initialization: disabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

적용 대상: SQL ServerSQL Server ( SQL Server 2012(11.x)SQL Server 2012 (11.x) SP4부터, SQL Server 2014(12.x)SQL Server 2014 (12.x) SP2 및 SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 SQL Server 2017SQL Server 2017까지)Applies to: SQL ServerSQL Server (Starting with SQL Server 2012(11.x)SQL Server 2012 (11.x) SP4, SQL Server 2014(12.x)SQL Server 2014 (12.x) SP2 and SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

보안 고려 사항Security Considerations

삭제된 디스크 내용은 새 데이터가 파일에 기록될 때만 덮어쓰기 때문에 인스턴트 파일 초기화(IFI)를 사용하는 경우 데이터 파일의 해당하는 특정 영역에 다른 데이터를 쓸 때까지 권한 없는 사용자가 삭제된 내용에 액세스할 수 있습니다.When using Instant File Initialization (IFI), because the deleted disk content is overwritten only as new data is written to the files, the deleted content might be accessed by an unauthorized principal, until some other data writes on that specific area of the data file. 데이터베이스 파일이 SQL ServerSQL Server의 인스턴스에 연결되어 있는 동안 파일의 DACL(임의 액세스 제어 목록)에 의해 이러한 정보 공개 위협이 줄어듭니다.While the database file is attached to the instance of SQL ServerSQL Server, this information disclosure risk is reduced by the discretionary access control list (DACL) on the file. 이 DACL은 SQL ServerSQL Server 서비스 계정 및 로컬 관리자에게만 파일 액세스를 허용합니다.This DACL allows file access only to the SQL ServerSQL Server service account and the local administrator. 그러나 파일이 분리되면 SE_MANAGE_VOLUME_NAME이 없는 사용자 또는 서비스가 액세스할 수 있습니다.However, when the file is detached, it may be accessed by a user or service that does not have SE_MANAGE_VOLUME_NAME. 데이터베이스를 백업할 때도 유사한 사항을 고려해야 합니다. 즉, 백업 파일이 적절한 DACL로 보호되지 않는 경우 권한이 없는 사용자 또는 서비스가 삭제된 내용을 사용할 수 있게 됩니다.A similar consideration exists when the database is backed up: if the backup file is not protected with an appropriate DACL, the deleted content can become available to an unauthorized user or service.

또 다른 고려 사항은 파일이 IFI를 사용하여 증가하는 경우입니다. SQL Server 관리자는 잠재적으로 원시 페이지 콘텐츠에 엑세스하고 이전에 삭제된 내용을 확인할 수 있습니다.Another consideration is that when a file is grown using IFI, a SQL Server administrator could potentially access the raw page contents and see the previously deleted content.

데이터베이스 파일을 저장 영역 네트워크에서 호스트하는 경우 저장 영역 네트워크는 항상 미리 초기화된 새 페이지를 표시하고 운영 체제에서 페이지를 다시 초기화하는 경우 불필요한 오버헤드가 발생할 수 있습니다.If the database files are hosted on a storage area network, it is also possible that the storage area network always presents new pages as pre-initialized, and having the operating system re-initialize the pages might be unnecessary overhead.

참고

SQL ServerSQL Server가 보안 물리적 환경에 설치되어 있는 경우 인스턴스 파일 초기화를 사용할 때 성능 이점이 보안 위험을 능가하므로 이렇게 하는 것이 좋습니다.If SQL ServerSQL Server is installed in a secure physical environment, the performance benefits of enabling instant file initialization can outweigh the security risk and hence the reason for this recommendation.

삭제된 내용의 공개 가능성이 우려된다면 다음 작업 중 하나 또는 둘 다를 수행해야 합니다.If the potential for disclosing deleted content is a concern, you should take one or both of the following actions:

  • 분리된 데이터 파일 및 백업 파일에 제한적인 DACL이 있는지 항상 확인합니다.Always make sure that any detached data files and backup files have restrictive DACLs.
  • SQL ServerSQL Server 서비스 시작 계정에서 SQL ServerSQL ServerSE_MANAGE_VOLUME_NAME을 취소하여 의 인스턴스에 대한 즉시 파일 초기화를 해제합니다.Disable instant file initialization for the instance of SQL ServerSQL Server by revoking SE_MANAGE_VOLUME_NAME from the SQL ServerSQL Server service startup account.

중요

인스턴트 파일 초기화를 해제하면 데이터 파일의 할당 시간이 늘어납니다.Disabling instant file initialization will increase allocation times for data files.

참고

즉시 파일 초기화 해제는 사용자 권한이 취소된 후 생성되거나 크기를 늘린 파일에만 영향을 미칩니다.Disabling instant file initialization only affects files that are created or increased in size after the user right is revoked.

참고 항목See Also

CREATE DATABASE(SQL Server Transact-SQL)CREATE DATABASE (SQL Server Transact-SQL)