Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Bu makalede, anında dosya başlatma (IFI) hakkında bilgi edinecek ve SQL Server veritabanı dosyalarınızın büyümesini hızlandırmak için nasıl etkinleştirebileceğinizi öğreneceksiniz.
Varsayılan olarak, veri ve günlük dosyaları, önceden silinen dosyalardan diskte kalan herhangi bir mevcut verinin üzerine yazılacak şekilde başlatılır. Veri ve günlük dosyaları ilk olarak aşağıdaki işlemleri gerçekleştirdiğinizde dosyaları sıfırlayarak (sıfırlarla doldurularak) başlatılır:
- Veritabanı oluşturma.
- Var olan bir veritabanına veri veya günlük dosyaları ekleyin.
- Mevcut bir dosyanın boyutunu artırın (otomatik büyütme işlemleri dahil).
- Veritabanını veya dosya grubunu geri yükleyin.
SQL Server'da, anlık dosya başlatma, daha önce bahsedilen dosya işlemlerinin daha hızlı yürütülmesini sağlar, çünkü bu alanı sıfırlarla doldurmadan kullanılan disk alanını geri alır. Bunun yerine, dosyalara yeni veriler yazıldığında eski disk içeriğinin üzerine yazılır.
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde, anlık dosya başlatma yalnızca işlem günlüğü dosyaları için kullanılabilir.
Anlık dosya başlatma ve işlem günlüğü
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri ile Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği.
Geçmişte işlem günlüğü dosyaları anlık olarak başlatılamadı. Ancak, SQL Server 2022 (16.x) (tüm sürümler) ve Azure SQL Veritabanı ile Azure SQL Yönetilen Örneği üzerinde, 64 MB'a kadar işlem günlüğü otomatik büyütme olayları anında dosya başlatma özelliğinden yararlanabilir. Yeni veritabanları için varsayılan otomatik büyüme boyutu artışı 64 MB'tır. 64 MB'tan büyük işlem günlüğü dosyası otomatik büyütme olayları, anlık dosya başlatmadan yararlanamaz.
Saydam veri şifrelemesi (TDE) etkinleştirilirse engellenen veri dosyaları için anlık dosya başlatmanın aksine, işlem günlüğü dosyasının büyümesi ve işlem günlüğünün seri bir şekilde yazıldığı için TDE'nin etkinleştirildiği veritabanlarında işlem günlüğü büyümesi için anlık dosya başlatmaya izin verilir.
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nin Genel Amaçlı ve İş Açısından Kritik katmanlarında anlık dosya başlatma yalnızca işlem günlüğü dosyalarının büyümesi için kullanılır.
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde anlık dosya başlatma yapılandırılamaz.
Anlık dosya başlatmayı etkinleştirme
Veri dosyalarının hızlı dosya başlatması yalnızca hizmet hesabına veya Veritabanı Motoru hizmetinin hizmet SID'sine SE_MANAGE_VOLUME_NAME ayrıcalığı verildiğinde kullanılabilir. Windows Administrators grubunun üyeleri bu haklara sahiptir ve toplu bakım görevlerini gerçekleştir güvenlik ilkesine ekleyerek bu hakkı diğer kullanıcılara verebilir. SQL SE_MANAGE_VOLUME_NAME Server 2022 (16.x) sürümüyle sunulan işlem günlüğünde 64 MB'a kadar olan büyüme olaylarının anında dosya başlatılması için ayrıcalık gerekli değildir.
Önerimiz, Veritabanı Motoru hizmetinin hizmet SID'sineSE_MANAGE_VOLUME_NAME ayrıcalık vermenizdir. Bu, Veritabanı Altyapısı hizmetinin hizmet hesabını değiştirseniz bile iznin kalmasını sağlar. Daha fazla bilgi için bkz. SQL Server'daki hizmetlere izin vermek için Hizmet SID'lerini kullanma.
Önemli
Saydam veri şifrelemesi (TDE) gibi bazı özellik kullanımı, anında dosya başlatmayı (IFI) engelleyebilir. SQL Server 2022 (16.x) ve sonraki sürümlerinde ve Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde işlem günlüğünde IFI'ye izin verilir. Daha fazla bilgi için bkz . Anlık dosya başlatma ve işlem günlüğü.
SQL Server 2016 (13.x) ve sonraki sürümlerinde, bu izin kurulum sırasında yükleme zamanında Veritabanı Altyapısı hizmet güvenlik tanımlayıcısına (SID) verilebilir.
Komut istemini kullanarak yükleme yapıyorsanız, /SQLSVCINSTANTFILEINIT bağımsız değişkeni ekleyin veya yükleme sihirbazındaSQL Server Veritabanı Altyapısı Hizmeti'ne Birim Bakım Görevi ayrıcalığını tanıyın kutusunu işaretleyin.
Bir hesaba veya hizmet SID'sine Perform volume maintenance tasks güvenlik ilkesi tanımlamak için
Veri dosyalarının oluşturulacağı bilgisayarda Yerel Güvenlik İlkesi uygulamasını (
secpol.msc) açın.Sol bölmede Yerel İlkeler'i genişletin ve ardından Kullanıcı Hakları Ataması'nı seçin.
Sağ bölmede, "Birim bakım görevlerini gerçekleştir"seçeneğine çift tıklayın.
Kullanıcı veya Grup Ekle'yi seçin ve Veritabanı Altyapısı hizmet hesabını veya hizmet SID'sini ekleyin.
Uygula'yı seçin ve ardından tüm Yerel Güvenlik İlkesi iletişim kutularını kapatın.
Veritabanı Altyapısı hizmetini yeniden başlatın.
Başlangıçta Veritabanı Altyapısı hata günlüğünü denetleyin.
Şunlar için geçerlidir: SQL Server (SQL Server 2012 (11.x) SP4, SQL Server 2014 (12.x) SP2 ve SQL Server 2016 (13.x) ve üzeri sürümlerle başlar.
Veritabanı Motoru hizmet hesabına veya hizmet SID'sine
SE_MANAGE_VOLUME_NAMEayrıcalığı verilirse, örnek olarak aşağıdakine benzer bir bilgilendirme mesajı günlüğe kaydedilir.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.Veritabanı Motoru hizmet hesabına veya hizmet SID'sine ayrıcalık verilmediyse
SE_MANAGE_VOLUME_NAMEaşağıdaki örneğe benzer bir bilgilendirme iletisi günlüğe kaydedilir.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.
Uyarı
SQL Server'da, örneğinizde anlık dosya başlatmanın etkinleştirilip etkinleştirilmediğini belirlemek için sys.dm_server_services dinamik yönetim görünümünde değerini
instant_file_initialization_enabledkullanın.
Güvenlikle ilgili dikkat edilmesi gerekenler
Avantajların güvenlik riskine ağır basabileceği için anında dosya başlatmayı etkinleştirmenizi öneririz.
Anlık dosya başlatmayı kullandığınızda, silinen disk içeriği yalnızca dosyalara yeni veriler eklenirken üzerine yazılır. Bu nedenle, veri dosyasının belirli bir alanına başka bir veri yazana kadar silinen içeriğe yetkisiz bir kullanıcı tarafından erişim sağlanabilir.
Veritabanı dosyası SQL Server örneğine bağlı olsa da, bu bilgilerin açığa çıkması riski dosyadaki isteğe bağlı erişim denetimi listesi (DACL) tarafından azaltılır. DACL yalnızca SQL Server hizmet hesabına, hizmet SID'sine ve yerel yöneticiye dosya erişimine izin verir. Ancak, dosya ayrıldığında SE_MANAGE_VOLUME_NAME ayrıcalığı olmayan bir kullanıcı veya hizmet tarafından erişilebilir olabilir.
Aşağıdaki durumlarda da benzer noktalar göz önünde bulundurulmalıdır:
Veritabanı yedeklendi. Yedekleme dosyası uygun bir DACL ile korunmuyorsa, silinen içerik yetkisiz bir kullanıcı veya hizmet tarafından kullanılabilir hale gelebilir.
IFI kullanılarak bir dosya büyütülmüştür. SQL Server yöneticisi ham sayfa içeriğine erişebilir ve daha önce silinen içeriği görebilir.
Veritabanı dosyaları bir depolama alanı ağında barındırılır. Ayrıca, depolama alanı ağının yeni sayfaları her zaman önceden başlatılmış olarak sunması ve işletim sisteminin sayfaları yeniden başlatmasının gereksiz bir yük olabileceği de mümkündür.
Silinen içeriği açıklama olasılığı önemliyse, aşağıdaki eylemlerden birini veya her ikisini de gerçekleştirmelisiniz:
Her zaman ayrılmış veri dosyalarının ve yedekleme dosyalarının kısıtlayıcı DACL'lere sahip olduğundan emin olun.
SQL Server örneği için anlık dosya başlatmayı devre dışı bırakın. Bunu yapmak için Veritabanı Altyapısı hizmet hesabından ve hizmet SID'sinden iptal
SE_MANAGE_VOLUME_NAMEedin.Uyarı
IFI'nin devre dışı bırakılması veri dosyalarının büyüme süresini artırır ve yalnızca ayrıcalık iptal edildikten sonra oluşturulan veya boyutu artan dosyaları etkiler.
SE_MANAGE_VOLUME_NAME yetkisi
Ayrıcalık SE_MANAGE_VOLUME_NAME, Windows Yönetim Araçları, Yerel Güvenlik İlkesi uygulamasında atanabilir.
Yerel İlkeler'in altında Kullanıcı Hakkı Ataması'nı seçin ve Birim bakım görevleri gerçekleştir özelliğini değiştirin.
Performansla ilgili dikkat edilmesi gerekenler
Veritabanı dosyası başlatma işlemi, başlatma sırasında dosyanın yeni bölgelerine sıfırlar yazar. Bu işlemin süresi, başlatılan dosya bölümünün boyutuna ve depolama sisteminin yanıt süresine ve kapasitesine bağlıdır. Başlatma uzun sürüyorsa SQL Server hata günlüğüne ve Uygulama Günlüğü'ne kaydedilen aşağıdaki iletileri görebilirsiniz.
Msg 5144
Autogrow of file '%.*ls' in database '%.*ls' was cancelled by user or timed out after %d milliseconds. Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.
Msg 5145
Autogrow of file '%.*ls' in database '%.*ls' took %d milliseconds. Consider using ALTER DATABASE to set a smaller FILEGROWTH for this file.
Veritabanı ve/veya işlem günlüğü dosyasının uzun bir otomatik büyümesi sorgu performansı sorunlarına neden olabilir. Bir dosyanın otomatik olarak büyütülmesini gerektiren bir işlem, dosya büyütme işlemi sırasında kilitler veya mandallar gibi kaynakları kullanır. Ayırma sayfaları için mandallarda uzun beklemeler görebilirsiniz. Uzun süreli otomatik büyütme gerektiren işlem, PREEMPTIVE_OS_WRITEFILEGATHER bekleme türünü gösterir.